{"info":{"_postman_id":"0d282c33-faf6-4c0e-9d75-fad56654a51a","name":"BlueZoo API Suite","description":"<html><head></head><body><h2 id=\"1-introduction\"><strong>1. Introduction</strong></h2>\n<p><strong>The BlueZoo API suite exposes sensor data for two technologies, Wi-Fi and Bluetooth Low Energy (BLE). Each has a Data Warehouse (DWH) API for historical data and a Real-Time API for current data:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th></th>\n<th><strong>Data warehouse APIs  <br>(data available with up to two-hour delay)</strong></th>\n<th><strong>Real time APIs</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>Wi-Fi measurements / analytics</strong></td>\n<td>Historical Wi-Fi data: &nbsp; impressions/visits, dwell time, occupancy/visitors, unique visitors and recurrence, flow transitions, flow correlations  <br>  <br><a href=\"https://apollo-api.bluefoxengage.com/v2/dwh\">https://hermes.apollo.bluezoo.io/v2/dwh</a></td>\n<td>Live Wi-Fi data: Most recent occupancy (visitor) and visit (impressions) data  <br>  <br><a href=\"https://hermes.apollo.bluezoo.io/v2\">https://hermes.apollo.bluezoo.io/v2</a></td>\n</tr>\n<tr>\n<td><strong>BLE measurements / analytics</strong></td>\n<td>Historical BLE data: visits (impressions), dwell time, visitors (occupancy)  <br>  <br><a href=\"https://hermes.apollo.bluezoo.io/v3/dwh\">https://hermes.apollo.bluezoo.io/v2/dwh</a></td>\n<td>Live BLE data: Windowed impressions (for presence-to-play pairing), occupancy  <br>  <br><a href=\"https://hermes.apollo.bluezoo.io/v3\">https://hermes.apollo.bluezoo.io/v3</a></td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"which-endpoint-should-i-use\"><strong>Which endpoint should I use?</strong></h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>I want to know...</strong></th>\n<th><strong>Use</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Historical data for a Wi-Fi-enabled sensor location</td>\n<td>The data warehouse APIs (list_table, desc_table, run_query) for Wi-Fi tables (sensor_visits)</td>\n</tr>\n<tr>\n<td>Historical data for a BLE-enabled sensor location</td>\n<td>The data warehouse APIs (list_table, desc_table, run_query) for BLE tables (e.g. sensor_ble_visits)</td>\n</tr>\n<tr>\n<td>The latest occupancy and visits for a Wi-Fi location</td>\n<td>Real-Time API for Wi-Fi (get_occupancy_count, get_visits)</td>\n</tr>\n<tr>\n<td>How long BLE devices stay near a sensor</td>\n<td>The data warehouse APIs (list_table, desc_table, run_query) for BLE table (sensor_ble_dwell)</td>\n</tr>\n<tr>\n<td>How many BLE devices are present at once (min / max / avg)</td>\n<td>The data warehouse APIs (list_table, desc_table, run_query) for BLE table (sensor_ble_visitors)</td>\n</tr>\n<tr>\n<td>How many BLE devices enter or leave</td>\n<td>The data warehouse APIs (list_table, desc_table, run_query) for BLE table (sensor_ble_visits)</td>\n</tr>\n<tr>\n<td>How many BLE impressions occurred per period</td>\n<td>The data warehouse APIs (list_table, desc_table, run_query) for BLE table  <br>(sensor_ble_Impressions)</td>\n</tr>\n<tr>\n<td>The BLE occupancy right now</td>\n<td>The real-time BLE API for Live occupancy (get_ble_live_occupancy)</td>\n</tr>\n<tr>\n<td>BLE impressions from hh:mm:ss to hh:mm:ss for a specific sensor to establish advertisement presence and pairing for a specific advertisement</td>\n<td>The real-time BLE API for impressions (get_ble_impressions)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"2-authentication-and-access\"><strong>2. Authentication and Access</strong></h2>\n<p><strong>All requests require an Access key and an analyst/admin/Super Admin-level role.</strong></p>\n<p><strong>Getting your access key:</strong></p>\n<p><strong>The key is on the Profile screen of the BlueZoo dashboard. There is one per user, and BlueZoo recommends the primary user's key for development. The key string itself starts with AccessKey (with a trailing space) and is sent as the bearer token in the Authorization header (</strong><a href=\"https://support.bluezoo.io/hc/en-us/articles/11260595031447-How-do-I-access-data-in-the-data-warehouse\"><b>BlueZoo support</b></a><strong>). Both Wi-Fi and BLE API’s use the same access key.</strong></p>\n<h2 id=\"3-conventions\"><strong>3. Conventions</strong></h2>\n<h2 id=\"31-common-identity-fields-dwh\"><strong>3.1 Common identity fields (DWH)</strong></h2>\n<p>Every DWH row carries the same descriptive fields:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Mode</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>sensor_id</td>\n<td>INTEGER</td>\n<td>REQUIRED</td>\n<td>Unique sensor identifier</td>\n</tr>\n<tr>\n<td>sensor_name</td>\n<td>STRING</td>\n<td>REQUIRED</td>\n<td>Name assigned to the sensor</td>\n</tr>\n<tr>\n<td>sensor_mac</td>\n<td>STRING</td>\n<td>REQUIRED</td>\n<td>MAC address of the sensor</td>\n</tr>\n<tr>\n<td>account_id</td>\n<td>STRING</td>\n<td>REQUIRED</td>\n<td>Account ID</td>\n</tr>\n<tr>\n<td>account_name</td>\n<td>STRING</td>\n<td>REQUIRED</td>\n<td>Account name</td>\n</tr>\n<tr>\n<td>timestamp</td>\n<td>TIMESTAMP</td>\n<td>REQUIRED</td>\n<td>Start of the aggregation period stored in UTC</td>\n</tr>\n<tr>\n<td>time_zone</td>\n<td>STRING</td>\n<td>NULLABLE</td>\n<td>Local time zone of the sensor</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"32-terminology\"><strong>3.2 Terminology</strong></h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Term</strong></th>\n<th><strong>Meaning</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Inner detection zone / outer detection zone</td>\n<td>Two spatial boundaries around a sensor. Inner is the closer zone; outer is the more distant zone.&nbsp; The two zones are non-overlapping.</td>\n</tr>\n<tr>\n<td>Visits (both dwh and real time analytic)</td>\n<td>A device entering or leaving the sensor’s detection zone. Each completed entry-to-exit generates one visit, counted in the 15-minute window where the entry or exit occurs. Aggregations over time should be summed</td>\n</tr>\n<tr>\n<td>Visitors (both dwh and real time analytic)</td>\n<td>Number of devices concurrently within a boundary/defined detection zone; the analytic is delivered as min / average / max for a 15-minute period. Aggregations over time should be averaged.</td>\n</tr>\n<tr>\n<td>Dwell time (dwh analytic)</td>\n<td>How long a device remains within the sensor's detection zone.</td>\n</tr>\n<tr>\n<td>Windowed impressions (real time analytic)</td>\n<td>A count of impressions delivered during an ad's time slot. It counts every visit session that is ongoing at any point during the slot, including visits that started before (and ended after) the slot began.  <br>  <br>As a result “windowed impressions” are not additive over time. Visits recorded in the data warehouse are additive over time because they record the number of visits that start and the number of visits that end.</td>\n</tr>\n</tbody>\n</table>\n</div></body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"14323059","collectionId":"0d282c33-faf6-4c0e-9d75-fad56654a51a","publishedId":"TWDfDDRS","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"publishDate":"2021-07-27T20:47:29.000Z"},"item":[{"name":"BlueZoo Data Warehouse API for Wi-Fi","item":[{"name":"List Tables","id":"86908bf1-058b-4d8d-a64c-5cf22de778ff","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"AccessKey","description":"<p>The User's API Key for the Account</p>\n","type":"text"}],"url":"{{base_url}}/list_tables","description":"<h2 id=\"list_tables\"><strong>list_tables</strong></h2>\n<p>This endpoint returns a list of the tables available under the account, for a user to query.</p>\n<table><tbody><tr><td><div><br />Request<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Description<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />HTTP Method<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />GET<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />Endpoint<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />list_tables<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />Authorization<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Account AccesKey in Request header used for account authentication<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<p><strong>Result</strong></p>\n<table><tbody><tr><td><div><br />Fields<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Description<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />HTTP status code<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Request status code, possible values are:<br />200<br />400<br />403<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />HTTP status message<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Request status message, possible values are:<br />\"BAD_TOKEN\"<br />\"RESTRICTED_ACCESS\"<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />Body<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Array of JSON structure holding information fields about the table names<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<h2 id=\"example-response\">Example Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n    {\n        \"table_name\": \"sensor_visits\"\n    },\n    {\n        \"table_name\": \"group_flow_duration\"\n    },\n    {\n        \"table_name\": \"group_flow_transition\"\n    },\n    {\n        \"table_name\": \"group_flow_segmentation\"\n    },\n    {\n        \"table_name\": \"sensor_visitors\"\n    },\n    {\n        \"table_name\": \"sensor_dwell\"\n    },\n    {\n        \"table_name\": \"group_uv_daily\"\n    },\n    {\n        \"table_name\": \"group_convert\"\n    },\n    {\n        \"table_name\": \"group_dwell\"\n    },\n    {\n        \"table_name\": \"group_uv_weekly\"\n    },\n    {\n        \"table_name\": \"group_uv_monthly\"\n    },\n    {\n        \"table_name\": \"group_uv_custom\"\n    },\n    {\n        \"table_name\": \"group_flow_correlation\"\n    },\n    {\n        \"table_name\": \"sensor_pulses\"\n    }\n]\n\n</code></pre>","urlObject":{"path":["list_tables"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"31e1582a-87a5-4744-85ab-57891480f865","name":"List Tables","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"AccessKey ","description":"The User's API Key for the Account","type":"text"}],"url":"{{base_url}}/list_tables"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Tue, 18 Jan 2022 23:15:21 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Cache-Control","value":"no-cache"},{"key":"X-Request-Id","value":"0e048d3b-30da-4797-bd92-61042d1e6729"},{"key":"X-Runtime","value":"1.666782"},{"key":"Vary","value":"Origin"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"table_name\": \"sensor_visits\"\n    },\n    {\n        \"table_name\": \"group_flow_duration\"\n    },\n    {\n        \"table_name\": \"group_flow_transition\"\n    },\n    {\n        \"table_name\": \"group_flow_segmentation\"\n    },\n    {\n        \"table_name\": \"sensor_visitors\"\n    },\n    {\n        \"table_name\": \"sensor_dwell\"\n    },\n    {\n        \"table_name\": \"group_uv_daily\"\n    },\n    {\n        \"table_name\": \"group_convert\"\n    },\n    {\n        \"table_name\": \"group_uv_weekly\"\n    },\n    {\n        \"table_name\": \"group_uv_monthly\"\n    },\n    {\n        \"table_name\": \"group_uv_custom\"\n    },\n    {\n        \"table_name\": \"group_flow_correlation\"\n    },\n    {\n        \"table_name\": \"sensor_pulses\"\n    }\n]"}],"_postman_id":"86908bf1-058b-4d8d-a64c-5cf22de778ff"},{"name":"Describe Table","id":"5fae83b1-9df9-40b5-997d-8acfaeefdcd0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"AccessKey ","description":"<p>The User's API Key for the Account</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"table_name\": \"sensor_visitors\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/desc_table","description":"<h2 id=\"desc_table\"><strong>desc_table</strong></h2>\n<p>This endpoint returns a description of the requested table (Columns and Datatypes) available under the account, for a user to query. Detailed column descriptions for each individual table is provided at the end of this documentation.</p>\n<table><tbody><tr><td><div><br />Request<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Description<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />HTTP Method<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />POST<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />Endpoint<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />desc_table<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />Authorization<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Account AccesKey in Request header used for account authentication<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />Content-Type<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />application/json<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<table><tbody><tr><td><div><br />JSON Request Body<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Description<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />table_name<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Table name<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<p><strong>Result</strong></p>\n<table><tbody><tr><td><div><br />Fields<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Description<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />HTTP status code<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Request status code, possible values are:<br />200<br />400<br />403<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />HTTP status message<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Request status message, possible values are:<br />“BAD_TOKEN”<br />“RESTRICTED_ACCESS”<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />Body<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Array of JSON structure holding information column names and datatypes in the table<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<h2 id=\"example-response\">Example Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n    {\n        \"column_name\": \"sensor_id\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"sensor_name\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"sensor_mac\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"sensor_address\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"sensor_latitude\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"sensor_longitude\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"timestamp\",\n        \"data_type\": \"TIMESTAMP\"\n    },\n    {\n        \"column_name\": \"minimum_visitors_inner\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"maximum_visitors_inner\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"average_visitors_inner\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"minimum_visitors_outer\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"maximum_visitors_outer\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"average_visitors_outer\",\n        \"data_type\": \"FLOAT64\"\n    }\n]\n\n</code></pre>","urlObject":{"path":["desc_table"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"fe8be0b2-11da-48be-9ab8-e75b1c3cd92a","name":"200 Describe Table Response","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"AccessKey ","description":"The User's API Key for the Account","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"table_name\": \"sensor_visitors\"\n}","options":{"raw":{"language":"json"}}},"url":"https://morpheus-api.bluefoxengage.com/v2/dwh/desc_table"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 10 Jun 2021 02:06:20 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"ETag","value":"W/\"6ed98713577cc4abf34a89a20c7e81ba\""},{"key":"Cache-Control","value":"max-age=0, private, must-revalidate"},{"key":"X-Request-Id","value":"0bd67ed1-43df-4c6d-b9f3-91abe30fb56f"},{"key":"X-Runtime","value":"1.637718"},{"key":"Vary","value":"Origin"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"column_name\": \"sensor_id\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"sensor_name\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"sensor_mac\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"sensor_address\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"sensor_latitude\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"sensor_longitude\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"timestamp\",\n        \"data_type\": \"TIMESTAMP\"\n    },\n    {\n        \"column_name\": \"minimum_visitors_inner\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"maximum_visitors_inner\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"average_visitors_inner\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"minimum_visitors_outer\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"maximum_visitors_outer\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"average_visitors_outer\",\n        \"data_type\": \"FLOAT64\"\n    }\n]"}],"_postman_id":"5fae83b1-9df9-40b5-997d-8acfaeefdcd0"},{"name":"Run Query","id":"149648dd-2db9-4aeb-872f-942e74be72a4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"AccessKey ","description":"<p>The User's API Key for the Account</p>\n","type":"text"}],"body":{"mode":"raw","raw":"select * from sensor_visitors limit 1"},"url":"{{base_url}}/run_query","description":"<h2 id=\"run_query\"><strong>run_query</strong></h2>\n<p>This endpoint returns the result of a SELECT query. A Complex JOIN-based query is also possible. No DML, DDL queries allowed.</p>\n<table><tbody><tr><td><div><br />Request<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Description<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />HTTP Method<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />POST<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />Endpoint<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />run_query<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />Authorization<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Account AccesKey in Request header used for account authentication<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<table><tbody><tr><td><div><br />Text Request Body<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Description<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />string<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />A SQL SELECT query string<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<p><strong>Result</strong></p>\n<table><tbody><tr><td><div><br />Fields<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Description<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />HTTP status code<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Request status code, possible values are:<br />200<br />400<br />403<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />HTTP status message<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Request status message, possible values are:<br />“BAD_TOKEN”<br />“RESTRICTED_ACCESS”<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />Body<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Array of JSON structure holding result of the query.<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<h2 id=\"example-response\">Example Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n{\n\"sensor_id\":319,\n\"sensor_name\":\"2\",\n\"sensor_mac\":\"E4:95:6E:41:07:5C\",\n\"sensor_address\":\"\",\n\"sensor_latitude\":null,\n\"sensor_longitude\":null,\n\"timestamp\":\"2021-11-08T00:15:00.000+00:00\",\n\"minimum_visitors_inner\":15.857809066772461,\n\"maximum_visitors_inner\":27.8795166015625,\n\"average_visitors_inner\":21.50176040057478,\n\"minimum_visitors_outer\":15.857809066772461,\n\"maximum_visitors_outer\":27.8795166015625,\n\"average_visitors_outer\":21.50176040057478,\n\"valid\":true,\n\"time_offset\":null\n}\n]\n\n</code></pre>","urlObject":{"path":["run_query"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"b8b32773-bab4-4ae1-8948-ecdd3897b21a","name":"Run Query","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"AccessKey ","description":"The User's API Key for the Account","type":"text"}],"body":{"mode":"raw","raw":"select * from sensor_visitors limit 1"},"url":"{{base_url}}/run_query"},"status":"OK","code":200,"_postman_previewlanguage":"plain","header":[{"key":"Date","value":"Tue, 23 Aug 2022 22:30:38 GMT"},{"key":"Content-Type","value":"text/event-stream"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Cache-Control","value":"no-cache"},{"key":"X-Request-Id","value":"119001fd-7398-4c68-b389-6ef6ff5cb659"},{"key":"X-Runtime","value":"1.709099"},{"key":"Vary","value":"Origin"}],"cookie":[],"responseTime":null,"body":"[{\"sensor_id\":319,\"sensor_name\":\"2\",\"sensor_mac\":\"E4:95:6E:41:07:5C\",\"sensor_address\":\"\",\"sensor_latitude\":null,\"sensor_longitude\":null,\"timestamp\":\"2021-11-08T00:15:00.000+00:00\",\"minimum_visitors_inner\":15.857809066772461,\"maximum_visitors_inner\":27.8795166015625,\"average_visitors_inner\":21.50176040057478,\"minimum_visitors_outer\":15.857809066772461,\"maximum_visitors_outer\":27.8795166015625,\"average_visitors_outer\":21.50176040057478,\"valid\":true,\"time_offset\":null}]"}],"_postman_id":"149648dd-2db9-4aeb-872f-942e74be72a4"},{"name":"Describe  Sensor Visits","id":"eb6aabd5-12ae-46f0-a71e-e3165fb3aaa7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"AccessKey ","description":"<p>The User's API Key for the Account</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"table_name\": \"sensor_visits\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/desc_table","description":"<p>This request returns a description of the sensor_visits table (Columns and Datatypes). Sensor Visits measure the number of devices seen within the inner detection range of a sensor, also known as impressions. This table also returns the sensor_visits for the outer detection range as specified in the column descriptions below. The maximum resolution for the historical data is 1⁄4-hour grain (15 minute slots).</p>\n<p><strong>Column names and datatypes in the table</strong></p>\n<table>\n  <tr>\n   <td>\n    Fields\n   </td>\n   <td>\n    Data Type\n</td>\n   <td>\n    Comments\n   </td>\n  </tr>\n  <tr>\n   <td>\n    sensor_id\n   </td>\n   <td>\n    INT64\n</td>\n   <td>\nInteger value of a sensor location id. Change in the sensor_name wouldn’t affect the sensor_id as long as the sensor location is not deleted from the system\n   </td>\n  </tr>\n  <tr>\n   <td>\n    sensor_name\n   </td>\n   <td>\n    STRING\n</td>\n   <td>\nName defined by the user to identify a location.\n   </td>\n  </tr>\n  <tr>\n   <td>\n    sensor_mac\n   </td>\n   <td>\n    STRING\n</td>\n   <td>\nStatic sensor identifier which remains the same even when a location is deleted from the system and re-added. \n</td>\n  </tr>\n  <tr>\n   <td>\nsensor_address\n</td>\n   <td>\nSTRING\n</td>\n   <td>\nPhysical address of the sensor as can be added by the user in BlueZoo dashboard\n</td>\n  </tr>\n  <tr>\n   <td>\nsensor_latitude\n</td>\n   <td>\nFLOAT64\n</td>\n   <td>\nPhysical coordinates of a sensor location\n</td>\n  </tr>\n  <tr>\n   <td>\nsensor_longitude\n</td>\n   <td>\nFLOAT64\n</td>\n   <td>\nPhysical coordinates of a sensor location\n</td>\n  </tr>\n  <tr>\n   <td>\ntimestamp\n</td>\n   <td>\nTIMESTAMP\n</td>\n   <td>\nTimestamp (in UTC) \n</td>\n  </tr>\n  <tr>\n   <td>\nincoming_inner_count\n</td>\n   <td>\nFLOAT64\n</td>\n   <td>\nNumber of visits/impressions recorded within a sensor’s defined inner detection range\n</td>\n  </tr>\n  <tr>\n   <td>\nincoming_outer_count\n</td>\n   <td>\nFLOAT64\n</td>\n   <td>\nNumber of visits/impressions recorded within a sensor’s outer detection range. Set at maximum by default, i.e., about 100 meters in an open environment, if not configured\n</td>\n  </tr>\n  <tr>\n   <td>\noutgoing_inner_count\n</td>\n   <td>\nFLOAT64\n</td>\n   <td>\nNumber of visits ending (closing) within the sensor’s inner detection range.\n</td>\n  </tr>\n  <tr>\n   <td>\noutgoing_outer_count\n</td>\n   <td>\nFLOAT64\n</td>\n   <td>\nNumber of visits ending within the sensor’s outer detection range.\n   </td>\n  </tr>\n\n</table>","urlObject":{"path":["desc_table"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"56e4786c-df4c-44ef-be66-bd2c49901f54","name":"Describe  Sensor Visits","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"AccessKey ","description":"The User's API Key for the Account","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"table_name\": \"sensor_visits\"\n}","options":{"raw":{"language":"json"}}},"url":"https://morpheus-api.bluefoxengage.com/v2/dwh/desc_table"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 19 Jan 2022 23:37:20 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Cache-Control","value":"no-cache"},{"key":"X-Request-Id","value":"11b986c3-701e-4317-8eca-1fe3a1048601"},{"key":"X-Runtime","value":"1.343649"},{"key":"Vary","value":"Origin"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"column_name\": \"sensor_id\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"sensor_name\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"sensor_mac\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"sensor_address\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"sensor_latitude\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"sensor_longitude\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"timestamp\",\n        \"data_type\": \"TIMESTAMP\"\n    },\n    {\n        \"column_name\": \"incoming_inner_count\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"incoming_outer_count\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"outgoing_inner_count\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"outgoing_outer_count\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"valid\",\n        \"data_type\": \"BOOL\"\n    }\n]"}],"_postman_id":"eb6aabd5-12ae-46f0-a71e-e3165fb3aaa7"},{"name":"Describe  Sensor Visitors","id":"078a3ce7-39a5-40d5-b381-8797e0b0db8d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"AccessKey ","description":"<p>The User's API Key for the Account</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"table_name\": \"sensor_visitors\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/desc_table","description":"<p>This request returns a description of the sensor_visitors table (Columns and Datatypes). Sensor visitors is the number of visitors/occupancy to a sensor given by min, average, and max for a 15-minute period.</p>\n<p><strong>Column names and datatypes in the table</strong></p>\n<table>\n  <tr>\n   <td>\n    Fields\n   </td>\n   <td>\n    Data Type\n</td>\n   <td>\n    Comments\n   </td>\n  </tr>\n  <tr>\n   <td>\n    sensor_id\n   </td>\n   <td>\n    INT64\n</td>\n   <td>\nInteger value of a sensor location id. Change in the sensor_name wouldn’t affect the sensor_id as long as the sensor location is not deleted from the system\n   </td>\n  </tr>\n  <tr>\n   <td>\n    sensor_name\n   </td>\n   <td>\n    STRING\n</td>\n   <td>\nName defined by the user to identify a location.\n   </td>\n  </tr>\n  <tr>\n   <td>\n    sensor_mac\n   </td>\n   <td>\n    STRING\n</td>\n   <td>\nStatic sensor identifier which remains the same even when a location is deleted from the system and re-added. \n</td>\n  </tr>\n  <tr>\n   <td>\nsensor_address\n</td>\n   <td>\nSTRING\n</td>\n   <td>\nPhysical address of the sensor as can be added by the user in BlueZoo dashboard\n</td>\n  </tr>\n  <tr>\n   <td>\nsensor_latitude\n</td>\n   <td>\nFLOAT64\n</td>\n   <td>\nPhysical coordinates of a sensor location\n</td>\n  </tr>\n  <tr>\n   <td>\nsensor_longitude\n</td>\n   <td>\nFLOAT64\n</td>\n   <td>\nPhysical coordinates of a sensor location\n</td>\n  </tr>\n  <tr>\n   <td>\ntimestamp\n</td>\n   <td>\nTIMESTAMP\n</td>\n   <td>\nTimestamp (in UTC) \n</td>\n  </tr>\n  <tr>\n   <td>\nminimum_visitors_inner\n</td>\n   <td>\nFLOAT64\n</td>\n   <td>\nMinimum number of visitors measured within a sensor’s defined inner detection range over a time span. Maximum resolution is 1⁄4-hour grain\n</td>\n  </tr>\n  <tr>\n   <td>\nmaximum_visitors_inner\n</td>\n   <td>\nFLOAT64\n</td>\n   <td>\nHighest visitor count measured within a sensor’s inner detection range\n</td>\n  </tr>\n  <tr>\n   <td>\naverage_visitors_inner\n</td>\n   <td>\nFLOAT64\n</td>\n   <td>\nAverage visitors within the sensor's inner range over a time span.\n</td>\n  </tr>\n  <tr>\n   <td>\nminimum_visitors_outer\n</td>\n   <td>\nFLOAT64\n</td>\n   <td>\nLowest visitor count measured within the sensor’s outer detection range. Set at maximum by default, i.e., about 100 meters in an open environment, if not configured\n</td>\n  </tr>\n  <tr>\n   <td>\nmaximum_visitors_outer\n</td>\n   <td>\nFLOAT64\n</td>\n   <td>\nHighest visitor count measured within a sensor’s outer detection range\n</td>\n  </tr>\n  <tr>\n   <td>\naverage_visitors_outer\n</td>\n   <td>\nFLOAT64\n</td>\n   <td>\nAverage visitors within the sensor's outer range over a time span.\n   </td>\n  </tr>\n\n\n</table>","urlObject":{"path":["desc_table"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"74db0d92-3e33-4136-9f15-af21705321d1","name":"Describe  Sensor Visitors","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"AccessKey ","description":"The User's API Key for the Account","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"table_name\": \"sensor_visitors\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/desc_table"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Tue, 23 Aug 2022 22:46:50 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Cache-Control","value":"no-cache"},{"key":"X-Request-Id","value":"f3aded50-cb72-445b-9024-05809413476e"},{"key":"X-Runtime","value":"1.323322"},{"key":"Vary","value":"Origin"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"column_name\": \"sensor_id\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"sensor_name\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"sensor_mac\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"sensor_address\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"sensor_latitude\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"sensor_longitude\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"timestamp\",\n        \"data_type\": \"TIMESTAMP\"\n    },\n    {\n        \"column_name\": \"minimum_visitors_inner\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"maximum_visitors_inner\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"average_visitors_inner\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"minimum_visitors_outer\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"maximum_visitors_outer\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"average_visitors_outer\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"valid\",\n        \"data_type\": \"BOOL\"\n    },\n    {\n        \"column_name\": \"time_offset\",\n        \"data_type\": \"STRING\"\n    }\n]"}],"_postman_id":"078a3ce7-39a5-40d5-b381-8797e0b0db8d"},{"name":"Describe Sensor Visitors Per Minute","id":"28f27082-441c-4522-8733-a251c8f02756","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"AccessKey ","description":"<p>The User's API Key for the Account</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"table_name\": \"sensor_visitors_per_minute\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/desc_table","description":"<p>This request returns a description of the sensor_visitors_per_minute table (Columns and Datatypes). The table reports the number of visitors present during each 1-minute period. Each row reports visitors for both the inner and outer detection zones. This table is populated only if the “Per-Minute” option has been configured for the sensor; this table is not populated by default.</p>\n<p><strong>Column names and datatypes in the sensor_visitors_per_minute</strong></p>\n<table><tbody><tr><td><br />Fields<br /></td><td><br />Data Type<br /></td><td><br />Comments<br /></td></tr><tr><td><br />sensor_id<br /></td><td><br />INT64<br /></td><td><br />Integer value of a sensor location id. (primary sensor location identifier)</td></tr><tr><td><br />sensor_name<br /></td><td><br />STRING<br /></td><td><br />Name defined by the user to identify a location.<br /></td></tr><tr><td><br />sensor_mac<br /></td><td><br />STRING<br /></td><td><br />Sensor hardware identifier<br /></td></tr><tr><td><br />sensor_address<br /></td><td><br />STRING<br /></td><td><br />Physical address of the sensor as can be added by the user in BlueZoo dashboard<br /></td></tr><tr><td><br />sensor_latitude<br /></td><td><br />FLOAT64<br /></td><td><br />Physical coordinates of a sensor location<br /></td></tr><tr><td><br />sensor_longitude<br /></td><td><br />FLOAT64<br /></td><td><br />Physical coordinates of a sensor location<br /></td></tr><tr><td><br />timestamp<br /></td><td><br />TIMESTAMP<br /></td><td><br />Timestamp (in UTC)<br /></td></tr><tr><td><br />time_offset<br /></td><td><br />STRING<br /></td><td><br />Time offset between UTC (GMT) at which times are stored in the data warehouse and the selected time zone of the sensor location<br /></td></tr><tr><td><br />visitors_inner<br /></td><td><br />FLOAT64<br /></td><td><br />Number of visitors measured within a sensor’s defined inner detection range<br /><br /></td></tr><tr><td><br />visitors_outer<br /></td><td><br />FLOAT64</td><td><br />Number of visitors measured within a sensor’s outer detection range. Set at maximum by default, i.e., about 100 meters in an open environment, if not configured<br /></td></tr></tbody></table>","urlObject":{"path":["desc_table"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"861ff16f-1a6b-48cf-840c-d913c278e122","name":"Describe Sensor Visitors Per Minute","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"AccessKey ","description":"The User's API Key for the Account","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"table_name\": \"sensor_visitors_per_minute\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/desc_table"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 19 Oct 2022 18:03:20 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Cache-Control","value":"no-cache"},{"key":"X-Request-Id","value":"095b6263-1967-4cb9-a2a3-8e453f0887ab"},{"key":"X-Runtime","value":"1.357279"},{"key":"Vary","value":"Origin"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"column_name\": \"sensor_id\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"sensor_name\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"sensor_mac\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"sensor_address\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"sensor_latitude\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"sensor_longitude\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"timestamp\",\n        \"data_type\": \"TIMESTAMP\"\n    },\n    {\n        \"column_name\": \"valid\",\n        \"data_type\": \"BOOL\"\n    },\n    {\n        \"column_name\": \"time_offset\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"visitors_inner\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"visitors_outer\",\n        \"data_type\": \"FLOAT64\"\n    }\n]"}],"_postman_id":"28f27082-441c-4522-8733-a251c8f02756"},{"name":"Describe  Sensor Dwell","id":"28ac5300-0c8c-4e80-8538-9c31102814cb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"AccessKey ","description":"<p>The User's API Key for the Account</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"table_name\": \"sensor_dwell\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/desc_table","description":"<p>This request returns a description of the sensor_dwell table (Columns and Datatypes). Dwell time is a distribution of visit durations per 15-minute slots over a specified period of time. The visit duration represents the amount of time that was spent inside the inner detection range of the sensor.</p>\n<p><strong>Column names and datatypes in the table</strong></p>\n<table>\n  <tr>\n   <td>\n    Fields\n   </td>\n   <td>\n    Data Type\n</td>\n   <td>\n    Comments\n   </td>\n  </tr>\n  <tr>\n   <td>\n    sensor_id\n   </td>\n   <td>\n    INT64\n</td>\n   <td>\nInteger value of a sensor location id. Change in the sensor_name wouldn’t affect the sensor_id as long as the sensor location is not deleted from the system\n   </td>\n  </tr>\n  <tr>\n   <td>\n    sensor_name\n   </td>\n   <td>\n    STRING\n</td>\n   <td>\nName defined by the user to identify a location.\n   </td>\n  </tr>\n  <tr>\n   <td>\n    sensor_mac\n   </td>\n   <td>\n    STRING\n</td>\n   <td>\nStatic sensor identifier which remains the same even when a location is deleted from the system and re-added. \n</td>\n  </tr>\n  <tr>\n   <td>\nsensor_address\n</td>\n   <td>\nSTRING\n</td>\n   <td>\nPhysical address of the sensor as can be added by the user in BlueZoo dashboard\n</td>\n  </tr>\n  <tr>\n   <td>\nsensor_latitude\n</td>\n   <td>\nFLOAT64\n</td>\n   <td>\nPhysical coordinates of a sensor location\n</td>\n  </tr>\n  <tr>\n   <td>\nsensor_longitude\n</td>\n   <td>\nFLOAT64\n</td>\n   <td>\nPhysical coordinates of a sensor location\n</td>\n  </tr>\n  <tr>\n   <td>\ntimestamp\n</td>\n   <td>\nTIMESTAMP\n</td>\n   <td>\nAn array of 15 minute time slots (in UTC). Each slot is defined by a start_timestamp. \n\n<p>Visit duration information is for the visits that ended in that slot’s timespan.</p>\n</td>\n  </tr>\n  <tr>\n   <td>\ntotal_visits\n</td>\n   <td>\nFLOAT64\n</td>\n   <td>\nTotal number of visits/impressions that ended in the given time slot\n</td>\n  </tr>\n  <tr>\n   <td>\ndistribution_bin_0000_to_0001\n.\n.\n.\ndistribution_bin_2400_to_beyond\n</td>\n   <td>\nFLOAT64\n</td>\n   <td>\nAn array of bin descriptions described by a “start” time and a “stop” time. Each duration bin consists of float values representing the percentage of visits that lasted for the bin’s duration.\ni.e., % of visits that lasted for 0-1 min\n.\n.\n.\n% of visits that lasted for 24 hours and beyond\n\n\n   </td>\n  </tr>\n\n\n</table>","urlObject":{"path":["desc_table"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"168b3196-c78d-473a-b046-40ba846e4001","name":"Describe  Sensor Dwell","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"AccessKey ","description":"The User's API Key for the Account","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"table_name\": \"sensor_dwell\"\n}","options":{"raw":{"language":"json"}}},"url":"https://morpheus-api.bluefoxengage.com/v2/dwh/desc_table"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 19 Jan 2022 22:57:29 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Cache-Control","value":"no-cache"},{"key":"X-Request-Id","value":"f783796a-e6fb-40ec-af03-e47eb0a8b3ca"},{"key":"X-Runtime","value":"1.229609"},{"key":"Vary","value":"Origin"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"column_name\": \"sensor_id\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"sensor_name\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"sensor_mac\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"sensor_address\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"sensor_latitude\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"sensor_longitude\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"timestamp\",\n        \"data_type\": \"TIMESTAMP\"\n    },\n    {\n        \"column_name\": \"total_visits\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_weight\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0000_to_0001\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0001_to_0002\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0002_to_0003\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0003_to_0004\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0004_to_0005\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0005_to_0006\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0006_to_0007\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0007_to_0008\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0008_to_0009\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0009_to_0010\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0010_to_0011\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0011_to_0012\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0012_to_0013\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0013_to_0014\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0014_to_0015\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0015_to_0016\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0016_to_0017\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0017_to_0018\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0018_to_0019\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0019_to_0020\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0020_to_0021\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0021_to_0022\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0022_to_0023\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0023_to_0024\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0024_to_0025\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0025_to_0026\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0026_to_0027\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0027_to_0028\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0028_to_0029\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0029_to_0030\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0030_to_0032\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0032_to_0034\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0034_to_0036\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0036_to_0038\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0038_to_0040\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0040_to_0042\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0042_to_0044\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0044_to_0046\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0046_to_0048\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0048_to_0050\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0050_to_0052\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0052_to_0054\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0054_to_0056\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0056_to_0058\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0058_to_0100\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0100_to_0105\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0105_to_0110\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0110_to_0115\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0115_to_0120\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0120_to_0125\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0125_to_0130\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0130_to_0135\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0135_to_0140\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0140_to_0145\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0145_to_0150\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0150_to_0155\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0155_to_0200\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0200_to_0205\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0205_to_0210\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0210_to_0215\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0215_to_0220\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0220_to_0225\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0225_to_0230\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0230_to_0235\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0235_to_0240\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0240_to_0245\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0245_to_0250\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0250_to_0255\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0255_to_0300\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0300_to_0315\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0315_to_0330\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0330_to_0345\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0345_to_0400\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0400_to_0415\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0415_to_0430\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0430_to_0445\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0445_to_0500\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0500_to_0515\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0515_to_0530\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0530_to_0545\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0545_to_0600\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0600_to_0615\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0615_to_0630\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0630_to_0645\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0645_to_0700\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0700_to_0715\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0715_to_0730\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0730_to_0745\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0745_to_0800\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0800_to_0900\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_0900_to_1000\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_1000_to_1100\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_1100_to_1200\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_1200_to_1300\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_1300_to_1400\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_1400_to_1500\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_1500_to_1600\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_1600_to_1700\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_1700_to_1800\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_1800_to_1900\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_1900_to_2000\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_2000_to_2100\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_2100_to_2200\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_2200_to_2300\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_2300_to_2400\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"distribution_bin_2400_to_beyond\",\n        \"data_type\": \"FLOAT64\"\n    }\n]"}],"_postman_id":"28ac5300-0c8c-4e80-8538-9c31102814cb"},{"name":"Describe  Group UV","id":"cd69aace-9619-412a-8dcc-10ef6b49a874","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"AccessKey ","description":"<p>The User's API Key for the Account</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"table_name\": \"group_uv_daily\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/desc_table","description":"<p>This request returns a description of the group_UV tables, i.e., Unique Visitors over a day, a week, month and/or custom time filters. \nMonthly UV filter resets and begins on the 1st day of month. Weekly resets and begins each Monday.</p>\n<p><strong>Column names and datatypes in the table</strong></p>\n<table>\n  <tr>\n   <td>\n    Fields\n   </td>\n   <td>\n    Data Type\n</td>\n   <td>\n    Comments\n   </td>\n  </tr>\n  <tr>\n   <td>\n    group_id\n   </td>\n   <td>\n    INT64\n</td>\n   <td>\nInteger value of a UV group id\n   </td>\n  </tr>\n  <tr>\n   <td>\n    group_name\n   </td>\n   <td>\n    STRING\n</td>\n   <td>\nName defined by the user to identify a group.\n   </td>\n  </tr>\n  <tr>\n   <td>\n    date\n   </td>\n   <td>\n    DATE\n</td>\n   <td>\nDate over which the unique visitors are measured\n</td>\n  </tr>\n  <tr>\n   <td>\ncuv_freq_10\n.\n.\n.\ncuv_freq_1\n</td>\n   <td>\nFLOAT64\n</td>\n   <td>\nNumber of Unique Visitors seen 10 times or more during the duration of the time interval\n.\n.\n.\nNumber of Unique Visitors seen once\n</td>\n  </tr>\n  <tr>\n   <td>\ncuv\n</td>\n   <td>\nFLOAT64\n</td>\n   <td>\nTotal number of Unique Visitors for the duration of the filter\n</td>\n  </tr>\n  <tr>\n   <td>\noutgoing_inner_visits\n</td>\n   <td>\nFLOAT64\n</td>\n   <td>\n Number of visits ending within the sensor’s inner detection range for the duration\n   </td>\n  </tr>\n\n\n</table>","urlObject":{"path":["desc_table"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"2c821d2e-fc25-47cf-b5cd-2c430deea69a","name":"Describe  Group UV Daily","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"AccessKey ","description":"The User's API Key for the Account","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"table_name\": \"group_uv_daily\"\n}","options":{"raw":{"language":"json"}}},"url":"https://morpheus-api.bluefoxengage.com/v2/dwh/desc_table"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 19 Jan 2022 22:58:14 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Cache-Control","value":"no-cache"},{"key":"X-Request-Id","value":"15b2f671-1d63-42d9-8582-6dd65b518d64"},{"key":"X-Runtime","value":"1.246867"},{"key":"Vary","value":"Origin"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"column_name\": \"group_id\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"group_name\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"date\",\n        \"data_type\": \"DATE\"\n    },\n    {\n        \"column_name\": \"cuv_freq_10\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"cuv_freq_9\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"cuv_freq_8\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"cuv_freq_7\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"cuv_freq_6\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"cuv_freq_5\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"cuv_freq_4\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"cuv_freq_3\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"cuv_freq_2\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"cuv_freq_1\",\n        \"data_type\": \"FLOAT64\"\n    }\n]"}],"_postman_id":"cd69aace-9619-412a-8dcc-10ef6b49a874"},{"name":"Describe  Traffic flow","id":"b7f598b5-b66a-4f95-bfd8-271931a1f45b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"AccessKey ","description":"<p>The User's API Key for the Account</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"table_name\": \"group_flow_transition\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/desc_table","description":"<p>This request returns a description of the traffic flow related tables (Columns and Datatypes). The measurements reported by flow are captured in the following four tables- </p>\n<ol>\n<li>group_flow_transition- Contains the number of journeys that visited one location (group of sensors) followed by another (group of sensors). </li>\n<li>group_flow_correlation- Contains the number of journeys that include two locations.</li>\n<li>group_flow_duration- Contains the number of journeys to a single group, to two groups, to three groups, etc–up to the number (n) of groups in the group set.  The table also contains the average journey duration (in  seconds) for each of these n collections of journeys. Each group can have one or multiple sensors.</li>\n<li>group_flow_segmentation- Contains the journey characteristics based on duration and groups visited.</li>\n</ol>\n<p><strong>Column names and datatypes in the table group_flow_transition</strong></p>\n<table>\n  <tr>\n   <td>\n    Fields\n   </td>\n   <td>\n    Data Type\n</td>\n   <td>\n    Comments\n   </td>\n  </tr>\n  <tr>\n   <td>\n    campaign_id\n   </td>\n   <td>\n    INT64\n</td>\n   <td>\nInteger value of the traffic flow campaign id.\n   </td>\n  </tr>\n  <tr>\n   <td>\n    campaign_name\n   </td>\n   <td>\n    STRING\n</td>\n   <td>\nName of the campaign being retrieved\n   </td>\n  </tr>\n  <tr>\n   <td>\n    group_source_id\n   </td>\n   <td>\n    INT64\n</td>\n   <td>\nInteger value of the source group id, which is an origin group where all journeys begin\n</td>\n  </tr>\n  <tr>\n   <td>\ngroup_source_name\n</td>\n   <td>\nSTRING\n</td>\n   <td>\nName defined for the origin group\n</td>\n  </tr>\n  <tr>\n   <td>\ngroup_destination_id\n</td>\n   <td>\nINT64\n</td>\n   <td>\nInteger value of the destination group id, where the mobile phones are seen later\n</td>\n  </tr>\n  <tr>\n   <td>\ngroup_destination_name\n</td>\n   <td>\nSTRING\n</td>\n   <td>\nName defined for the destination group\n</td>\n  </tr>\n  <tr>\n   <td>\ndate\n</td>\n   <td>\nDATE\n</td>\n   <td>\nDate of measured data\n</td>\n  </tr>\n  <tr>\n   <td>\ntransition_inner_count\n</td>\n   <td>\nINT64\n</td>\n   <td>\nNumber of journeys that transition from source to destination group\n</td>\n  </tr>\n  <tr>\n   <td>\ntransition_total_inner_count\n</td>\n   <td>\nINT64\n</td>\n   <td>\nTotal number of Journeys\n\n   </td>\n  </tr>\n\n\n</table>\n\n<p><strong>Column names and datatypes in the table group_flow_correlation</strong></p>\n<table>\n  <tr>\n   <td>\n    Fields\n   </td>\n   <td>\n    Data Type\n</td>\n   <td>\n    Comments\n   </td>\n  </tr>\n  <tr>\n   <td>\n    correlation_inner_count\n   </td>\n   <td>\n    INT64\n</td>\n   <td>\nNumber of common journeys between the two groups (A and B)\n   </td>\n  </tr>\n  <tr>\n   <td>\n    correlation_total_inner_count\n   </td>\n   <td>\n    INT64\n</td>\n   <td>\nTotal number of journeys at group A and B\n   \n   </td>\n  </tr>\n\n\n</table>\n\n<p><strong>Column names and datatypes in the table group_flow_duration</strong></p>\n<table>\n  <tr>\n   <td>\n    Fields\n   </td>\n   <td>\n    Data Type\n</td>\n   <td>\n    Comments\n   </td>\n  </tr>\n  <tr>\n   <td>\n  number_of_groups_visited\n   </td>\n   <td>\n    INT64\n</td>\n   <td>\nThe integer values range from 1 to the number of groups in the group set\n   </td>\n  </tr>\n  <tr>\n   <td>\n    total_journey_count\n   </td>\n   <td>\n    INT64\n</td>\n   <td>\nTotal number of visitor journeys (One visitor can have multiple journeys per day)\n</td>\n  </tr>\n  <tr>\n   <td>\n    average_journey_duration\n   </td>\n   <td>\n    INT64\n</td>\n   <td>\nAverage Journey duration measured in seconds\n   \n   </td>\n  </tr>\n\n\n</table>\n\n<p><strong>Column names and datatypes in the table group_flow_segmentation</strong></p>\n<table>\n  <tr>\n   <td>\n    Fields\n   </td>\n   <td>\n    Data Type\n</td>\n   <td>\n    Comments\n   </td>\n  </tr>\n  <tr>\n   <td>\n    shoppers_count\n   </td>\n   <td>\n    INT64\n</td>\n   <td>\nTotal number of journeys within the inner range of the sensor that lasts less than the defined long time.\n   </td>\n  </tr>\n  <tr>\n   <td>\n  window_shoppers_count\n   </td>\n   <td>\n    INT64\n</td>\n   <td>\nTotal number of journeys only within the outer range that lasts longer than the defined short time and less than the long time\n</td>\n  </tr>\n  <tr>\n   <td>\n  passersby_count\n   </td>\n   <td>\n    INT64\n</td>\n   <td>\nTotal number of journeys within the outer range that lasts for the shortest variable time\n</td>\n  </tr>\n  <tr>\n   <td>\n  employees_count\n   </td>\n   <td>\n    INT64\n</td>\n   <td>\nTotal number of journeys within the outer range that lasts for longer than the defined long time\n   \n   </td>\n  </tr>\n\n\n</table>","urlObject":{"path":["desc_table"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"d2d77d8a-4121-49bf-b25c-614d25f46afc","name":"Describe  Traffic flow","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"AccessKey ","description":"The User's API Key for the Account","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"table_name\": \"group_flow_transition\"\n}","options":{"raw":{"language":"json"}}},"url":"https://morpheus-api.bluefoxengage.com/v2/dwh/desc_table"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 19 Jan 2022 23:00:06 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Cache-Control","value":"no-cache"},{"key":"X-Request-Id","value":"af650d5b-a598-4bdd-9769-2200e0b30501"},{"key":"X-Runtime","value":"1.237086"},{"key":"Vary","value":"Origin"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"column_name\": \"campaign_id\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"campaign_name\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"group_source_id\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"group_source_name\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"group_destination_id\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"group_destination_name\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"date\",\n        \"data_type\": \"DATE\"\n    },\n    {\n        \"column_name\": \"transition_inner_count\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"transition_total_inner_count\",\n        \"data_type\": \"INT64\"\n    }\n]"},{"id":"7c993384-1375-4750-ae3f-ac7f6d8f7345","name":"Describe  Traffic flow","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"AccessKey ","description":"The User's API Key for the Account","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"table_name\": \"group_flow_correlation\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/desc_table"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 19 Jan 2022 23:01:22 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Cache-Control","value":"no-cache"},{"key":"X-Request-Id","value":"b8d39100-2696-4ae1-a9cb-d7a949e4083a"},{"key":"X-Runtime","value":"2.370603"},{"key":"Vary","value":"Origin"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"column_name\": \"campaign_id\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"campaign_name\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"group_a_id\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"group_a_name\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"group_b_id\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"group_b_name\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"date\",\n        \"data_type\": \"DATE\"\n    },\n    {\n        \"column_name\": \"correlation_inner_count\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"correlation_total_inner_count\",\n        \"data_type\": \"INT64\"\n    }\n]"},{"id":"c6a0746e-78d4-4d66-9857-bdaa227f58b8","name":"Describe  Traffic flow","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"AccessKey ","description":"The User's API Key for the Account","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"table_name\": \"group_flow_duration\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/desc_table"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 19 Jan 2022 23:01:50 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Cache-Control","value":"no-cache"},{"key":"X-Request-Id","value":"6823a3fc-87e0-4c63-85c0-db91ff53f153"},{"key":"X-Runtime","value":"1.330883"},{"key":"Vary","value":"Origin"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"column_name\": \"campaign_id\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"campaign_name\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"group_set_id\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"group_set_name\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"date\",\n        \"data_type\": \"DATE\"\n    },\n    {\n        \"column_name\": \"number_of_groups_visited\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"total_journey_count\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"average_journey_duration\",\n        \"data_type\": \"INT64\"\n    }\n]"},{"id":"5a258688-874f-42d1-b890-d2605571f5d1","name":"Describe  Traffic flow","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"AccessKey ","description":"The User's API Key for the Account","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"table_name\": \"group_flow_segmentation\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/desc_table"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 19 Jan 2022 23:02:19 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Cache-Control","value":"no-cache"},{"key":"X-Request-Id","value":"8648afa8-8979-44ab-a68f-dcd291372eda"},{"key":"X-Runtime","value":"1.224100"},{"key":"Vary","value":"Origin"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"column_name\": \"campaign_id\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"campaign_name\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"group_set_id\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"group_set_name\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"date\",\n        \"data_type\": \"DATE\"\n    },\n    {\n        \"column_name\": \"shoppers_count\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"window_shoppers_count\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"passersby_count\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"employees_count\",\n        \"data_type\": \"INT64\"\n    }\n]"}],"_postman_id":"b7f598b5-b66a-4f95-bfd8-271931a1f45b"},{"name":"Describe Sensor Pulses","id":"008bfde4-5d47-4353-b968-dfc82e5dea68","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"AccessKey ","description":"<p>The User's API Key for the Account</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"table_name\": \"sensor_pulses\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/desc_table","description":"<p>The sensor_pulses table provides telemetry and diagnostic data from BlueZoo sensors. It is primarily useful for sensor health monitoring, connectivity analysis, network quality analysis (Wi-Fi / cellular), MAC sampling volume tracking (Global vs Local), RF environment diagnostics, pulse delivery validation, rather than foot-traffic or visitor analytics.</p>\n<p><strong>Column names and datatypes in the table sensor_pulses</strong></p>\n<table><tbody><tr><td><div><br />Fields<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Data Type<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Comments<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />sensor_id<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div>INT64<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div>Unique internal ID of the sensor</div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />sensor_name<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div>STRING<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div>Name of the sensor as defined by the user<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />sensor_mac<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div>STRING<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div>MAC address of the sensor</div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />sensor_address<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div>STRING<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div>Physical address of the sensor location<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />sensor_latitude<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div>FLOAT</div><div><div><div><div></div></div></div><div></div></div></td><td><div>Latitude coordinate of the sensor<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />sensor_longitude<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div>FLOAT<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div>Longitude coordinate of the sensor<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />account_id<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div>STRING<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div>Unique account identifier<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />account_name<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div>STRING<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div>Account name<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />timestamp<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div>TIMESTAMP<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div>Timestamp of the pulse event<br /><br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>expected_pulse_count</div><div><div><div><div></div></div></div><div></div></div></td><td><div>INT64</div><div><div><div><div></div></div></div><div></div></div></td><td><div>Expected number of pulses for the reporting interval</div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>pulse_count</div><div><div><div><div></div></div></div><div></div></div></td><td><div>INT64</div><div><div><div><div></div></div></div><div></div></div></td><td><div>Actual number of pulses received</div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>time_offset</div><div><div><div><div></div></div></div><div></div></div></td><td><div>STRING</div><div><div><div><div></div></div></div><div></div></div></td><td><div>Local time offset from UTC</div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>time_zone</div><div><div><div><div></div></div></div><div></div></div></td><td><div>STRING</div><div><div><div><div></div></div></div><div></div></div></td><td><div>Time zone of the sensor</div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>pulse_rssi_distribution</div><div><div><div><div></div></div></div><div></div></div></td><td><div>RECORD</div><div><div><div><div></div></div></div><div></div></div></td><td><div>Distribution of RSSI values captured during pulses</div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>mac_count_global</div><div><div><div><div></div></div></div><div></div></div></td><td><div>INT64</div><div><div><div><div></div></div></div><div></div></div></td><td><div>Total MAC Global addresses detected</div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>mac_count_local</div><div><div><div><div></div></div></div><div></div></div></td><td><div>INT64</div><div><div><div><div></div></div></div><div></div></div></td><td><div>Local MAC addresses detected</div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>mac_count_global_whitelisted</div><div><div><div><div></div></div></div><div></div></div></td><td><div>INT64</div><div><div><div><div></div></div></div><div></div></div></td><td><div>Global MACs that passed whitelisting</div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>rssi_cellular_avg</div><div><div><div><div></div></div></div><div></div></div></td><td><div>FLOAT</div><div><div><div><div></div></div></div><div></div></div></td><td><div>Average cellular signal strength (RSSI)</div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>rssi_wifi_avg</div><div><div><div><div></div></div></div><div></div></div></td><td><div>FLOAT</div><div><div><div><div></div></div></div><div></div></div></td><td><div>Average Wi-Fi signal strength (RSSI)</div><div><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>","urlObject":{"path":["desc_table"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"cba7ff61-414c-403b-b813-d64e1227cdc8","name":"Describe Sensor Pulses","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"AccessKey ","description":"The User's API Key for the Account","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"table_name\": \"sensor_pulses\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/desc_table"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Thu, 02 Apr 2026 17:04:21 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Cache-Control","value":"no-cache"},{"key":"X-Request-Id","value":"74afab3b-3b03-4532-9e0f-f24498661256"},{"key":"X-Runtime","value":"1.397446"},{"key":"Vary","value":"Origin"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"column_name\": \"sensor_id\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"sensor_name\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"sensor_mac\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"sensor_address\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"sensor_latitude\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"sensor_longitude\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"timestamp\",\n        \"data_type\": \"TIMESTAMP\"\n    },\n    {\n        \"column_name\": \"expected_pulse_count\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"pulse_count\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"time_offset\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"time_zone\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"pulse_rssi_distribution\",\n        \"data_type\": \"STRUCT<r000 INT64, r001 INT64, r002 INT64, r003 INT64, r004 INT64, r005 INT64, r006 INT64, r007 INT64, r008 INT64, r009 INT64, r010 INT64, r011 INT64, r012 INT64, r013 INT64, r014 INT64, r015 INT64, r016 INT64, r017 INT64, r018 INT64, r019 INT64, r020 INT64, r021 INT64, r022 INT64, r023 INT64, r024 INT64, r025 INT64, r026 INT64, r027 INT64, r028 INT64, r029 INT64, r030 INT64, r031 INT64, r032 INT64, r033 INT64, r034 INT64, r035 INT64, r036 INT64, r037 INT64, r038 INT64, r039 INT64, r040 INT64, r041 INT64, r042 INT64, r043 INT64, r044 INT64, r045 INT64, r046 INT64, r047 INT64, r048 INT64, r049 INT64, r050 INT64, r051 INT64, r052 INT64, r053 INT64, r054 INT64, r055 INT64, r056 INT64, r057 INT64, r058 INT64, r059 INT64, r060 INT64, r061 INT64, r062 INT64, r063 INT64, r064 INT64, r065 INT64, r066 INT64, r067 INT64, r068 INT64, r069 INT64, r070 INT64, r071 INT64, r072 INT64, r073 INT64, r074 INT64, r075 INT64, r076 INT64, r077 INT64, r078 INT64, r079 INT64, r080 INT64, r081 INT64, r082 INT64, r083 INT64, r084 INT64, r085 INT64, r086 INT64, r087 INT64, r088 INT64, r089 INT64, r090 INT64, r091 INT64, r092 INT64, r093 INT64, r094 INT64, r095 INT64, r096 INT64, r097 INT64, r098 INT64, r099 INT64, r100 INT64, r101 INT64, r102 INT64, r103 INT64, r104 INT64, r105 INT64, r106 INT64, r107 INT64, r108 INT64, r109 INT64, r110 INT64, r111 INT64, r112 INT64, r113 INT64, r114 INT64, r115 INT64, r116 INT64, r117 INT64, r118 INT64, r119 INT64, r120 INT64, r121 INT64, r122 INT64, r123 INT64, r124 INT64, r125 INT64, r126 INT64, r127 INT64>\"\n    },\n    {\n        \"column_name\": \"mac_count_global\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"mac_count_local\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"rssi_cellular_avg\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"rssi_wifi_avg\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"mac_count_global_whitelisted\",\n        \"data_type\": \"INT64\"\n    }\n]"}],"_postman_id":"008bfde4-5d47-4353-b968-dfc82e5dea68"}],"id":"89e2277d-43ef-424b-b4d6-6f473538f108","description":"<h1 id=\"overview\"><strong>Overview</strong></h1>\n<p>The BlueZoo Data Warehouse API allows application and service developers to gain access to historical data about locations managed by a given BlueZoo Cluster for their accounts. Using the API, the historical information can easily be ingested and integrated into customer built applications, custom services, and data visualization products.</p>\n<h1 id=\"service-summary\">Service Summary</h1>\n<p>HTTP POST or HTTP GET requests are used to retrieve the data. The request body contains the request’s parameters expressed in JSON or Text format. All responses are JSON format.</p>\n<p>The API includes the following services:</p>\n<ul>\n<li><p>Get the list of tables available (e.g. group unique visits, dwell times, etc.)</p>\n</li>\n<li><p>Get the table description, providing columns to query in the table.</p>\n</li>\n<li><p>Get the results to a SQL query.</p>\n</li>\n</ul>\n<p>Access Key</p>\n<p>Customers can access historical data in the data warehouse by using the RUN QUERY endpoint with the Customer-specific account “Access Key” found in the BlueZoo dashboard’s <a href=\"https://beta.bluezoo.io/profile\">Profile screen</a>.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Index</th>\n<th>Data Warehouse API endpoints</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>1</td>\n<td>list_tables</td>\n</tr>\n<tr>\n<td>2</td>\n<td>desc_table</td>\n</tr>\n<tr>\n<td>3</td>\n<td>run_query</td>\n</tr>\n</tbody>\n</table>\n</div><h1 id=\"using-the-dwh-api-for-wi-fi\"><strong>Using the DWH API for Wi-Fi</strong></h1>\n<p>The BlueZoo Data Warehouse API is accessible via a specific base URL.</p>\n<p>To form the full request URL for a given endpoint (see available endpoints below), simply append the endpoint name to the base URL.</p>\n<p>[Base API URL]</p>\n<p><a href=\"https://apollo-api.bluefoxengage.com/v2/dwh\">https://hermes.apollo.bluezoo.io/v2/dwh</a></p>\n<p>Example:</p>\n<p>[Full Request URL]</p>\n<p><a href=\"https://apollo-api.bluefoxengage.com/v2/dwh\">https://hermes.apollo.bluezoo.io/v2/dwh</a><a href=\"https://apollo-api.bluefoxengage.com/v2/dwh/list_tables\">/list_tables</a></p>\n<p>Each successful HTTP request should return 200 as HTTP Status Code.</p>\n","_postman_id":"89e2277d-43ef-424b-b4d6-6f473538f108"},{"name":"BlueZoo Real-time API for Wi-Fi","item":[{"name":"Get_occupancy_count","id":"37d85347-52e8-4853-b7e5-3818300e384b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"af42d7dd-6b7a-4fb3-8df6-ad2c724d84d6","description":"<p>The User's API Key for the Account</p>\n","type":"text"}],"body":{"mode":"raw","raw":""},"url":"{{base_url}}/get_visits?id=","description":"<h4 id=\"description\"><strong>Description</strong>:</h4>\n<p>This endpoint returns the momentary visitor count (i.e., momentary occupancy) for a specified sensor location at the beginning of the current minute.</p>\n<p><strong>Required Parameter</strong>:</p>\n<ul>\n<li><code>id</code>: The sensor location ID</li>\n</ul>\n","urlObject":{"path":["get_visits"],"host":["{{base_url}}"],"query":[{"key":"id","value":""}],"variable":[]}},"response":[{"id":"f63039b3-e56d-49bc-8007-27323785204a","name":"Get_occupancy_count","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"af42d7dd-6b7a-4fb3-8df6-ad2c724d84d6","description":"The User's API Key for the Account","type":"text"}],"body":{"mode":"raw","raw":""},"url":{"raw":"{{base_url}}/get_visits?id=","host":["{{base_url}}"],"path":["get_visits"],"query":[{"key":"id","value":"","description":"Sensor_id"}]}},"status":"OK","code":200,"_postman_previewlanguage":"","header":[{"key":"Date","value":"Fri, 16 Oct 2026 00:25:40 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Cache-Control","value":"no-cache"},{"key":"X-Request-Id","value":"d04ef35d-20ff-46e3-bb2d-b72d879b4386"},{"key":"X-Runtime","value":"0.015288"},{"key":"Vary","value":"Origin"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"status\": \"OK\",\n    \"visit_count_slots\": [\n        {\n            \"start_timestamp\": 1792108800,\n            \"stop_timestamp\": 1792109699,\n            \"inner_visit_count\": 1,\n            \"outer_visit_count\": 1\n        },\n        {\n            \"start_timestamp\": 1792107900,\n            \"stop_timestamp\": 1792108799,\n            \"inner_visit_count\": 2,\n            \"outer_visit_count\": 6\n        },\n        {\n            \"start_timestamp\": 1792107000,\n            \"stop_timestamp\": 1792107899,\n            \"inner_visit_count\": 0,\n            \"outer_visit_count\": 6\n        },\n        {\n            \"start_timestamp\": 1792106100,\n            \"stop_timestamp\": 1792106999,\n            \"inner_visit_count\": 0,\n            \"outer_visit_count\": 3\n        },\n        {\n            \"start_timestamp\": 1792105200,\n            \"stop_timestamp\": 1792106099,\n            \"inner_visit_count\": 1,\n            \"outer_visit_count\": 1\n        },\n        {\n            \"start_timestamp\": 1792104300,\n            \"stop_timestamp\": 1792105199,\n            \"inner_visit_count\": 0,\n            \"outer_visit_count\": 3\n        },\n        {\n            \"start_timestamp\": 1792103400,\n            \"stop_timestamp\": 1792104299,\n            \"inner_visit_count\": 0,\n            \"outer_visit_count\": 3\n        },\n        {\n            \"start_timestamp\": 1792102500,\n            \"stop_timestamp\": 1792103399,\n            \"inner_visit_count\": 0,\n            \"outer_visit_count\": 2\n        }\n    ]\n}"}],"_postman_id":"37d85347-52e8-4853-b7e5-3818300e384b"},{"name":"Get_visits","id":"02f38929-f343-4492-a66e-4545c0feb6d6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"","description":"<p>The User's API Key for the Account</p>\n","type":"text"}],"url":"{{base_url}}/get_visits?id=","description":"<h4 id=\"description\"><strong>Description</strong>:</h4>\n<p>This endpoint returns the number of inner and outer visits measured for the last eight full 15-minute periods for a specified sensor location.</p>\n<p><strong>Required Parameter:</strong></p>\n<ul>\n<li><code>id</code>: The sensor location ID</li>\n</ul>\n","urlObject":{"path":["get_visits"],"host":["{{base_url}}"],"query":[{"key":"id","value":""}],"variable":[]}},"response":[{"id":"74ae49a0-1535-494d-8754-e75c6c7ef8a7","name":"Get_visits","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"","description":"The User's API Key for the Account","type":"text"}],"url":{"raw":"/get_visits?sensor_id=","host":[""],"path":["get_visits"],"query":[{"key":"sensor_id","value":"","description":"Sensor_id"}]}},"status":"OK","code":200,"_postman_previewlanguage":"","header":[{"key":"Date","value":"Fri, 16 Oct 2026 00:19:40 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Cache-Control","value":"no-cache"},{"key":"X-Request-Id","value":"08302ff9-e545-4f92-8ae6-e2ab27145966"},{"key":"X-Runtime","value":"0.079591"},{"key":"Vary","value":"Origin"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"status\": \"OK\",\n    \"visit_count_slots\": [\n        {\n            \"start_timestamp\": 1792108800,\n            \"stop_timestamp\": 1792109699,\n            \"inner_visit_count\": 1,\n            \"outer_visit_count\": 1\n        },\n        {\n            \"start_timestamp\": 1792107900,\n            \"stop_timestamp\": 1792108799,\n            \"inner_visit_count\": 2,\n            \"outer_visit_count\": 6\n        },\n        {\n            \"start_timestamp\": 1792107000,\n            \"stop_timestamp\": 1792107899,\n            \"inner_visit_count\": 0,\n            \"outer_visit_count\": 6\n        },\n        {\n            \"start_timestamp\": 1792106100,\n            \"stop_timestamp\": 1792106999,\n            \"inner_visit_count\": 0,\n            \"outer_visit_count\": 3\n        },\n        {\n            \"start_timestamp\": 1792105200,\n            \"stop_timestamp\": 1792106099,\n            \"inner_visit_count\": 1,\n            \"outer_visit_count\": 1\n        },\n        {\n            \"start_timestamp\": 1792104300,\n            \"stop_timestamp\": 1792105199,\n            \"inner_visit_count\": 0,\n            \"outer_visit_count\": 3\n        },\n        {\n            \"start_timestamp\": 1792103400,\n            \"stop_timestamp\": 1792104299,\n            \"inner_visit_count\": 0,\n            \"outer_visit_count\": 3\n        },\n        {\n            \"start_timestamp\": 1792102500,\n            \"stop_timestamp\": 1792103399,\n            \"inner_visit_count\": 0,\n            \"outer_visit_count\": 2\n        }\n    ]\n}"}],"_postman_id":"02f38929-f343-4492-a66e-4545c0feb6d6"}],"id":"82cbf3e9-b227-4038-8b39-9c239a7fb00f","description":"<h1 id=\"overview\"><strong>Overview</strong></h1>\n<p>The BlueZoo Real-time API allows application and service developers to gain access to the most recent visitor count (occupancy) and visit data from sensor locations in their accounts.</p>\n<h1 id=\"service-summary\">Service Summary</h1>\n<p>HTTP GET requests are used to retrieve the data. The request body contains the request’s parameters expressed in JSON or Text format. All responses are JSON format.</p>\n<p>The API includes the following services:</p>\n<ul>\n<li><p>Get the visitor count (occupancy) for inner and outer detection zone of the sensor</p>\n</li>\n<li><p>Get visits for the last eight 15-minute periods, in the inner and outer detection zone of the sensor</p>\n</li>\n</ul>\n<p>Access Key</p>\n<p>Customers can access data from these endpoints by using their account-specific \"Access Key,\" available in the <a href=\"https://dashboard.bluezoo.io/profile\">Profile section</a> of the BlueZoo dashboard, for authentication.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Index</th>\n<th>Real-time API endpoints</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>1</td>\n<td>get_occupancy_count?id={id}</td>\n</tr>\n<tr>\n<td>2</td>\n<td>/get_visits?id={id}</td>\n</tr>\n</tbody>\n</table>\n</div><h1 id=\"using-the-real-time-api-for-wi-fi\"><strong>Using the real-time API for Wi-Fi</strong></h1>\n<p>The BlueZoo Reall-time API is accessible via a specific base URL.</p>\n<h4 id=\"base-url-httpshermesapollobluezooiov2\"><strong>Base URL</strong>: <a href=\"https://hermes.apollo.bluezoo.io/v2\"><code>https://hermes.apollo.bluezoo.io/v2</code></a></h4>\n<p>To form the full request URL for a given endpoint (see available endpoints below), simply append the endpoint name to the base URL.</p>\n<p>Example:</p>\n<p>[Base API URL]</p>\n<h4 id=\"httpshermesapollobluezooiov2\"><a href=\"https://hermes.apollo.bluezoo.io/v2\"><code>https://hermes.apollo.bluezoo.io/v2</code></a></h4>\n<p>[Full Request URL]</p>\n<p><a href=\"https://hermes.apollo.bluezoo.io/v2/get_occupancy_count\">https://hermes.apollo.bluezoo.io/v2/get_occupancy_count?id={id}</a></p>\n<p>Where, id= the unique sensor location id</p>\n<p><strong>A sensor ID can be obtained from the \"Sensor locations&gt; Properties\" section in the BlueZoo dashboard, or by querying the sensor and account-related tables through the BlueZoo Datawarehouse API.</strong></p>\n<p>Each successful HTTP request should return 200 as HTTP Status Code.</p>\n","_postman_id":"82cbf3e9-b227-4038-8b39-9c239a7fb00f"},{"name":"Bluezoo Data Warehouse API for BLE","item":[{"name":"List Tables","id":"295f4bed-d363-4df3-a32f-80ebcb4dd667","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"AccessKey","description":"<p>The User's API Key for the Account</p>\n","type":"text"}],"url":"{{base_url}}/list_tables","description":"<h2 id=\"list_tables\"><strong>list_tables</strong></h2>\n<p>This endpoint returns a list of the tables available under the account, for a user to query. The list includes tables for both Wi-Fi and BLE data, as available.</p>\n<table><tbody><tr><td><div><br />Request<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Description<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />HTTP Method<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />GET<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />Endpoint<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />list_tables<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />Authorization<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Request header used for account authentication<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<p><strong>Result</strong></p>\n<table><tbody><tr><td><div><br />Fields<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Description<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />HTTP status code<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Request status code, possible values are:<br />200<br />400<br />403<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />HTTP status message<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Request status message, possible values are:<br />\"BAD_TOKEN\"<br />\"RESTRICTED_ACCESS\"<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />Body<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Array of JSON structure holding information fields about the table names<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<h2 id=\"example-response\">Example Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n    {\n        \"table_name\": \"sensor_visits\"\n    },\n    {\n        \"table_name\": \"group_flow_duration\"\n    },\n    {\n        \"table_name\": \"group_flow_transition\"\n    },\n    {\n        \"table_name\": \"group_flow_segmentation\"\n    },\n    {\n        \"table_name\": \"sensor_visitors\"\n    },\n    {\n        \"table_name\": \"sensor_dwell\"\n    },\n    {\n        \"table_name\": \"group_uv_daily\"\n    },\n    {\n        \"table_name\": \"group_convert\"\n    },\n    {\n        \"table_name\": \"group_dwell\"\n    },\n    {\n        \"table_name\": \"group_uv_weekly\"\n    },\n    {\n        \"table_name\": \"group_uv_monthly\"\n    },\n    {\n        \"table_name\": \"group_uv_custom\"\n    },\n    {\n        \"table_name\": \"group_flow_correlation\"\n    },\n    {\n        \"table_name\": \"sensor_pulses\"\n    }\n]\n\n</code></pre>","urlObject":{"path":["list_tables"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"115e8e01-f0f0-497d-84ec-de635aab8c69","name":"List Tables","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"","description":"The User's API Key for the Account","type":"text"}],"url":"{{base_url}}/list_tables"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Thu, 15 Oct 2026 23:39:40 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Cache-Control","value":"no-cache"},{"key":"X-Request-Id","value":"b5cc08b6-9d17-4dfb-b3df-b9b24da25a9a"},{"key":"X-Runtime","value":"1.314837"},{"key":"Vary","value":"Origin"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"table_name\": \"sensor_ble_visitors\"\n    },\n    {\n        \"table_name\": \"group_convert_daily\"\n    },\n    {\n        \"table_name\": \"sensor_visits\"\n    },\n    {\n        \"table_name\": \"group_flow_duration\"\n    },\n    {\n        \"table_name\": \"group_flow_transition\"\n    },\n    {\n        \"table_name\": \"group_sensor_history\"\n    },\n    {\n        \"table_name\": \"group_convert_monthly\"\n    },\n    {\n        \"table_name\": \"group_flow_segmentation\"\n    },\n    {\n        \"table_name\": \"sensor_visitors\"\n    },\n    {\n        \"table_name\": \"sensor_dwell\"\n    },\n    {\n        \"table_name\": \"group_convert_weekly\"\n    },\n    {\n        \"table_name\": \"sensor_ble_visits\"\n    },\n    {\n        \"table_name\": \"group_uv_daily\"\n    },\n    {\n        \"table_name\": \"group_convert\"\n    },\n    {\n        \"table_name\": \"group_uv_quarterly\"\n    },\n    {\n        \"table_name\": \"sensor_ble_dwell\"\n    },\n    {\n        \"table_name\": \"sensor_visitors_per_minute\"\n    },\n    {\n        \"table_name\": \"group_uv_weekly\"\n    },\n    {\n        \"table_name\": \"group_uv_monthly\"\n    },\n    {\n        \"table_name\": \"group_uv_custom\"\n    },\n    {\n        \"table_name\": \"group_flow_correlation\"\n    },\n    {\n        \"table_name\": \"sensor_pulses\"\n    },\n    {\n        \"table_name\": \"sensor_ble_impressions\"\n    }\n]"}],"_postman_id":"295f4bed-d363-4df3-a32f-80ebcb4dd667"},{"name":"Describe BLE_Visits","id":"bd24bc1b-ae1c-45ef-87ce-e706dc9b398b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"","description":"<p>The User's API Key for the Account</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"table_name\": \"sensor_ble_visits\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/desc_table","description":"<h2 id=\"desc_table\"><strong>desc_table</strong></h2>\n<h1 id=\"table_name-sensor_ble_visits\"><strong>Table_name: \"Sensor_ble_visits\"</strong></h1>\n<p>This endpoint returns a description of the requested table (Columns and Datatypes) available under the account, for a user to query.</p>\n<p>Sensor_ble visits table records counts of incoming and outgoing movement of BLE devices across inner and outer detection zone of BlueZoo BLE sensor. A visit is one completed entry-to-exit, counted in the time window where it occurs.</p>\n<p>Data granularity- Quarter hour (15 minutes)</p>\n<p>The expample response returns the table schema as shown below-</p>\n<table><tbody><tr><td><div><br />Request<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Description<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />HTTP Method<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />POST<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />Endpoint<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />desc_table<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />Authorization<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Account AccesKey in Request header used for account authentication<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />Content-Type<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />application/json<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<table><tbody><tr><td><div><br />JSON Request Body<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Description<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />table_name<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Table name<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<p><strong>Result</strong></p>\n<table><tbody><tr><td><div><br />Fields<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Description<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />HTTP status code<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Request status code, possible values are:<br />200<br />400<br />403<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />HTTP status message<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Request status message, possible values are:<br />“BAD_TOKEN”<br />“RESTRICTED_ACCESS”<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />Body<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Array of JSON structure holding information column names and datatypes in the table<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<h2 id=\"example-response\">Example Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n    {\n        \"column_name\": \"sensor_id\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"sensor_name\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"sensor_mac\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"timestamp\",\n        \"data_type\": \"TIMESTAMP\"\n    },\n    {\n        \"column_name\": \"incoming_inner_count\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"incoming_outer_count\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"outgoing_inner_count\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"outgoing_outer_count\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"time_zone\",\n        \"data_type\": \"STRING\"\n    }\n]\n\n</code></pre>","urlObject":{"path":["desc_table"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"0d4f9df6-4b84-4f36-9dc2-409e2551ae8e","name":"Describe Table","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"","description":"The User's API Key for the Account","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"table_name\": \"sensor_ble_visits\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/desc_table"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Fri, 16 Oct 2026 00:10:56 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Cache-Control","value":"no-cache"},{"key":"X-Request-Id","value":"3509c6f4-0e46-40e6-b06c-bed9abc6ff4e"},{"key":"X-Runtime","value":"1.362312"},{"key":"Vary","value":"Origin"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"column_name\": \"sensor_id\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"sensor_name\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"sensor_mac\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"timestamp\",\n        \"data_type\": \"TIMESTAMP\"\n    },\n    {\n        \"column_name\": \"incoming_inner_count\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"incoming_outer_count\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"outgoing_inner_count\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"outgoing_outer_count\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"time_zone\",\n        \"data_type\": \"STRING\"\n    }\n]"}],"_postman_id":"bd24bc1b-ae1c-45ef-87ce-e706dc9b398b"},{"name":"Describe BLE_Visitors","id":"e2fc20fa-2e4d-47ff-bab3-9e2656f07522","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"","description":"<p>The User's API Key for the Account</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"table_name\": \"sensor_ble_visits\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/desc_table","description":"<h2 id=\"desc_table\"><strong>desc_table</strong></h2>\n<h1 id=\"table_name-sensor_ble_visitors\"><strong>Table_name: \"Sensor_ble_visitors\"</strong></h1>\n<p>Sensor_ble visitors table records <strong>visitor counts (minimum, maximum, average) inside inner and outer detection zones of the BlueZoo BLE sensor over time.</strong></p>\n<p>Data granularity- Quarter hour (15 minutes)</p>\n<p>The expample response returns the table schema as shown below-</p>\n<table><tbody><tr><td><div><br />Request<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Description<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />HTTP Method<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />POST<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />Endpoint<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />desc_table<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />Authorization<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Account AccesKey in Request header used for account authentication<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />Content-Type<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />application/json<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<table><tbody><tr><td><div><br />JSON Request Body<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Description<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />table_name<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Table name<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<p><strong>Result</strong></p>\n<table><tbody><tr><td><div><br />Fields<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Description<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />HTTP status code<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Request status code, possible values are:<br />200<br />400<br />403<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />HTTP status message<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Request status message, possible values are:<br />“BAD_TOKEN”<br />“RESTRICTED_ACCESS”<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />Body<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Array of JSON structure holding information column names and datatypes in the table<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<h2 id=\"example-response\">Example Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n    {\n        \"column_name\": \"sensor_id\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"sensor_name\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"sensor_mac\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"timestamp\",\n        \"data_type\": \"TIMESTAMP\"\n    },\n    {\n        \"column_name\": \"minimum_visitors_inner\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"maximum_visitors_inner\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"average_visitors_inner\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"minimum_visitors_outer\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"maximum_visitors_outer\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"average_visitors_outer\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"time_zone\",\n        \"data_type\": \"STRING\"\n    }\n]\n\n</code></pre>","urlObject":{"path":["desc_table"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"0ddaf7d3-5e88-4630-be79-71cd2d80e8a0","name":"Describe BLE_Visitors","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"","description":"The User's API Key for the Account","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"table_name\": \"sensor_ble_visitors\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/desc_table"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":":status","value":200},{"key":"date","value":"Fri, 16 Oct 2026 02:27:01 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"cache-control","value":"no-cache"},{"key":"x-request-id","value":"197c37f4-2d24-41f4-b4ef-e2ff24f77501"},{"key":"x-runtime","value":"1.277707"},{"key":"vary","value":"Origin"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"column_name\": \"sensor_id\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"sensor_name\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"sensor_mac\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"timestamp\",\n        \"data_type\": \"TIMESTAMP\"\n    },\n    {\n        \"column_name\": \"minimum_visitors_inner\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"maximum_visitors_inner\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"average_visitors_inner\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"minimum_visitors_outer\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"maximum_visitors_outer\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"average_visitors_outer\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"time_zone\",\n        \"data_type\": \"STRING\"\n    }\n]"}],"_postman_id":"e2fc20fa-2e4d-47ff-bab3-9e2656f07522"},{"name":"Describe BLE_dwell","id":"73693ffc-7aba-48b1-8b0e-b0eb99124d2a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"","description":"<p>The User's API Key for the Account</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"table_name\": \"sensor_ble_visits\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/desc_table","description":"<h2 id=\"desc_table\"><strong>desc_table</strong></h2>\n<h2 id=\"table_name-sensor_ble_dwell\"><strong>Table_name: \"Sensor_ble_dwell\"</strong></h2>\n<p>This table returns the distribution of dwell time, which is how long a device remains within the sensor's detection zone. Each row counts the visits whose dwell duration falls into each of 56 duration bins, for one sensor and period.</p>\n<p>Bin columns are named <code>bin__to_</code>, where both values are seconds, zero-padded to five digits. Bin width grows with duration, so short dwells get the finest resolution. Bins cover 0 seconds to 24 hours.</p>\n<p>Group bins in your own queries for coarser buckets, such as under 1 minute or over 30 minutes.</p>\n<p>Data granularity- Quarter hour (15 minutes)</p>\n<p>The expample response returns the table schema as shown below-</p>\n<table><tbody><tr><td><div><br />Request<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Description<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />HTTP Method<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />POST<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />Endpoint<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />desc_table<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />Authorization<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Account AccesKey in Request header used for account authentication<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />Content-Type<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />application/json<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<table><tbody><tr><td><div><br />JSON Request Body<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Description<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />table_name<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Table name<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<p><strong>Result</strong></p>\n<table><tbody><tr><td><div><br />Fields<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Description<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />HTTP status code<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Request status code, possible values are:<br />200<br />400<br />403<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />HTTP status message<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Request status message, possible values are:<br />“BAD_TOKEN”<br />“RESTRICTED_ACCESS”<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />Body<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Array of JSON structure holding information column names and datatypes in the table<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<h2 id=\"example-response\">Example Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[\n    {\n        \"column_name\": \"sensor_id\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"sensor_name\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"sensor_mac\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"timestamp\",\n        \"data_type\": \"TIMESTAMP\"\n    },\n    {\n        \"column_name\": \"total_visits\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"time_zone\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"bin_00000_to_00001\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00001_to_00002\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00002_to_00003\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00003_to_00004\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00004_to_00005\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00005_to_00006\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00006_to_00007\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00007_to_00008\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00008_to_00009\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00009_to_00010\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00010_to_00012\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00012_to_00014\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00014_to_00016\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00016_to_00018\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00018_to_00020\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00020_to_00022\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00022_to_00024\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00024_to_00026\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00026_to_00028\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00028_to_00030\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00030_to_00035\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00035_to_00040\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00040_to_00045\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00045_to_00050\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00050_to_00055\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00055_to_00060\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00060_to_00070\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00070_to_00080\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00080_to_00090\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00090_to_00100\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00100_to_00110\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00110_to_00120\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00120_to_00140\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00140_to_00160\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00160_to_00180\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00180_to_00200\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00200_to_00220\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00220_to_00240\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00240_to_00300\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00300_to_00360\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00360_to_00420\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00420_to_00480\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00480_to_00540\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00540_to_00660\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00660_to_00780\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00780_to_00900\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00900_to_01200\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_01200_to_01500\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_01500_to_01800\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_01800_to_02400\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_02400_to_03000\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_03000_to_03600\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_03600_to_04800\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_04800_to_06000\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_06000_to_07200\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_07200_to_86400\",\n        \"data_type\": \"FLOAT64\"\n    }\n]\n\n</code></pre>","urlObject":{"path":["desc_table"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"f8b4795a-615b-492d-a8d3-334e49481448","name":"Describe BLE_dwell","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"","description":"The User's API Key for the Account","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"table_name\": \"sensor_ble_dwell\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/desc_table"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":":status","value":200},{"key":"date","value":"Fri, 16 Oct 2026 02:32:22 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"cache-control","value":"no-cache"},{"key":"x-request-id","value":"52dc7418-0e1e-47a9-a9c5-9f55fd8875f0"},{"key":"x-runtime","value":"1.264103"},{"key":"vary","value":"Origin"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"column_name\": \"sensor_id\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"sensor_name\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"sensor_mac\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"timestamp\",\n        \"data_type\": \"TIMESTAMP\"\n    },\n    {\n        \"column_name\": \"total_visits\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"time_zone\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"bin_00000_to_00001\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00001_to_00002\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00002_to_00003\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00003_to_00004\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00004_to_00005\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00005_to_00006\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00006_to_00007\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00007_to_00008\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00008_to_00009\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00009_to_00010\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00010_to_00012\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00012_to_00014\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00014_to_00016\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00016_to_00018\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00018_to_00020\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00020_to_00022\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00022_to_00024\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00024_to_00026\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00026_to_00028\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00028_to_00030\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00030_to_00035\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00035_to_00040\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00040_to_00045\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00045_to_00050\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00050_to_00055\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00055_to_00060\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00060_to_00070\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00070_to_00080\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00080_to_00090\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00090_to_00100\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00100_to_00110\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00110_to_00120\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00120_to_00140\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00140_to_00160\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00160_to_00180\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00180_to_00200\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00200_to_00220\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00220_to_00240\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00240_to_00300\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00300_to_00360\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00360_to_00420\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00420_to_00480\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00480_to_00540\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00540_to_00660\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00660_to_00780\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00780_to_00900\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_00900_to_01200\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_01200_to_01500\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_01500_to_01800\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_01800_to_02400\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_02400_to_03000\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_03000_to_03600\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_03600_to_04800\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_04800_to_06000\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_06000_to_07200\",\n        \"data_type\": \"FLOAT64\"\n    },\n    {\n        \"column_name\": \"bin_07200_to_86400\",\n        \"data_type\": \"FLOAT64\"\n    }\n]"}],"_postman_id":"73693ffc-7aba-48b1-8b0e-b0eb99124d2a"},{"name":"Describe BLE_impressions","id":"2b435726-b7a0-4b25-a44b-96fb707dd87a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"","description":"<p>The User's API Key for the Account</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"table_name\": \"sensor_ble_visits\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/desc_table","description":"<h2 id=\"desc_table\"><strong>desc_table</strong></h2>\n<h2 id=\"table_name-sensor_ble_impressions\"><strong>Table_name: \"Sensor_ble_impressions\"</strong></h2>\n<p>This table returns the audience exposure to specific advertisement campaigns. An impression counts every visit session that is ongoing at any point within the specified time window, including sessions that started before the window began.</p>\n<p>Impressions are logged to this table when a user submits advertisement time slots, along with any metadata, in a request to the Real-Time API \"get_ble_impressions\" endpoint.</p>\n<p>Impressions are logged to this table when a Real-Time API request is made to the endpoint \"get_ble_impressions\" to submits advertisement time slots with <code>log_to_dwh</code> set to <code>true</code>. The request can carry any metadata, which is stored in the <code>meta_data</code> column.</p>\n<p>The expample response returns the table schema as shown below-</p>\n<table><tbody><tr><td><div><br />Request<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Description<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />HTTP Method<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />POST<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />Endpoint<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />desc_table<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />Authorization<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Account AccesKey in Request header used for account authentication<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />Content-Type<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />application/json<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<table><tbody><tr><td><div><br />JSON Request Body<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Description<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />table_name<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Table name<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<p><strong>Result</strong></p>\n<table><tbody><tr><td><div><br />Fields<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Description<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />HTTP status code<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Request status code, possible values are:<br />200<br />400<br />403<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />HTTP status message<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Request status message, possible values are:<br />“BAD_TOKEN”<br />“RESTRICTED_ACCESS”<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />Body<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Array of JSON structure holding information column names and datatypes in the table<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<h2 id=\"example-response\">Example Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code> [\n    {\n        \"column_name\": \"sensor_id\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"sensor_name\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"sensor_mac\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"timestamp\",\n        \"data_type\": \"TIMESTAMP\"\n    },\n    {\n        \"column_name\": \"impressions_count\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"meta_data\",\n        \"data_type\": \"JSON\"\n    },\n    {\n        \"column_name\": \"time_zone\",\n        \"data_type\": \"STRING\"\n    }\n]\n\n</code></pre>","urlObject":{"path":["desc_table"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"b6818d53-5ab0-4503-81b6-3702ae109b98","name":"Describe BLE_impressions","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"","description":"The User's API Key for the Account","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"table_name\": \"sensor_ble_impressions\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/desc_table"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":":status","value":200},{"key":"date","value":"Fri, 16 Oct 2026 02:35:34 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"cache-control","value":"no-cache"},{"key":"x-request-id","value":"9a621f50-5315-404a-b7ab-0c8f1f122dbb"},{"key":"x-runtime","value":"1.648716"},{"key":"vary","value":"Origin"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"column_name\": \"sensor_id\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"sensor_name\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"sensor_mac\",\n        \"data_type\": \"STRING\"\n    },\n    {\n        \"column_name\": \"timestamp\",\n        \"data_type\": \"TIMESTAMP\"\n    },\n    {\n        \"column_name\": \"impressions_count\",\n        \"data_type\": \"INT64\"\n    },\n    {\n        \"column_name\": \"meta_data\",\n        \"data_type\": \"JSON\"\n    },\n    {\n        \"column_name\": \"time_zone\",\n        \"data_type\": \"STRING\"\n    }\n]"}],"_postman_id":"2b435726-b7a0-4b25-a44b-96fb707dd87a"},{"name":"Run Query","id":"33e54bfd-2bb3-48c1-b4fc-41f72305784e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"","description":"<p>The User's API Key for the Account</p>\n","type":"text"},{"key":"Content-Type","value":"text/plain","type":"text"}],"body":{"mode":"raw","raw":"SELECT sensor_id, DATE(timestamp) AS day, SUM(incoming_inner_count) AS total_visits FROM sensor_ble_visits WHERE sensor_id IN (4070, 4303) AND timestamp >= '2026-10-14 00:00:00' AND timestamp < '2026-10-16 00:00:00' GROUP BY sensor_id, sensor_name, day ORDER BY sensor_id, day\n"},"url":"{{base_url}}/run_query","description":"<h2 id=\"run_query\"><strong>run_query</strong></h2>\n<p>This endpoint returns the result of a SELECT query. A Complex JOIN-based query is also possible. No DML, DDL queries allowed.</p>\n<p>Use <code>run_query</code> to query any of the 4 BLE data tables with SQL.</p>\n<p>The sample query below returns daily aggregated visits from the <code>sensor_ble_visits</code> table for two sensor locations.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Request</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>HTTP Method</td>\n<td><code>POST</code></td>\n</tr>\n<tr>\n<td>Endpoint</td>\n<td><code>run_query</code></td>\n</tr>\n<tr>\n<td>Authorization</td>\n<td>AccessKey used for account authentication</td>\n</tr>\n<tr>\n<td>Content-Type</td>\n<td><code>text/plain</code></td>\n</tr>\n</tbody>\n</table>\n</div><table><tbody><tr><td><div><br />Text Request Body<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Description<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />string<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />A SQL SELECT query string<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<p><strong>Result</strong></p>\n<table><tbody><tr><td><div><br />Fields<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Description<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />HTTP status code<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Request status code, possible values are:<br />200<br />400<br />403<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />HTTP status message<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Request status message, possible values are:<br />“BAD_TOKEN”<br />“RESTRICTED_ACCESS”<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div><br />Body<br /></div><div><div><div><div></div></div></div><div></div></div></td><td><div><br />Array of JSON structure holding result of the query.<br /></div><div><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<h2 id=\"example-response\">Example Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>[{\"sensor_id\":4070,\"day\":\"2026-10-14\",\"total_visits\":4837.0},{\"sensor_id\":4070,\"day\":\"2026-10-15\",\"total_visits\":3690.0},{\"sensor_id\":4303,\"day\":\"2026-10-14\",\"total_visits\":1635.0},{\"sensor_id\":4303,\"day\":\"2026-10-15\",\"total_visits\":957.0}]\n\n</code></pre>","urlObject":{"path":["run_query"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"7ba40ca6-cc5b-40da-95f2-1ae3c8c4fccc","name":"Run Query","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"","description":"The User's API Key for the Account","type":"text"},{"key":"Content-Type","value":"text/plain","type":"text"}],"body":{"mode":"raw","raw":"SELECT sensor_id, DATE(timestamp) AS day, SUM(incoming_inner_count) AS total_visits FROM sensor_ble_visits WHERE sensor_id IN (4070, 4303) AND timestamp >= '2026-10-14 00:00:00' AND timestamp < '2026-10-16 00:00:00' GROUP BY sensor_id, sensor_name, day ORDER BY sensor_id, day\n"},"url":"{{base_url}}/run_query"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":":status","value":200},{"key":"date","value":"Fri, 16 Oct 2026 03:09:07 GMT"},{"key":"content-type","value":"text/plain"},{"key":"cache-control","value":"no-cache"},{"key":"x-request-id","value":"70f83632-2149-4b18-9649-19cc7cad18ab"},{"key":"x-runtime","value":"1.405890"},{"key":"vary","value":"Origin"}],"cookie":[],"responseTime":null,"body":"[{\"sensor_id\":4070,\"day\":\"2026-10-14\",\"total_visits\":4837.0},{\"sensor_id\":4070,\"day\":\"2026-10-15\",\"total_visits\":3690.0},{\"sensor_id\":4303,\"day\":\"2026-10-14\",\"total_visits\":1635.0},{\"sensor_id\":4303,\"day\":\"2026-10-15\",\"total_visits\":957.0}]"}],"_postman_id":"33e54bfd-2bb3-48c1-b4fc-41f72305784e"}],"id":"dc6eac81-61d0-4970-bec7-f96b1aace9aa","description":"<h1 id=\"overview\"><strong>Overview</strong></h1>\n<p>The BlueZoo DWH API for Bluetooth Low Energy (BLE) allows retrieval of the historical BLE sensor data from four tables in the data warehouse, using three endpoints: <code>list_tables</code>, <code>desc_table</code> and <code>run_query</code>. Use it to ingest the data for your sensor locations into customer-built applications, custom services and data visualization products.</p>\n<p>Below is a brief explaination for each BLE table. Please see the Introduction section of this document for further terminology description. The table schema for each of these tables is available in the Describe_table section.</p>\n<ol>\n<li><code>sensor_ble_visits</code>: Measurement of entries and exits across the inner and outer detection zones.</li>\n</ol>\n<ul>\n<li><p><code>sensor_ble_visitors</code>: Measurement of concurrent visitors inside the sensor's inner and outer detetction zones, also known as occupancy.</p>\n</li>\n<li><p><code>sensor_ble_dwell</code>: Measurement of how long devices stay in sensor's detetection zone.</p>\n</li>\n<li><p><code>sensor_ble_impressions</code>: Measures exposure to a specific advertisement campaign. An impression counts every visit session that is ongoing at any point within the specified time window, including sessions that started before the window began. Impressions are logged to this table when a user submits advertisement time slots, along with any metadata, in a request to the Real-Time API.</p>\n</li>\n</ul>\n<h1 id=\"service-summary\"><strong>Service Summary</strong></h1>\n<p>The DWH API for BLE includes the following services:</p>\n<ul>\n<li><p>Get the list of tables available (e.g. dwell times, visits, visitors etc.)</p>\n</li>\n<li><p>Get the table description, providing columns to query in the table.</p>\n</li>\n<li><p>Get the results to a SQL query.</p>\n</li>\n</ul>\n<p>Customers can access historical data in the data warehouse by using the RUN_QUERY endpoint with the Customer-specific account “Access Key” found in the BlueZoo dashboard’s <a href=\"https://beta.bluezoo.io/profile\">Profile screen</a>.</p>\n<p>The Bluetooth Low Energy (BLE) data tables facilitate access to granular dwell time, visitor counts, visit counts, and impression data ( if logged for the. The three endpoints to access the BLE data tables are listed below-</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Index</th>\n<th>Data Warehouse API endpoints</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>1</td>\n<td>list_tables</td>\n</tr>\n<tr>\n<td>2</td>\n<td>desc_table</td>\n</tr>\n<tr>\n<td>3</td>\n<td>run_query</td>\n</tr>\n</tbody>\n</table>\n</div><h1 id=\"using-the-dwh-api-for-ble\"><strong>Using the DWH API for BLE</strong></h1>\n<p>The BlueZoo Data Warehouse API for BLE is accessible via a specific base URL.</p>\n<p>To form the full request URL for a given endpoint (see available endpoints below), simply append the endpoint name to the base URL.</p>\n<p>[Base API URL]</p>\n<p><a href=\"https://apollo-api.bluefoxengage.com/v2/dwh\">https://hermes.apollo.bluezoo.io/v2/dwh</a></p>\n<p>Example:</p>\n<p>[Full Request URL]</p>\n<p><a href=\"https://apollo-api.bluefoxengage.com/v2/dwh\">https://hermes.apollo.bluezoo.io/v2/dwh</a><a href=\"https://apollo-api.bluefoxengage.com/v2/dwh/list_tables\">/list_tables</a></p>\n<p>Response: text/event-stream, streaming a JSON array</p>\n<p>Each successful request returns HTTP status <code>200.</code></p>\n","event":[{"listen":"prerequest","script":{"id":"712e62ac-0909-44fd-9afe-95e8fe226729","type":"text/javascript","packages":{},"requests":{},"exec":[""]}},{"listen":"test","script":{"id":"d63e29de-0745-492a-aec9-884a0f0a5ba0","type":"text/javascript","packages":{},"requests":{},"exec":[""]}}],"_postman_id":"dc6eac81-61d0-4970-bec7-f96b1aace9aa"},{"name":"BlueZoo Real-Time API for BLE","item":[{"name":"Get_BLE_live_occupancy","id":"493d36b0-2f55-4b27-a434-b02ff502c198","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"description":"<h1 id=\"get-ble_live_occupancy\"><strong>Get BLE_live_occupancy</strong></h1>\n<p>Returns the real-time BLE occupancy count for one sensor location, retrieved from the underlying BLE processing service.</p>\n<p><code>GET /sensor_locations/:id/get_ble_live_occupancy</code></p>\n<p><strong>URL parameters</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>INTEGER</td>\n<td>Yes</td>\n<td>Unique identifier of the sensor location</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Response fields</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>status</code></td>\n<td>STRING</td>\n<td><code>\"OK\"</code> on success</td>\n</tr>\n<tr>\n<td><code>occupancy</code></td>\n<td>INTEGER</td>\n<td>Current estimated BLE occupancy</td>\n</tr>\n<tr>\n<td><code>timestamp</code></td>\n<td>INTEGER</td>\n<td>Unix timestamp of the reading</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"query":[],"variable":[]},"url":""},"response":[{"id":"56c099f3-f612-44c8-ad33-9c19ad452213","name":"Get_BLE_live_occupancy","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"","description":"The User's API Key for the Account","type":"text"}],"url":{"raw":"{{base_url}}/sensor_locations/:id/get_ble_live_occupancy","host":["{{base_url}}"],"path":["sensor_locations",":id","get_ble_live_occupancy"],"variable":[{"key":"id","value":"4070"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":":status","value":200},{"key":"date","value":"Fri, 16 Oct 2026 04:16:57 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"f15eba189b34f3ff5986fca66c333a63\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"c48f59ad-a729-4eac-947f-5fac27114a80"},{"key":"x-runtime","value":"0.063311"},{"key":"vary","value":"Origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"OK\",\n    \"sensor_id\": \"94:83:C4:18:E4:1A\",\n    \"generated_at\": 1792124217,\n    \"at\": 1792124217,\n    \"inner\": 10,\n    \"outer\": 134,\n    \"total\": 144,\n    \"grace_sec\": 300,\n    \"latest_observation\": 1792124195,\n    \"data_age_sec\": 21,\n    \"stale\": false,\n    \"meta\": {\n        \"mock\": false,\n        \"zone_cutoff_dbm\": -75,\n        \"calibrated\": true,\n        \"active\": true,\n        \"visit_gain\": 1,\n        \"visitor_gain\": 1,\n        \"retention_horizon\": 1791951417,\n        \"window_truncated\": false,\n        \"sessions_hot\": 1488,\n        \"sessions_archived\": 0,\n        \"sessions_exact\": 145,\n        \"sessions_fallback\": 0,\n        \"dedup_method\": \"rotation+wearable\",\n        \"wearable_chains_suppressed\": 74\n    }\n}"}],"_postman_id":"493d36b0-2f55-4b27-a434-b02ff502c198"},{"name":"GET_BLE_impressions","id":"b2ad5b21-34d7-481b-896a-8e3d6fda7bf6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"","description":"<h1 id=\"get-ble-windowed-impressions-count\"><strong>Get BLE Windowed Impressions Count</strong></h1>\n<p>Counts BLE impressions over custom time windows for a sensor location. Windows are evaluated in the location's configured local time zone. Set <code>log_to_dwh</code> to <code>true</code> to also log the results to the <code>sensor_ble_impressions</code> table in the Data Warehouse.</p>\n<p>Each request takes either a single start/end range or a <code>windows</code> array, not both.</p>\n<p><code>POST /sensor_locations/:id/get_ble_impressions</code></p>\n<p><strong>User Role permissions:</strong> <code>super_admin</code>, <code>admin</code>, <code>analyst</code>, <code>installer</code></p>\n<p><strong>URL parameters</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>INTEGER</td>\n<td>Yes</td>\n<td>Unique identifier of the sensor location</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Request body</strong></p>\n<p>Provide <strong>either</strong> a single start/end range <strong>or</strong> a <code>windows</code> array, not both.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>log_to_dwh</code></td>\n<td>BOOLEAN</td>\n<td>Optional</td>\n<td><code>true</code> logs the results to <code>sensor_ble_impressions</code>. Default <code>false</code></td>\n</tr>\n<tr>\n<td><code>meta_data</code></td>\n<td>OBJECT</td>\n<td>Optional</td>\n<td>Key-value metadata for the query, such as a campaign name. Its content is up to you</td>\n</tr>\n<tr>\n<td><code>windows</code></td>\n<td>ARRAY[OBJECT]</td>\n<td>Optional</td>\n<td>Windows to evaluate. Each object has a start, an end and optional <code>meta_data</code></td>\n</tr>\n<tr>\n<td><code>start</code> / <code>start_time</code></td>\n<td>STRING or INTEGER</td>\n<td>Optional</td>\n<td>Start of a single range: a Unix epoch timestamp, or a local time string <code>YYYY-MM-DD HH:MM:SS</code></td>\n</tr>\n<tr>\n<td><code>end</code> / <code>end_time</code> / <code>stop_time</code></td>\n<td>STRING or INTEGER</td>\n<td>Optional</td>\n<td>End of a single range, in the same formats as the start</td>\n</tr>\n</tbody>\n</table>\n</div><p>Window-level <code>meta_data</code> is returned with that window's result, which lets you label each slot (for example Morning or Afternoon).</p>\n<p>Time strings are interpreted in the sensor location's local time zone.</p>\n<p><strong>Example: multiple windows</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"log_to_dwh\": true,\n  \"meta_data\": { \"campaign_name\": \"Autumn Promotion\" },\n  \"windows\": [\n    {\n      \"start\": \"2026-09-24 08:00:00\",\n      \"end\": \"2026-09-24 12:00:00\",\n      \"meta_data\": { \"slot\": \"Morning\" }\n    },\n    {\n      \"start\": \"2026-09-24 12:00:00\",\n      \"end\": \"2026-09-24 16:00:00\",\n      \"meta_data\": { \"slot\": \"Afternoon\" }\n    }\n  ]\n}\n\n</code></pre>\n<p><strong>Example: single range</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"start\": \"2026-09-24 08:00:00\",\n  \"end\": \"2026-09-24 12:00:00\"\n}\n\n</code></pre>\n<p><strong>Response fields</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>status</code></td>\n<td>STRING</td>\n<td><code>\"OK\"</code> on success</td>\n</tr>\n<tr>\n<td><code>sensor_id</code></td>\n<td>STRING</td>\n<td>Top-level sensor MAC address (despite the field name, this is a MAC, not the numeric ID)</td>\n</tr>\n<tr>\n<td><code>impressions</code></td>\n<td>ARRAY[OBJECT]</td>\n<td>One result object per window</td>\n</tr>\n<tr>\n<td><code>impressions[].start_time</code></td>\n<td>STRING</td>\n<td>Local start time of the window, <code>YYYY-MM-DD HH:MM:SS</code></td>\n</tr>\n<tr>\n<td><code>impressions[].stop_time</code></td>\n<td>STRING</td>\n<td>Local end time of the window, <code>YYYY-MM-DD HH:MM:SS</code></td>\n</tr>\n<tr>\n<td><code>impressions[].meta_data</code></td>\n<td>OBJECT</td>\n<td>Metadata associated with the window</td>\n</tr>\n<tr>\n<td><code>impressions[].impressions</code></td>\n<td>INTEGER</td>\n<td>Total BLE impressions in the window</td>\n</tr>\n</tbody>\n</table>\n</div><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"OK\",\n  \"sensor_id\": \"AA:BB:CC:DD:EE:FF\",\n  \"impressions\": [\n    {\n      \"start_time\": \"2026-09-24 08:00:00\",\n      \"stop_time\": \"2026-09-24 12:00:00\",\n      \"meta_data\": { \"slot\": \"Morning\" },\n      \"impressions\": 184\n    },\n    {\n      \"start_time\": \"2026-09-24 12:00:00\",\n      \"stop_time\": \"2026-09-24 16:00:00\",\n      \"meta_data\": { \"slot\": \"Afternoon\" },\n      \"impressions\": 241\n    }\n  ]\n}\nNotes\n• Setting log_to_dwh: true writes the results to the sensor_ble_impressions table.\n• meta_data is free-form. Its content is defined entirely by what you pass with the query, and it is stored as-is in the meta_data column of sensor_ble_impressions, so use it to tag campaigns or slots.\n• Send either windows or a single range. Sending both should be expected to fail validation.\nImpressions data is retained for 48 hours by default.\n\n</code></pre>\n","urlObject":{"query":[],"variable":[]}},"response":[{"id":"dc2f5895-93a5-47b8-afe1-87e5b70da811","name":"GET_BLE_impressions","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"","description":"The User's API Key for the Account","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{ \"log_to_dwh\": true, \"meta_data\": { \"campaign_name\": \"Autumn Promotion\" }, \"windows\": [ { \"start\": \"2026-10-15 14:00:00\", \"end\": \"2026-10-15 16:00:00\", \"meta_data\": { \"slot\": \"Noon\" } }, { \"start\": \"2026-10-15 12:00:00\", \"end\": \"2026-10-15 13:00:00\", \"meta_data\": { \"slot\": \"Afternoon\" } } ] }","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/sensor_locations/4070/get_ble_impressions"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":":status","value":200},{"key":"date","value":"Fri, 16 Oct 2026 04:19:06 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"etag","value":"W/\"42ebe231b40b4be87eb28289476d8e3b\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"x-request-id","value":"2eea1ea2-6c35-4377-ad84-a74553840391"},{"key":"x-runtime","value":"0.117765"},{"key":"vary","value":"Origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"OK\",\n    \"sensor_id\": \"94:83:C4:18:E4:1A\",\n    \"impressions\": [\n        {\n            \"start_time\": \"2026-10-15 14:00:00\",\n            \"stop_time\": \"2026-10-15 16:00:00\",\n            \"meta_data\": {\n                \"campaign_name\": \"Autumn Promotion\"\n            },\n            \"impressions\": 97\n        },\n        {\n            \"start_time\": \"2026-10-15 12:00:00\",\n            \"stop_time\": \"2026-10-15 13:00:00\",\n            \"meta_data\": {\n                \"campaign_name\": \"Autumn Promotion\"\n            },\n            \"impressions\": 42\n        }\n    ]\n}"}],"_postman_id":"b2ad5b21-34d7-481b-896a-8e3d6fda7bf6"}],"id":"00c6de40-c025-4683-9e09-aa5314a9453c","description":"<h1 id=\"overview\"><strong>Overview</strong></h1>\n<p>The Real-Time API for BLE returns the current BLE occupancy and impressions over custom time windows. It also lets you submit custom time windows (advertisement time slots) to the data warehouse, which populates the <code>sensor_ble_impressions</code> Data Warehouse table. The granular impressions data is retained for 48 hours to be accessed and logged to the DWH.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Endpoint</th>\n<th>Method</th>\n<th>Path</th>\n<th>Purpose</th>\n<th></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Get BLE Live Occupancy</td>\n<td>GET</td>\n<td><code>/sensor_locations/:id/get_ble_live_occupancy</code></td>\n<td>Current BLE occupancy at a location</td>\n<td></td>\n</tr>\n<tr>\n<td>Get BLE Impressions</td>\n<td>POST</td>\n<td><code>/sensor_locations/:id/get_ble_impressions</code></td>\n<td>Impression counts for custom time windows, optionally logged to the warehouse</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><h1 id=\"using-the-real-time-api-for-ble\"><strong>Using the real-time API for BLE</strong></h1>\n<p>The base URL is <code>https://hermes.apollo.bluezoo.io/v3</code></p>\n<p>To form the full request URL, append the path to the base URL and replace <code>:id</code> with the sensor location ID.</p>\n<p><strong>Authorization:</strong> <code>AccessKey</code></p>\n<p>Request with <code>Content-Type: application/json</code></p>\n<p><strong>Responses.</strong> Each endpoint returns a single JSON object, with <code>\"status\": \"OK\"</code> on success. Time strings in requests and responses use the sensor location's local time zone.</p>\n","_postman_id":"00c6de40-c025-4683-9e09-aa5314a9453c"}],"event":[{"listen":"prerequest","script":{"id":"296edeae-123c-47ec-8db7-57056ee01577","type":"text/javascript","packages":{},"requests":{},"exec":[""]}},{"listen":"test","script":{"id":"179d4c24-5377-4597-9282-a296ec8389c7","type":"text/javascript","packages":{},"requests":{},"exec":[""]}}],"variable":[{"key":"af42d7dd-6b7a-4fb3-8df6-ad2c724d84d6","value":"af42d7dd-6b7a-4fb3-8df6-ad2c724d84d6"},{"key":"Key","value":"af42d7dd-6b7a-4fb3-8df6-ad2c724d84d6"},{"key":"id","value":"753"},{"key":"AccessKey","value":""},{"key":"key","value":"","type":"default"},{"key":"hermes.apollo.bluezoo.io/v2/dwh","value":"","type":"default"},{"key":"{base_url}","value":"","type":"default"},{"key":"X","value":"","type":"default"},{"key":"base url","value":"","type":"default"}]}