{"info":{"_postman_id":"b270a3ab-9c6e-417d-baa0-b5aaa61b696d","name":"UNAI API V1","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"description":"<html><head></head><body></body></html>","owner":"586765","collectionId":"b270a3ab-9c6e-417d-baa0-b5aaa61b696d","publishedId":"2s9Y5VU4Gm","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2023-08-23T09:05:21.000Z"},"item":[{"name":"authenticate","item":[{"name":"gen new token with username/password","id":"82a338be-551c-4abf-bdbf-3fd052a66fae","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"username","value":"[USERNAME]","type":"text","description":"<p>USERNAME</p>\n"},{"key":"password","value":"[PASSWORD]","type":"text","description":"<p>PASSWORD</p>\n"},{"key":"token_expire_time_in_minute","value":"60","type":"text","disabled":true},{"key":"refresh_token_expire_time_in_minute","value":"60","type":"text","disabled":true}]},"url":"https://rtls.lailab.online/auth/gen_token","description":"<p>This endpoint is used to generate a token for authentication via HTTP POST request. The request should be sent to <a href=\"https://rtls.lailab.online/auth/gen_token\">https://rtls.lailab.online/auth/gen_token</a> with the following parameters in x-www-form-urlencoded format:</p>\n<ul>\n<li><p><code>username</code> (string): The username for authentication.</p>\n</li>\n<li><p><code>password</code> (string): The password for authentication.</p>\n</li>\n<li><p><code>token_expire_time_in_minute</code> (number): The expiration time for the generated token in minutes.</p>\n</li>\n<li><p><code>refresh_token_expire_time_in_minute</code> (number): The expiration time for the refresh token in minutes.</p>\n</li>\n</ul>\n<p>The response of this request can be documented as a JSON schema.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"access_token\": string;\n    \"refresh_token\": string;\n}\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["auth","gen_token"],"host":["rtls","lailab","online"],"query":[],"variable":[]}},"response":[],"_postman_id":"82a338be-551c-4abf-bdbf-3fd052a66fae"},{"name":"gen new token with refreshtoken","id":"75546852-b8e8-4f97-80d6-309f8e5563c2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"url":"https://rtls.lailab.online/auth/refresh_token","description":"<h3 id=\"refresh-token\">Refresh Token</h3>\n<p>This endpoint allows the user to refresh the access token by providing a refresh token.</p>\n<p><strong>Request Body</strong></p>\n<ul>\n<li><code>refresh_token</code> (string): The refresh token to be used for generating a new access token.</li>\n</ul>\n<p><strong>Response</strong><br />The response will include the new access token along with its expiration time.</p>\n","urlObject":{"protocol":"https","path":["auth","refresh_token"],"host":["rtls","lailab","online"],"query":[],"variable":[]}},"response":[],"_postman_id":"75546852-b8e8-4f97-80d6-309f8e5563c2"}],"id":"53fc877a-26b6-4d4f-988d-99e6edb2195f","_postman_id":"53fc877a-26b6-4d4f-988d-99e6edb2195f","description":""},{"name":"socket","item":[{"name":"gen socket topic","id":"8cb0627c-f19e-4ecb-ac43-d0e018cb29db","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"floorID","value":"[Floor ID]","type":"text","description":"<p>Floor ID</p>\n"}]},"url":"https://rtls.lailab.online/gen_encrypt_topic","description":"<h3 id=\"encrypt-topic-generator\">Encrypt Topic Generator</h3>\n<p>This endpoint is used to generate an encrypted topic. The request should be sent as an HTTP POST to the specified URL.</p>\n<h4 id=\"request-body\">Request Body</h4>\n<ul>\n<li><p>The request should include the following parameters in x-www-form-urlencoded format:</p>\n<ul>\n<li>FloorID: (number)</li>\n</ul>\n</li>\n</ul>\n<h4 id=\"response\">Response</h4>\n<p>Upon successful processing of the request, the response will contain the encrypted topic.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"encrypt_topic\": string;\n    \"socket_token\": string;\n    \"message\": string;\n}\n\n</code></pre>\n<h1 id=\"วิธีการเชื่อมต่อ-socket-ของ-unai-postman\"><a href=\"https://docs.google.com/document/d/1tfJJL8-qdNy4muN8gbIAV2-7pLm-0Jy3Q71fXpU-4Ls/edit?tab=t.0#heading=h.pwdi2lxhqjp6\">วิธีการเชื่อมต่อ socket ของ unai [postman]</a></h1>\n","urlObject":{"protocol":"https","path":["gen_encrypt_topic"],"host":["rtls","lailab","online"],"query":[],"variable":[]}},"response":[],"_postman_id":"8cb0627c-f19e-4ecb-ac43-d0e018cb29db"},{"name":"get socket topic by tagid","id":"7372b9c0-236e-489b-bc24-06199419f151","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"tagID","value":"[tag ID]","description":"<p>tag ID</p>\n","type":"text"}]},"url":"https://rtls.lailab.online/api/v1/gen_tag_encrypt_topic_socket","description":"<h3 id=\"request\">Request</h3>\n<p>This endpoint makes an HTTP POST request to the specified URL to generate a tag, encrypt a topic, and establish a socket connection. The request payload is of x-www-form-urlencoded type and includes a parameter for the tag ID.</p>\n<ul>\n<li>tagID (number): Description - tag ID</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<p>The response for this request is a JSON schema</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"encrypt_topic\": string;\n    \"socket_token\": string;\n    \"last_seen_at\": string;\n    \"message\": string;\n}\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["api","v1","gen_tag_encrypt_topic_socket"],"host":["rtls","lailab","online"],"query":[],"variable":[]}},"response":[],"_postman_id":"7372b9c0-236e-489b-bc24-06199419f151"}],"id":"87925950-13a2-414a-936c-e54f40624085","_postman_id":"87925950-13a2-414a-936c-e54f40624085","description":""},{"name":"place","item":[{"name":"get all place","id":"d8a56957-57c1-4b20-b129-07b1d0e7dece","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://rtls.lailab.online/api/v1/get_all_place","description":"<h3 id=\"get-all-places\">Get All Places</h3>\n<p>This endpoint makes an HTTP GET request to retrieve all places.</p>\n<h4 id=\"request\">Request</h4>\n<p>The request does not require a request body. It only requires the following parameters:</p>\n<ul>\n<li>No request parameters needed.</li>\n</ul>\n<h4 id=\"response\">Response</h4>\n<p>The response will be a JSON object with the following schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n {\n    id: number;\n    name: string;\n    description: string;\n    ip_address: string;\n    dns_server_address: string;\n    ntp_server_address: string;\n    latitude: number;\n    longitude: number;\n    status: string;\n    device_id_thingsboard: string;\n    device_access_token_thingsboard: string;\n    created_by: string;\n    updated_by: string;\n    created_at: string;\n    updated_at: string;\n    hardware_mapping: string;\n    max_building: number;\n    max_floor: number;\n    using_bluetooth: number;\n    using_aoa: number;\n    using_uwb: number;\n    using_snap_path: number;\n    using_zoning: number;\n    pan_id: string;\n }\n]\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["api","v1","get_all_place"],"host":["rtls","lailab","online"],"query":[],"variable":[]}},"response":[],"_postman_id":"d8a56957-57c1-4b20-b129-07b1d0e7dece"},{"name":"get place by id","id":"bd31f987-e3db-4130-8797-b2d7eb2f4812","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://rtls.lailab.online/api/v1/get_place_by_id/[place_id]","description":"<p>This endpoint makes an HTTP GET request to retrieve information about a specific place by providing the place ID in the URL path parameter.</p>\n<h3 id=\"request-parameters\">Request Parameters</h3>\n<ul>\n<li><code>place_id</code> (path parameter): The unique identifier of the place for which the information is being requested.</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<p>The response will include the details of the place identified by the provided place ID, such as its name, location, and other relevant information.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n {\n    id: number;\n    name: string;\n    description: string;\n    ip_address: string;\n    dns_server_address: string;\n    ntp_server_address: string;\n    latitude: number;\n    longitude: number;\n    status: string;\n    device_id_thingsboard: string;\n    device_access_token_thingsboard: string;\n    created_by: string;\n    updated_by: string;\n    created_at: string;\n    updated_at: string;\n    hardware_mapping: string;\n    max_building: number;\n    max_floor: number;\n    using_bluetooth: number;\n    using_aoa: number;\n    using_uwb: number;\n    using_snap_path: number;\n    using_zoning: number;\n    pan_id: string;\n }\n]\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["api","v1","get_place_by_id","[place_id]"],"host":["rtls","lailab","online"],"query":[],"variable":[]}},"response":[],"_postman_id":"bd31f987-e3db-4130-8797-b2d7eb2f4812"}],"id":"4cce929b-bf46-4b47-8390-9b8f21d8333a","_postman_id":"4cce929b-bf46-4b47-8390-9b8f21d8333a","description":""},{"name":"building","item":[{"name":"get all building by staff","id":"6470d633-932f-43a5-a74e-25d7a65b5538","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://rtls.lailab.online/api/v1/get_all_building","description":"<h3 id=\"get-all-building\">Get All Building</h3>\n<p>This endpoint makes an HTTP GET request to retrieve all building.</p>\n<h4 id=\"request\">Request</h4>\n<p>The request does not require a request body. It only requires the following parameters:</p>\n<ul>\n<li>No request parameters needed.</li>\n</ul>\n<h4 id=\"response\">Response</h4>\n<p>The response will be a JSON object with the following schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"id\": number;\n        \"name\": string;\n        \"description\": string;\n        \"number_of_floor\": number;\n        \"owner\": string;\n        \"latitude\": number;\n        \"longitude\": number;\n        \"place_id\": number;\n        \"staff_role_id\": number;\n        \"status\": number;\n        \"image\": string;\n        \"device_id_thingsboard\": string;\n        \"device_access_token_thingsboard\": string;\n        \"created_by\": string;\n        \"updated_by\": string;\n        \"created_at\": string;\n        \"updated_at\": string;\n    }\n]\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["api","v1","get_all_building"],"host":["rtls","lailab","online"],"query":[],"variable":[]}},"response":[],"_postman_id":"6470d633-932f-43a5-a74e-25d7a65b5538"},{"name":"get building by place id","id":"906c796c-f600-42c5-bb5f-1dde72997dec","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://rtls.lailab.online/api/v1/get_building_by_place_id/[PLACE_ID]","description":"<h3 id=\"get-building-by-place-id\">Get Building by Place ID</h3>\n<p>This endpoint retrieves the building information based on the provided place ID.</p>\n<h4 id=\"request\">Request</h4>\n<ul>\n<li><p>Method: GET</p>\n</li>\n<li><p>URL: <code>https://rtls.lailab.online/api/v1/get_building_by_place_id/[PLACE_ID]</code></p>\n</li>\n</ul>\n<h4 id=\"response\">Response</h4>\n<p>The response for this request is a JSON object with the following schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"id\": number;\n        \"name\": string;\n        \"description\": string;\n        \"number_of_floor\": number;\n        \"owner\": string;\n        \"latitude\": number;\n        \"longitude\": number;\n        \"place_id\": number;\n        \"staff_role_id\": number;\n        \"status\": number;\n        \"image\": string;\n        \"device_id_thingsboard\": string;\n        \"device_access_token_thingsboard\": string;\n        \"created_by\": string;\n        \"updated_by\": string;\n        \"created_at\": string;\n        \"updated_at\": string;\n    }\n]\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["api","v1","get_building_by_place_id","[PLACE_ID]"],"host":["rtls","lailab","online"],"query":[{"disabled":true,"key":null,"value":""}],"variable":[]}},"response":[],"_postman_id":"906c796c-f600-42c5-bb5f-1dde72997dec"},{"name":"get building by id","id":"3fa65413-4bdc-45ea-8861-4164bceeb61a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://rtls.lailab.online/api/v1/get_building_by_id/[BUILDING_ID]","description":"<p>This endpoint makes an HTTP GET request to retrieve information about a specific building by its ID. The request should include the building ID as a path parameter in the URL.</p>\n<h3 id=\"request-parameters\">Request Parameters</h3>\n<ul>\n<li><code>BUILDING_ID</code> (path parameter): The unique identifier of the building for which information is to be retrieved.</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<p>The response will include the details of the building, such as its name, address, and any other relevant information associated with the building.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"id\": number;\n        \"name\": string;\n        \"description\": string;\n        \"number_of_floor\": number;\n        \"owner\": string;\n        \"latitude\": number;\n        \"longitude\": number;\n        \"place_id\": number;\n        \"staff_role_id\": number;\n        \"status\": number;\n        \"image\": string;\n        \"device_id_thingsboard\": string;\n        \"device_access_token_thingsboard\": string;\n        \"created_by\": string;\n        \"updated_by\": string;\n        \"created_at\": string;\n        \"updated_at\": string;\n    }\n]\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["api","v1","get_building_by_id","[BUILDING_ID]"],"host":["rtls","lailab","online"],"query":[],"variable":[]}},"response":[],"_postman_id":"3fa65413-4bdc-45ea-8861-4164bceeb61a"}],"id":"04fabeda-67d7-45a2-a6ca-bad3e6a21516","_postman_id":"04fabeda-67d7-45a2-a6ca-bad3e6a21516","description":""},{"name":"floor","item":[{"name":"get all floor","id":"1e632cea-58a2-4eba-aabb-785fc1f301fd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://rtls.lailab.online/api/v1/get_all_floor","description":"<h3 id=\"get-all-floors\">Get All Floors</h3>\n<p>This endpoint makes an HTTP GET request to retrieve all the floor information.</p>\n<h4 id=\"request-body\">Request Body</h4>\n<p>This request does not require a request body.</p>\n<h4 id=\"response\">Response</h4>\n<p>The response will be a JSON object with the following schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"id\": number;\n        \"name\": string;\n        \"size_width\": number;\n        \"size_height\": number;\n        \"building_id\": number;\n        \"map_path\": string;\n        \"map_width\": number;\n        \"map_height\": number;\n        \"pixel_meter\": number;\n        \"origin_x\": number;\n        \"origin_y\": number;\n        \"geo_ref1_x\": number;\n        \"geo_ref1_y\": number;\n        \"geo_ref2_x\": number;\n        \"geo_ref2_y\": number;\n        \"geo_origin_ref_x\": number;\n        \"geo_origin_ref_y\": number;\n        \"position_origin_ref_x\": number;\n        \"position_origin_ref_y\": number;\n        \"offset_x_pixel\": number;\n        \"offset_y_pixel\": number;,\n        \"position_geo_ratio\": number;\n        \"staff_role_id\": number;\n        \"device_id_thingsboard\": string;\n        \"device_access_token_thingsboard\": string;\n        \"anchor_radius\":number;\n        \"font_size\": number;\n        \"rssi_1m\": number;\n        \"is_bluetooth\": number;\n        \"is_uwb\": number;\n        \"is_showuser\": number;\n        \"is_showanchor\": number;\n        \"is_aoa\": number;\n        \"using_ble\": number;\n        \"using_uwb\": number;\n        \"using_ble_aoa\": number;\n        \"using_uwb_tag_plus\": number;\n        \"using_uwb_tag_plus_down_link\": number;\n        \"using_uwb_tdoa\": number;\n        \"is_showsnaptoline\": number;\n        \"pixel_per_meter\": number;\n        \"anchor_relay_time\": number;\n        \"tag_alive_time\": number;\n        \"created_by\": string;\n        \"updated_by\": string;\n        \"created_at\": string;\n        \"updated_at\": string;\n        \"algorithm_type\": number;\n        \"zone_display_type\": number;\n        \"rss_boundary_type\": number;\n        \"ble_rssi_movement_limit\": number;\n        \"ble_rssi_speed_limit\": number;\n        \"ble_aoa_movement_limit\": number;\n        \"ble_aoa_speed_limit\": number;\n        \"uwb_twr_general_movement_limit\": number;\n        \"uwb_tdoa_movement_limit\": number;,\n        \"uwb_tdoa_speed_limit\": number;\n        \"uwb_tdoa_avg_window_size\": number;\n        \"uwb_twr_general_speed_limit\": number;\n        \"uwb_twr_tagplus_movement_limit\": number;\n        \"uwb_twr_tagplus_speed_limit\": number;\n        \"uwb_twr_downlink_movement_limit\": number;\n        \"uwb_twr_downlink_speed_limit\": number;\n        \"ble_rssi_moving_avg_window_size\": number;\n        \"ble_aoa_moving_avg_window_size\": number;\n        \"uwb_twr_general_moving_avg_window_size\": number;\n        \"uwb_twr_tagplus_avg_window_size\": number;\n        \"uwb_twr_downlink_moving_avg_window_size\": number;\n        \"is_show_path_snap_to_line\": number;\n        \"is_show_zone\": number;\n        \"is_display_tag_circle\": number;\n        \"tag_image_size\": number;\n        \"anchor_image_size\": number;\n        \"tag_fadeout_time_in_second\": number;\n        \"is_show_zone_group\": number;\n        \"is_generate_report\": number;\n        \"using_parameter_setting\": string;\n        \"method_id\": number;\n        \"place\": number;\n        \"building\": number;\n        \"floor_has_route\": number;\n        \"random_tag_position\": number;\n        \"place_id\": number;\n    },\n    {\n        ...\n    }\n]\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["api","v1","get_all_floor"],"host":["rtls","lailab","online"],"query":[],"variable":[]}},"response":[],"_postman_id":"1e632cea-58a2-4eba-aabb-785fc1f301fd"},{"name":"get floor by id","id":"c715fe96-8839-4e45-89d3-740150a65a6c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://rtls.lailab.online/api/v1/get_floor_by_id/[FLOOR_ID]","description":"<p>This endpoint makes an HTTP GET request to retrieve the details of a specific floor by its ID from the RTLS (Real-Time Location System) API.</p>\n<h3 id=\"request\">Request</h3>\n<ul>\n<li><p>The request does not include a request body.</p>\n</li>\n<li><p>The URL parameter [FLOOR_ID] is used to specify the ID of the floor for which the details are to be retrieved.</p>\n</li>\n</ul>\n<h4 id=\"response\">Response</h4>\n<p>The response will be a JSON object with the following schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"id\": number;\n        \"name\": string;\n        \"size_width\": number;\n        \"size_height\": number;\n        \"building_id\": number;\n        \"map_path\": string;\n        \"map_width\": number;\n        \"map_height\": number;\n        \"pixel_meter\": number;\n        \"origin_x\": number;\n        \"origin_y\": number;\n        \"geo_ref1_x\": number;\n        \"geo_ref1_y\": number;\n        \"geo_ref2_x\": number;\n        \"geo_ref2_y\": number;\n        \"geo_origin_ref_x\": number;\n        \"geo_origin_ref_y\": number;\n        \"position_origin_ref_x\": number;\n        \"position_origin_ref_y\": number;\n        \"offset_x_pixel\": number;\n        \"offset_y_pixel\": number;,\n        \"position_geo_ratio\": number;\n        \"staff_role_id\": number;\n        \"device_id_thingsboard\": string;\n        \"device_access_token_thingsboard\": string;\n        \"anchor_radius\":number;\n        \"font_size\": number;\n        \"rssi_1m\": number;\n        \"is_bluetooth\": number;\n        \"is_uwb\": number;\n        \"is_showuser\": number;\n        \"is_showanchor\": number;\n        \"is_aoa\": number;\n        \"using_ble\": number;\n        \"using_uwb\": number;\n        \"using_ble_aoa\": number;\n        \"using_uwb_tag_plus\": number;\n        \"using_uwb_tag_plus_down_link\": number;\n        \"using_uwb_tdoa\": number;\n        \"is_showsnaptoline\": number;\n        \"pixel_per_meter\": number;\n        \"anchor_relay_time\": number;\n        \"tag_alive_time\": number;\n        \"created_by\": string;\n        \"updated_by\": string;\n        \"created_at\": string;\n        \"updated_at\": string;\n        \"algorithm_type\": number;\n        \"zone_display_type\": number;\n        \"rss_boundary_type\": number;\n        \"ble_rssi_movement_limit\": number;\n        \"ble_rssi_speed_limit\": number;\n        \"ble_aoa_movement_limit\": number;\n        \"ble_aoa_speed_limit\": number;\n        \"uwb_twr_general_movement_limit\": number;\n        \"uwb_tdoa_movement_limit\": number;,\n        \"uwb_tdoa_speed_limit\": number;\n        \"uwb_tdoa_avg_window_size\": number;\n        \"uwb_twr_general_speed_limit\": number;\n        \"uwb_twr_tagplus_movement_limit\": number;\n        \"uwb_twr_tagplus_speed_limit\": number;\n        \"uwb_twr_downlink_movement_limit\": number;\n        \"uwb_twr_downlink_speed_limit\": number;\n        \"ble_rssi_moving_avg_window_size\": number;\n        \"ble_aoa_moving_avg_window_size\": number;\n        \"uwb_twr_general_moving_avg_window_size\": number;\n        \"uwb_twr_tagplus_avg_window_size\": number;\n        \"uwb_twr_downlink_moving_avg_window_size\": number;\n        \"is_show_path_snap_to_line\": number;\n        \"is_show_zone\": number;\n        \"is_display_tag_circle\": number;\n        \"tag_image_size\": number;\n        \"anchor_image_size\": number;\n        \"tag_fadeout_time_in_second\": number;\n        \"is_show_zone_group\": number;\n        \"is_generate_report\": number;\n        \"using_parameter_setting\": string;\n        \"method_id\": number;\n        \"place\": number;\n        \"building\": number;\n        \"floor_has_route\": number;\n        \"random_tag_position\": number;\n        \"place_id\": number;\n    },\n    {\n        ...\n    }\n]\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["api","v1","get_floor_by_id","[FLOOR_ID]"],"host":["rtls","lailab","online"],"query":[],"variable":[]}},"response":[],"_postman_id":"c715fe96-8839-4e45-89d3-740150a65a6c"},{"name":"get floor by building id","id":"b268a22d-f53a-4349-90a8-651c503cbc64","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://rtls.lailab.online/api/v1/get_floors_by_building_id/[BUILDING_ID]","description":"<h1 id=\"get-floors-by-building-id\">Get Floors by Building ID</h1>\n<p>This endpoint retrieves the floors associated with a specific building based on the provided building ID.</p>\n<h2 id=\"request\">Request</h2>\n<ul>\n<li><p>The request does not include a request body.</p>\n</li>\n<li><p>The URL parameter [BUILDING_ID] is used to specify the ID of the floor for which the details are to be retrieved.</p>\n</li>\n</ul>\n<h2 id=\"response\">Response</h2>\n<p>The response for this request is a JSON object with the following schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"id\": number;\n        \"name\": string;\n        \"size_width\": number;\n        \"size_height\": number;\n        \"building_id\": number;\n        \"map_path\": string;\n        \"map_width\": number;\n        \"map_height\": number;\n        \"pixel_meter\": number;\n        \"origin_x\": number;\n        \"origin_y\": number;\n        \"geo_ref1_x\": number;\n        \"geo_ref1_y\": number;\n        \"geo_ref2_x\": number;\n        \"geo_ref2_y\": number;\n        \"geo_origin_ref_x\": number;\n        \"geo_origin_ref_y\": number;\n        \"position_origin_ref_x\": number;\n        \"position_origin_ref_y\": number;\n        \"offset_x_pixel\": number;\n        \"offset_y_pixel\": number;,\n        \"position_geo_ratio\": number;\n        \"staff_role_id\": number;\n        \"device_id_thingsboard\": string;\n        \"device_access_token_thingsboard\": string;\n        \"anchor_radius\":number;\n        \"font_size\": number;\n        \"rssi_1m\": number;\n        \"is_bluetooth\": number;\n        \"is_uwb\": number;\n        \"is_showuser\": number;\n        \"is_showanchor\": number;\n        \"is_aoa\": number;\n        \"using_ble\": number;\n        \"using_uwb\": number;\n        \"using_ble_aoa\": number;\n        \"using_uwb_tag_plus\": number;\n        \"using_uwb_tag_plus_down_link\": number;\n        \"using_uwb_tdoa\": number;\n        \"is_showsnaptoline\": number;\n        \"pixel_per_meter\": number;\n        \"anchor_relay_time\": number;\n        \"tag_alive_time\": number;\n        \"created_by\": string;\n        \"updated_by\": string;\n        \"created_at\": string;\n        \"updated_at\": string;\n        \"algorithm_type\": number;\n        \"zone_display_type\": number;\n        \"rss_boundary_type\": number;\n        \"ble_rssi_movement_limit\": number;\n        \"ble_rssi_speed_limit\": number;\n        \"ble_aoa_movement_limit\": number;\n        \"ble_aoa_speed_limit\": number;\n        \"uwb_twr_general_movement_limit\": number;\n        \"uwb_tdoa_movement_limit\": number;,\n        \"uwb_tdoa_speed_limit\": number;\n        \"uwb_tdoa_avg_window_size\": number;\n        \"uwb_twr_general_speed_limit\": number;\n        \"uwb_twr_tagplus_movement_limit\": number;\n        \"uwb_twr_tagplus_speed_limit\": number;\n        \"uwb_twr_downlink_movement_limit\": number;\n        \"uwb_twr_downlink_speed_limit\": number;\n        \"ble_rssi_moving_avg_window_size\": number;\n        \"ble_aoa_moving_avg_window_size\": number;\n        \"uwb_twr_general_moving_avg_window_size\": number;\n        \"uwb_twr_tagplus_avg_window_size\": number;\n        \"uwb_twr_downlink_moving_avg_window_size\": number;\n        \"is_show_path_snap_to_line\": number;\n        \"is_show_zone\": number;\n        \"is_display_tag_circle\": number;\n        \"tag_image_size\": number;\n        \"anchor_image_size\": number;\n        \"tag_fadeout_time_in_second\": number;\n        \"is_show_zone_group\": number;\n        \"is_generate_report\": number;\n        \"using_parameter_setting\": string;\n        \"method_id\": number;\n        \"place\": number;\n        \"building\": number;\n        \"floor_has_route\": number;\n        \"random_tag_position\": number;\n        \"place_id\": number;\n    },\n    {\n        ...\n    }\n]\n\n</code></pre>\n<p>The response body contains the building ID and an array of floors, where each floor object includes the floor ID and floor name.</p>\n","urlObject":{"protocol":"https","path":["api","v1","get_floors_by_building_id","[BUILDING_ID]"],"host":["rtls","lailab","online"],"query":[],"variable":[]}},"response":[],"_postman_id":"b268a22d-f53a-4349-90a8-651c503cbc64"}],"id":"42b22f16-ca44-40a8-a63f-3b2abc9b9a67","_postman_id":"42b22f16-ca44-40a8-a63f-3b2abc9b9a67","description":""},{"name":"group user","item":[{"name":"get all group user","id":"8ae89b5d-5ed8-449a-8879-ecefcf14055e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://rtls.lailab.online/api/v1/get_group_user","description":"<h3 id=\"get-apiv1get_group_user\">GET /api/v1/get_group_user</h3>\n<p>This endpoint retrieves the group user data.</p>\n<h4 id=\"request\">Request</h4>\n<p>The request does not require a request body.</p>\n<ul>\n<li><p>Headers</p>\n<ul>\n<li><p>Content-Type: application/json</p>\n</li>\n<li><p>Authorization: Bearer [Access Token]</p>\n</li>\n</ul>\n</li>\n</ul>\n<h4 id=\"response\">Response</h4>\n<p>The response will be a JSON object with the following properties:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"id\": number;\n        \"label\": string;\n        \"name\": \"string;\n        \"group_user_bg_color\": string;\n        \"group_user_txt_color\": string;\n        \"group_user_border_color\": string;\n        \"place_id\": number;\n        \"created_by\": string;\n        \"updated_by\": string;\n        \"created_at\": string;\n        \"updated_at\": string;\n    },\n    {\n      ...\n    }\n]\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["api","v1","get_group_user"],"host":["rtls","lailab","online"],"query":[],"variable":[]}},"response":[],"_postman_id":"8ae89b5d-5ed8-449a-8879-ecefcf14055e"}],"id":"b5f0cfd2-52eb-432b-b963-8bf87a074850","_postman_id":"b5f0cfd2-52eb-432b-b963-8bf87a074850","description":""},{"name":"user","item":[{"name":"get all user","id":"f9a6d5fb-c39d-45a0-838c-270964fb09e1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://rtls.lailab.online/api/v1/get_all_user","description":"<p>This endpoint makes an HTTP GET request to retrieve all user data from the server.</p>\n<h3 id=\"request-body\">Request Body</h3>\n<p>This request does not require a request body.</p>\n<h3 id=\"response\">Response</h3>\n<p>The response for this request is a JSON object with the following schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"id\": number;\n        \"first_name\": string;\n        \"last_name\": string;\n        \"nick_name\": string;\n        \"gender\": string;\n        \"email\": string;\n        \"birthday\": string;\n        \"tag_id\": number;\n        \"init_floor\": number;\n        \"last_floor\": number;\n        \"group_user\": number;\n        \"status\": string;\n        \"alt_status\": string;\n        \"avatar\": string;\n        \"notification_level\": number;\n        \"image\": string;\n        \"created_by\": string;\n        \"updated_by\": string;\n        \"created_at\": string;\n        \"updated_at\": string;\n        \"already_registered_nt_racing\": string;\n        \"nstda_id\": null,\n        \"action_status\": number;\n        \"snap_to_line_enable\": number;\n        \"nectec_race_result_image\": string;\n    },\n    {\n       ...\n    }\n]\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["api","v1","get_all_user"],"host":["rtls","lailab","online"],"query":[],"variable":[]}},"response":[],"_postman_id":"f9a6d5fb-c39d-45a0-838c-270964fb09e1"},{"name":"get user by id","id":"6ac466c2-4069-4921-90f2-03d717ccee79","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://rtls.lailab.online/api/v1/get_user_by_id/[USER_ID]","description":"<h3 id=\"request\">Request</h3>\n<ul>\n<li><p>The request does not include a request body.</p>\n</li>\n<li><p>The URL parameter [USER_ID] is used to specify the ID of the floor for which the details are to be retrieved.</p>\n</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<p>The response for this request is a JSON object with the following schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"id\": number;\n        \"first_name\": string;\n        \"last_name\": string;\n        \"nick_name\": string;\n        \"gender\": string;\n        \"email\": string;\n        \"birthday\": string;\n        \"tag_id\": number;\n        \"init_floor\": number;\n        \"last_floor\": number;\n        \"group_user\": number;\n        \"status\": string;\n        \"alt_status\": string;\n        \"avatar\": string;\n        \"notification_level\": number;\n        \"image\": string;\n        \"created_by\": string;\n        \"updated_by\": string;\n        \"created_at\": string;\n        \"updated_at\": string;\n        \"already_registered_nt_racing\": string;\n        \"nstda_id\": null,\n        \"action_status\": number;\n        \"snap_to_line_enable\": number;\n        \"nectec_race_result_image\": string;\n    },\n    {\n       ...\n    }\n]\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["api","v1","get_user_by_id","[USER_ID]"],"host":["rtls","lailab","online"],"query":[],"variable":[]}},"response":[],"_postman_id":"6ac466c2-4069-4921-90f2-03d717ccee79"},{"name":"update user info","id":"8736ddfc-706a-467a-ad92-7c5992531336","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"PATCH","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"first_name","value":"","type":"text"},{"key":"last_name","value":"","type":"text"},{"key":"image","value":"","type":"text"},{"key":"nick_name","value":"","type":"text","disabled":true},{"key":"gender","value":"","type":"text","disabled":true},{"key":"email","value":"","type":"text","disabled":true},{"key":"birthday","value":"","type":"text","disabled":true},{"key":"tag_id","value":"","type":"text","disabled":true},{"key":"init_floor","value":"","type":"text","disabled":true},{"key":"last_floor","value":"","type":"text","disabled":true},{"key":"group_user","value":"","type":"text","disabled":true},{"key":"status","value":"","type":"text","disabled":true},{"key":"alt_status","value":"","type":"text","disabled":true},{"key":"avatar","value":"","type":"text","disabled":true},{"key":"notification_level","value":"","type":"text","disabled":true},{"key":"created_by","value":"","type":"text","disabled":true},{"key":"updated_by","value":"","type":"text","disabled":true},{"key":"already_registered_nt_racing","value":"","type":"text","disabled":true},{"key":"nstda_id","value":"","type":"text","disabled":true},{"key":"action_status","value":"","type":"text","disabled":true}]},"url":"https://rtls.lailab.online/api/v1/update_user_info/[USER_ID]","description":"<h3 id=\"update-user-information\">Update User Information</h3>\n<p>This endpoint allows you to update user information such as the first name, last name, and profile image for a specific user identified by <code>[USER_ID]</code>.</p>\n<h4 id=\"request\">Request</h4>\n<ul>\n<li><p><strong>Method</strong>: PATCH</p>\n</li>\n<li><p><strong>URL</strong>: <code>https://rtls.lailab.online/api/v1/update_user_info/[USER_ID]</code></p>\n</li>\n<li><p><strong>Content-Type</strong>: <code>application/x-www-form-urlencoded</code></p>\n</li>\n</ul>\n<h4 id=\"request-body-parameters\">Request Body Parameters</h4>\n<ul>\n<li><p><code>first_name</code> (text): The new first name of the user.</p>\n</li>\n<li><p><code>last_name</code> (text): The new last name of the user.</p>\n</li>\n<li><p><code>image</code> (text): A URL or path to the new profile image of the user.</p>\n</li>\n</ul>\n<h4 id=\"expected-response\">Expected Response</h4>\n<p>Upon a successful request, the server will return a response indicating the status of the update operation. The response typically includes:</p>\n<ul>\n<li><p>A success message confirming that the user information has been updated.</p>\n</li>\n<li><p>The updated user information for verification.</p>\n</li>\n</ul>\n<h4 id=\"notes\">Notes</h4>\n<ul>\n<li><p>Ensure that the <code>[USER_ID]</code> in the URL is replaced with the actual ID of the user whose information you wish to update.</p>\n</li>\n<li><p>All parameters are required to successfully update the user information.</p>\n</li>\n<li><p>Check for proper error handling in case of invalid input or if the user ID does not exist.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["api","v1","update_user_info","[USER_ID]"],"host":["rtls","lailab","online"],"query":[],"variable":[]}},"response":[],"_postman_id":"8736ddfc-706a-467a-ad92-7c5992531336"},{"name":"Insert user","id":"4cb0b4a8-651e-4484-a8a2-a43634892ffc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"first_name","value":"","type":"text","disabled":true},{"key":"last_name","value":"","type":"text","disabled":true},{"key":"nick_name","value":"","type":"text","disabled":true},{"key":"gender","value":"","type":"text","disabled":true},{"key":"email","value":"","type":"text","disabled":true},{"key":"birthday","value":"","type":"text","disabled":true},{"key":"tag_id","value":"","type":"text","disabled":true},{"key":"init_floor","value":"","type":"text","disabled":true},{"key":"last_floor","value":"","type":"text","disabled":true},{"key":"group_user","value":"","type":"text","disabled":true},{"key":"status","value":"","type":"text","disabled":true},{"key":"alt_status","value":"","type":"text","disabled":true},{"key":"avatar","value":"","type":"text","disabled":true},{"key":"notification_level","value":"","type":"text","disabled":true},{"key":"image","value":"","type":"text","disabled":true},{"key":"created_by","value":"","type":"text","disabled":true},{"key":"updated_by","value":"","type":"text","disabled":true},{"key":"created_at","value":"","type":"text","disabled":true},{"key":"updated_at","value":"","type":"text","disabled":true},{"key":"snap_to_line_enable","value":"","type":"text","disabled":true}]},"url":"https://rtls.lailab.online/api/v1/insert_user","urlObject":{"protocol":"https","path":["api","v1","insert_user"],"host":["rtls","lailab","online"],"query":[],"variable":[]}},"response":[],"_postman_id":"4cb0b4a8-651e-4484-a8a2-a43634892ffc"}],"id":"982831e9-4775-4cd2-95c5-f1115beb0f8d","_postman_id":"982831e9-4775-4cd2-95c5-f1115beb0f8d","description":""},{"name":"tag","item":[{"name":"get all tag","id":"1dca8016-3d31-4bdc-815e-a0ae7f0d2771","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://rtls.lailab.online/api/v1/get_all_tag","description":"<h3 id=\"get-apiv1get_all_tag\">GET /api/v1/get_all_tag</h3>\n<p>This endpoint retrieves all tags from the system.</p>\n<h4 id=\"request\">Request</h4>\n<p>No request body is required for this endpoint.</p>\n<h4 id=\"response\">Response</h4>\n<p>The response for this endpoint is a JSON object with the following schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"id\": number;\n        \"tag_id\": string;\n        \"label\": string;\n        \"ui_display\": string;\n        \"major\": string;\n        \"minor\": string;\n        \"uuid\": string;\n        \"manufacturer\": string;\n        \"volt_battery\": number;\n        \"firmware_version\": string;\n        \"mac_address\": string;\n        \"blink_period\": string;\n        \"tx_ant_delay\": string;\n        \"rx_ant_delay\": string;\n        \"date_time\": string;\n        \"device_type_id\": number;\n        \"x\": number;\n        \"y\": number;\n        \"z\": number;\n        \"place_id\": number;\n        \"tagcol\": number;\n        \"device_id_thingsboard\": string;\n        \"device_access_token_thingsboard\": string;\n        \"disable\": number;\n        \"path_id\": number;\n        \"visitor_id\": number;\n        \"status\": number;,\n        \"created_by\": string;\n        \"updated_by\": string;\n        \"created_at\": string;\n        \"updated_at\": string;\n        \"method_id\": number;\n        \"serial_number\": string;\n        \"paired_with_id\": number;\n        \"batt_percentage\": number;\n        \"batt_change_date\": number;\n        \"link_with_gateway_id\": number;\n    },\n    {\n       ...\n    }\n]\n\n</code></pre>\n<p>The <code>tags</code> array contains objects with <code>tag_id</code>, <code>tag_name</code>, and <code>tag_description</code> properties.</p>\n","urlObject":{"protocol":"https","path":["api","v1","get_all_tag"],"host":["rtls","lailab","online"],"query":[],"variable":[]}},"response":[],"_postman_id":"1dca8016-3d31-4bdc-815e-a0ae7f0d2771"},{"name":"get tag and sensor","id":"951f57ec-9ec1-447f-afa2-2a04a78b4f00","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://rtls.lailab.online/api/v1/get_tag_and_sensor","description":"<h1 id=\"get-tag-and-sensor\">Get Tag and Sensor</h1>\n<p>This endpoint makes an HTTP GET request to retrieve tag and sensor data from the server.</p>\n<h3 id=\"request-parameters\">Request Parameters</h3>\n<p>This request does not require any specific parameters.</p>\n<h3 id=\"response\">Response</h3>\n<p>The response will include the tag and sensor data in JSON format, containing information such as tag ID, sensor ID, location, and other relevant details.</p>\n<p>Example response:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"sensor_id\": number;\n        \"mac_address\": string;\n        \"tag_id\": number;\n    },\n    {\n      ...\n    }\n]\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["api","v1","get_tag_and_sensor"],"host":["rtls","lailab","online"],"query":[],"variable":[]}},"response":[],"_postman_id":"951f57ec-9ec1-447f-afa2-2a04a78b4f00"},{"name":"get tag by id","id":"113178bc-ab0a-4d0a-bcac-87b27ac5802f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://rtls.lailab.online/api/v1/get_tag_by_id/[TAG_ID]","description":"<h3 id=\"request\">Request</h3>\n<ul>\n<li><p>The request does not include a request body.</p>\n</li>\n<li><p>The URL parameter [TAG_ID] is used to specify the ID of the floor for which the details are to be retrieved.</p>\n</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<p>The response for this request is a JSON object with the following schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"sensor_id\": number;\n        \"mac_address\": string;\n        \"tag_id\": number;\n    },\n    {\n      ...\n    }\n]\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["api","v1","get_tag_by_id","[TAG_ID]"],"host":["rtls","lailab","online"],"query":[],"variable":[]}},"response":[],"_postman_id":"113178bc-ab0a-4d0a-bcac-87b27ac5802f"},{"name":"insert tag","id":"75189d7e-cbb9-4f4a-b3a1-bbe45b4b30ed","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"tag_id","value":"","type":"text","disabled":true},{"key":"label","value":"","type":"text","disabled":true},{"key":"ui_display","value":"","type":"text","disabled":true},{"key":"major","value":"","type":"text","disabled":true},{"key":"minor","value":"","type":"text","disabled":true},{"key":"uuid","value":"","type":"text","disabled":true},{"key":"manufacturer","value":"","type":"text","disabled":true},{"key":"volt_battery","value":"","type":"text","disabled":true},{"key":"firmware_version","value":"","type":"text","disabled":true},{"key":"mac_address","value":"","type":"text","disabled":true},{"key":"blink_period","value":"","type":"text","disabled":true},{"key":"tx_ant_delay","value":"","type":"text","disabled":true},{"key":"rx_ant_delay","value":"","type":"text","disabled":true},{"key":"date_time","value":"","type":"text","disabled":true},{"key":"device_type_id","value":"","type":"text","disabled":true},{"key":"x","value":"","type":"text","disabled":true},{"key":"y","value":"","type":"text","disabled":true},{"key":"z","value":"","type":"text","disabled":true},{"key":"tagcol","value":"","type":"text","disabled":true},{"key":"device_id_thingsboard","value":"","type":"text","disabled":true},{"key":"device_access_token_thingsboard","value":"","type":"text","disabled":true},{"key":"disable","value":"","type":"text","disabled":true},{"key":"path_id","value":"","type":"text","disabled":true},{"key":"visitor_id","value":"","type":"text","disabled":true},{"key":"status","value":"","type":"text","disabled":true},{"key":"created_by","value":"","type":"text","disabled":true},{"key":"updated_by","value":"","type":"text","disabled":true},{"key":"created_at","value":"","type":"text","disabled":true},{"key":"updated_at","value":"","type":"text","disabled":true},{"key":"method_id","value":"","type":"text","disabled":true},{"key":"serial_number","value":"","type":"text","disabled":true},{"key":"paired_with_id","value":"","type":"text","disabled":true}]},"url":"https://rtls.lailab.online/api/v1/insert_tag","description":"<h3 id=\"insert-tag\">Insert Tag</h3>\n<p>This endpoint is used to insert a new tag into the system.</p>\n<h4 id=\"request-body\">Request Body</h4>\n<ul>\n<li><strong>No request body parameters were provided for this request.</strong></li>\n</ul>\n<h4 id=\"response\">Response</h4>\n<ul>\n<li>The response will contain the result of the tag insertion operation, which may include a success message or an error message indicating the status of the operation.</li>\n</ul>\n<h4 id=\"notes\">Notes</h4>\n<ul>\n<li><p>Ensure that the request is properly authenticated if required by the API.</p>\n</li>\n<li><p>Check for any specific conditions or constraints related to tag insertion, such as uniqueness or format requirements, as these may affect the success of the operation.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["api","v1","insert_tag"],"host":["rtls","lailab","online"],"query":[],"variable":[]}},"response":[],"_postman_id":"75189d7e-cbb9-4f4a-b3a1-bbe45b4b30ed"},{"name":"get_tag_and_sensor","id":"ca0cfa21-4148-4969-9c35-a1f346a4460c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://rtls.lailab.online/api/v1/get_sensor_and_tag_data","description":"<h3 id=\"get-sensor-and-tag-data\">Get Sensor and Tag Data</h3>\n<p>This endpoint retrieves sensor and tag data from the RTLS system.</p>\n<h4 id=\"request\">Request</h4>\n<p>The request does not require a request body. It uses an HTTP GET method to retrieve the sensor and tag data.</p>\n<h4 id=\"response\">Response</h4>\n<p>The response for this request is a JSON object with the following schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"tag_id\": number;\n        \"tag_ui_display\": string;\n        \"sensor_id\": number;\n        \"sensor_name\": string;\n        \"sensor_mac_address\": string;\n        \"sensor_description\": string;\n    },\n    {\n      ...\n    }\n]\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["api","v1","get_sensor_and_tag_data"],"host":["rtls","lailab","online"],"query":[],"variable":[]}},"response":[],"_postman_id":"ca0cfa21-4148-4969-9c35-a1f346a4460c"}],"id":"b925c1ae-0e96-48e0-be77-7cdde0a5cebe","_postman_id":"b925c1ae-0e96-48e0-be77-7cdde0a5cebe","description":""},{"name":"anchor","item":[{"name":"get anchor by floor id","id":"9a96be9d-d3fa-4c93-b237-dcb1699aceb9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://rtls.lailab.online/api/v1/get_anchor_by_floor_id/[FLOOR_ID]","description":"<p>This endpoint retrieves the anchor details based on the provided floor ID.</p>\n<h3 id=\"request-parameters\">Request Parameters</h3>\n<ul>\n<li><code>FLOOR_ID</code> (path parameter) : The ID of the floor for which anchor details are to be retrieved.</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<p>The response for this request is a JSON object with the following schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"id\": number;\n        \"mac_address_to_engine\": string;\n        \"label\": string;\n        \"floor_id\": number;\n        \"pan_id\": string;\n        \"major\": string;\n        \"minor\": string;\n        \"x\": string;\n        \"y\": string;\n        \"z\": string;\n        \"anchor_id\": string;\n        \"uuid\": string;\n        \"status\": number;\n        \"firmware_version\": string;\n        \"mac_address_to_tag\": string;\n        \"network_id\": string;\n        \"ip_address\": string;\n        \"tx_ant_delay\": string;\n        \"rx_ant_delay\": string;\n        \"dns_server_address\": string;\n        \"latitude\": number;\n        \"longitude\": number;\n        \"date_time\": string;\n        \"device_type_id\": number;\n        \"device_id_thingsboard\": string;\n        \"device_access_token_thingsboard\": string;\n        \"disable\": number;\n        \"building_id\": number;\n        \"place_id\": number;\n        \"created_by\": string;\n        \"updated_by\": string;\n        \"created_at\": string;\n        \"updated_at\": string;\n        \"rssi_threshold\": number;\n        \"method_id\": number;\n        \"reference\": number;\n    },\n    {\n     ...\n    }\n]\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["api","v1","get_anchor_by_floor_id","[FLOOR_ID]"],"host":["rtls","lailab","online"],"query":[],"variable":[]}},"response":[],"_postman_id":"9a96be9d-d3fa-4c93-b237-dcb1699aceb9"},{"name":"get all anchor","id":"1600b88d-9ddb-4058-9462-3dc2faf08c2c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://rtls.lailab.online/api/v1/get_all_anchor","description":"<h3 id=\"get-all-anchors\">Get All Anchors</h3>\n<p>This endpoint makes an HTTP GET request to retrieve all anchor data.</p>\n<h4 id=\"request-body\">Request Body</h4>\n<p>This request does not require a request body.</p>\n<h4 id=\"response\">Response</h4>\n<p>The response for this request is a JSON object with the following schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"id\": number;\n        \"mac_address_to_engine\": string;\n        \"label\": string;\n        \"floor_id\": number;\n        \"pan_id\": string;\n        \"major\": string;\n        \"minor\": string;\n        \"x\": string;\n        \"y\": string;\n        \"z\": string;\n        \"anchor_id\": string;\n        \"uuid\": string;\n        \"status\": number;\n        \"firmware_version\": string;\n        \"mac_address_to_tag\": string;\n        \"network_id\": string;\n        \"ip_address\": string;\n        \"tx_ant_delay\": string;\n        \"rx_ant_delay\": string;\n        \"dns_server_address\": string;\n        \"latitude\": number;\n        \"longitude\": number;\n        \"date_time\": string;\n        \"device_type_id\": number;\n        \"device_id_thingsboard\": string;\n        \"device_access_token_thingsboard\": string;\n        \"disable\": number;\n        \"building_id\": number;\n        \"place_id\": number;\n        \"created_by\": string;\n        \"updated_by\": string;\n        \"created_at\": string;\n        \"updated_at\": string;\n        \"rssi_threshold\": number;\n        \"method_id\": number;\n        \"reference\": number;\n    },\n    {\n     ...\n    }\n]\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["api","v1","get_all_anchor"],"host":["rtls","lailab","online"],"query":[],"variable":[]}},"response":[],"_postman_id":"1600b88d-9ddb-4058-9462-3dc2faf08c2c"},{"name":"get anchor by id","id":"a53bd6fd-2f23-47cf-979e-ec7829e082eb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://rtls.lailab.online/api/v1/get_anchor_by_id/[ANCHOR_ID]","description":"<h1 id=\"get-anchor-by-id\">Get Anchor by ID</h1>\n<p>This API endpoint makes an HTTP GET request to retrieve information about a specific anchor by its ID.</p>\n<h2 id=\"request\">Request</h2>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><code>ANCHOR_ID</code> (string, required): The unique identifier of the anchor for which information is to be retrieved.</li>\n</ul>\n<h2 id=\"response\">Response</h2>\n<p>The response for this request is a JSON object with the following schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"id\": number;\n        \"mac_address_to_engine\": string;\n        \"label\": string;\n        \"floor_id\": number;\n        \"pan_id\": string;\n        \"major\": string;\n        \"minor\": string;\n        \"x\": string;\n        \"y\": string;\n        \"z\": string;\n        \"anchor_id\": string;\n        \"uuid\": string;\n        \"status\": number;\n        \"firmware_version\": string;\n        \"mac_address_to_tag\": string;\n        \"network_id\": string;\n        \"ip_address\": string;\n        \"tx_ant_delay\": string;\n        \"rx_ant_delay\": string;\n        \"dns_server_address\": string;\n        \"latitude\": number;\n        \"longitude\": number;\n        \"date_time\": string;\n        \"device_type_id\": number;\n        \"device_id_thingsboard\": string;\n        \"device_access_token_thingsboard\": string;\n        \"disable\": number;\n        \"building_id\": number;\n        \"place_id\": number;\n        \"created_by\": string;\n        \"updated_by\": string;\n        \"created_at\": string;\n        \"updated_at\": string;\n        \"rssi_threshold\": number;\n        \"method_id\": string;\n        \"reference\": string;\n        \"building_name\": string;\n        \"place_name\": string;\n    }\n]\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["api","v1","get_anchor_by_id","[ANCHOR_ID]"],"host":["rtls","lailab","online"],"query":[],"variable":[]}},"response":[],"_postman_id":"a53bd6fd-2f23-47cf-979e-ec7829e082eb"}],"id":"83e0971c-39c4-4170-a4df-87a3eb67a4b9","_postman_id":"83e0971c-39c4-4170-a4df-87a3eb67a4b9","description":""},{"name":"zone","item":[{"name":"get zone by floor id","id":"8b766c5a-5126-483b-be92-c83df172a3a7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://rtls.lailab.online/api/v1/get_zone_by_floor_id/[FLOOR_ID]","description":"<p>This endpoint retrieves the zone details based on the provided floor ID.</p>\n<h3 id=\"request-parameters\">Request Parameters</h3>\n<ul>\n<li><code>FLOOR_ID</code> (path parameter): The ID of the floor for which the zone details are to be retrieved.</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<p>The response for this request is a JSON object with the following schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"id\": number;\n        \"name\": string;\n        \"size_width\": number;\n        \"size_hight\": number;\n        \"floor_id\": number;\n        \"map_path\": number;\n        \"map_width\": number;\n        \"map_height\": number;\n        \"x\": number;\n        \"y\": number;\n        \"z\": number;\n        \"polygon_data\": string;\n        \"center_zone\": string;\n        \"zone_color\": string;\n        \"device_id_thingsboard\": string;\n        \"device_access_token_thingsboard\": string;\n        \"floor\": number;\n        \"created_by\": string;\n        \"updated_by\": string;\n        \"created_at\": string;\n        \"updated_at\": string;\n        \"is_charging\": number;\n        \"fill_color\": string;\n        \"fill_opacity\": number;\n        \"zone_ref\": string;\n        \"zone_description\": string;\n        \"is_shelf\": number;\n        \"stack_profile_id\": number;\n        \"depth\": number;\n    },\n    {\n     ...\n    }\n]\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["api","v1","get_zone_by_floor_id","[FLOOR_ID]"],"host":["rtls","lailab","online"],"query":[],"variable":[]}},"response":[],"_postman_id":"8b766c5a-5126-483b-be92-c83df172a3a7"},{"name":"get shelf zone","id":"19ee571d-1343-452e-b876-18a0d4241dd1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://rtls.lailab.online/api/v1/get_shelf_zone","description":"<h1 id=\"get-shelf-zone\">Get Shelf Zone</h1>\n<p>This endpoint retrieves the shelf zone information.</p>\n<h2 id=\"request\">Request</h2>\n<ul>\n<li><p>Method: GET</p>\n</li>\n<li><p>URL: <code>https://rtls.lailab.online/api/v1/get_shelf_zone</code></p>\n</li>\n</ul>\n<h2 id=\"response\">Response</h2>\n<p>The response for this request can be represented as a JSON schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"id\": number;\n        \"name\": string;\n        \"size_width\": number;\n        \"size_hight\": number;\n        \"floor_id\": number;\n        \"map_path\": number;\n        \"map_width\": number;\n        \"map_height\": number;\n        \"x\": number;\n        \"y\": number;\n        \"z\": number;\n        \"polygon_data\": string;\n        \"center_zone\": string;\n        \"zone_color\": string;\n        \"device_id_thingsboard\": string;\n        \"device_access_token_thingsboard\": string;\n        \"floor\": number;\n        \"created_by\": string;\n        \"updated_by\": string;\n        \"created_at\": string;\n        \"updated_at\": string;\n        \"is_charging\": number;\n        \"fill_color\": string;\n        \"fill_opacity\": number;\n        \"zone_ref\": string;\n        \"zone_description\": string;\n        \"is_shelf\": number;\n        \"stack_profile_id\": number;\n        \"depth\": number;\n         \"stack_profile\": string;\n    },\n    {\n     ...\n    }\n]\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["api","v1","get_shelf_zone"],"host":["rtls","lailab","online"],"query":[],"variable":[]}},"response":[],"_postman_id":"19ee571d-1343-452e-b876-18a0d4241dd1"},{"name":"get zone by id","id":"73b4a1ca-3e4b-4718-b0dd-7ed8a92d7b98","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://rtls.lailab.online/api/v1/get_zone_by_zone_id/[ZONE_ID]","description":"<h3 id=\"get-zone-by-zone-id\">Get Zone by Zone ID</h3>\n<p>This endpoint retrieves the details of a specific zone based on the provided zone ID.</p>\n<h2 id=\"request\">Request</h2>\n<ul>\n<li><p>The request does not include a request body.</p>\n</li>\n<li><p>The URL parameter [ZONE_ID] is used to specify the ID of the floor for which the details are to be retrieved.</p>\n</li>\n</ul>\n<h2 id=\"response\">Response</h2>\n<p>The response for this request is a JSON object with the following schema:</p>\n<h4 id=\"response-1\">Response</h4>\n<p>The response for this request follows the JSON schema below:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"id\": number;\n        \"name\": string;\n        \"size_width\": number;\n        \"size_hight\": number;\n        \"floor_id\": number;\n        \"map_path\": number;\n        \"map_width\": number;\n        \"map_height\": number;\n        \"x\": number;\n        \"y\": number;\n        \"z\": number;\n        \"polygon_data\": string;\n        \"center_zone\": string;\n        \"zone_color\": string;\n        \"device_id_thingsboard\": string;\n        \"device_access_token_thingsboard\": string;\n        \"floor\": number;\n        \"created_by\": string;\n        \"updated_by\": string;\n        \"created_at\": string;\n        \"updated_at\": string;\n        \"is_charging\": number;\n        \"fill_color\": string;\n        \"fill_opacity\": number;\n        \"zone_ref\": string;\n        \"zone_description\": string;\n        \"is_shelf\": number;\n        \"stack_profile_id\": number;\n        \"depth\": number;\n    }\n]\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["api","v1","get_zone_by_zone_id","[ZONE_ID]"],"host":["rtls","lailab","online"],"query":[],"variable":[]}},"response":[],"_postman_id":"73b4a1ca-3e4b-4718-b0dd-7ed8a92d7b98"}],"id":"95d4d9d3-6334-46b1-9c37-d8eec12e2142","_postman_id":"95d4d9d3-6334-46b1-9c37-d8eec12e2142","description":""},{"name":"location history","item":[{"name":"last location by floor","id":"0527ab7e-5835-444b-8223-b4e7d7e4298a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"floor_id","value":"[floor_id]","description":"<p>[floor_id]</p>\n","type":"text"}]},"url":"https://rtls.lailab.online/api/v1/get_last_location_by_floor_id","description":"<h3 id=\"get-last-location-by-floor-id\">Get Last Location by Floor ID</h3>\n<p>This endpoint allows you to retrieve the last location based on the floor ID.</p>\n<h4 id=\"request\">Request</h4>\n<ul>\n<li>floor_id</li>\n</ul>\n<h4 id=\"response\">Response</h4>\n<p>The response for this request is a JSON object with the following schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"_id\": string;\n        \"id\": number;\n        \"x\": number;\n        \"y\": number;\n        \"z\": number;\n        \"timestamp\": number;\n        \"simulation\": number;\n        \"floor\": number;\n        \"building\": number;\n        \"floor_name\": string;\n        \"building_name\": string;\n        \"tagType\": string;\n        \"dataVersion\": string;\n        \"firstName\": string;\n        \"lastName\": string;\n        \"status\": string;\n        \"userId\": number;\n        \"ui_display\": string;\n        \"group_name\": string;\n        \"path\": {\n            \"hiden\": boolean;\n        },\n        \"have_snap\": boolean;\n        \"x_snap\": number;\n        \"y_snap\": number;\n        \"z_snap\": number;\n        \"closePath\": string;\n        \"range\": number;\n        \"inZones\": string array;\n        \"inExpectedZone\": string;\n        \"inExpectedZoneName\": null,\n        \"inZones_snap\": string array;\n        \"inExpectedZone_snap\":string;\n        \"inExpectedZoneName_snap\": string;\n        \"massageCount\": number;\n        \"date_now\": string;\n        \"unix_time\": number;\n        \"event_time_end\": number;\n        \"event_time_process\": number;\n        \"event_time_start\": number;\n        \"x_raw\": number;\n        \"y_raw\": number;\n        \"z_raw\": number;\n        \"xRaw\": number;\n        \"yRaw\": number;\n        \"place\": number;\n        \"topic\": string;\n        \"gateway_type_id\": number;\n        \"created_at\": string;\n        \"gender\": string;\n        \"group_id\": number;\n        \"inZonesName\": string array;\n        \"inZonesName_snap\": string array;\n        \"s_frame_number\": number;\n        \"windowSize\": number;\n        \"state\": string;\n    },\n    {\n      ...\n    }\n]\n\n</code></pre>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>ฟิลด์</strong></th>\n<th><strong>ตัวอย่างข้อมูล</strong></th>\n<th><strong>คำอธิบาย</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>_id</code></td>\n<td>6711cc7e8a4f3d9ed142e32c</td>\n<td>รหัสเฉพาะของข้อมูล (ObjectID)</td>\n</tr>\n<tr>\n<td><code>adapter_time_start</code></td>\n<td>91939030.44935226</td>\n<td>เวลาเริ่มต้นที่อะแดปเตอร์ประมวลผล (หน่วยอาจเป็นวินาที)</td>\n</tr>\n<tr>\n<td><code>id</code></td>\n<td>4912</td>\n<td>รหัสประจำตัวของแท็ก</td>\n</tr>\n<tr>\n<td><code>topic</code></td>\n<td>unai/40/59/156/tag</td>\n<td>หัวข้อหรือเส้นทางข้อมูล (MQTT)</td>\n</tr>\n<tr>\n<td><code>gateway_type_id</code></td>\n<td>4</td>\n<td>รหัสประเภทเกตเวย์ [2:UWB TWR, 4:UWB_Plus, 5:UWB_Plus_DL, 6:UWB_TDOA]</td>\n</tr>\n<tr>\n<td><code>x</code></td>\n<td>33.584</td>\n<td>พิกัด X ที่คำนวณแล้ว (หน่วยอาจเป็นเมตร)</td>\n</tr>\n<tr>\n<td><code>y</code></td>\n<td>12.589</td>\n<td>พิกัด Y ที่คำนวณแล้ว (หน่วยอาจเป็นเมตร)</td>\n</tr>\n<tr>\n<td><code>z</code></td>\n<td>2.598</td>\n<td>พิกัด Z ที่คำนวณแล้ว (อาจเป็นความสูง, หน่วยอาจเป็นเมตร)</td>\n</tr>\n<tr>\n<td><code>x_raw</code></td>\n<td>33.584</td>\n<td>พิกัด X ดั้งเดิมก่อนปรับแต่ง</td>\n</tr>\n<tr>\n<td><code>y_raw</code></td>\n<td>12.589</td>\n<td>พิกัด Y ดั้งเดิมก่อนปรับแต่ง</td>\n</tr>\n<tr>\n<td><code>z_raw</code></td>\n<td>2.598</td>\n<td>พิกัด Z ดั้งเดิมก่อนปรับแต่ง</td>\n</tr>\n<tr>\n<td><code>s_frame_number</code></td>\n<td>20522</td>\n<td>หมายเลขเฟรมของข้อมูล (เฉพาะ UWB)</td>\n</tr>\n<tr>\n<td><code>timestamp</code></td>\n<td>1742196581370.0</td>\n<td>เวลาในรูปแบบ Unix timestamp (มิลลิวินาที)</td>\n</tr>\n<tr>\n<td><code>simulation</code></td>\n<td>0</td>\n<td>ระบุว่าเป็นการจำลองหรือไม่ (0 = ไม่ใช่)</td>\n</tr>\n<tr>\n<td><code>floor</code></td>\n<td>156</td>\n<td>ชั้นที่ตรวจจับตำแหน่ง</td>\n</tr>\n<tr>\n<td><code>created_at</code></td>\n<td>2025-03-17T07:29:41.369Z</td>\n<td>เวลาที่ข้อมูลถูกสร้าง (UTC)</td>\n</tr>\n<tr>\n<td><code>state</code></td>\n<td>MOVING</td>\n<td>สถานะของอุปกรณ์หรือเหตุการณ์ (กำลังเคลื่อนที่)</td>\n</tr>\n<tr>\n<td><code>anchors</code></td>\n<td>[{\"id\": \"0x5D8E\", \"distance\": 12253}, ...]</td>\n<td>รายการจุดยึด (anchors) ที่ใช้คำนวณตำแหน่ง (ระยะห่างหน่วยอาจเป็นมิลลิเมตร)</td>\n</tr>\n<tr>\n<td><code>building</code></td>\n<td>59</td>\n<td>รหัสอาคาร</td>\n</tr>\n<tr>\n<td><code>place</code></td>\n<td>40</td>\n<td>รหัสสถานที่</td>\n</tr>\n<tr>\n<td><code>floor_name</code></td>\n<td>MAMA Rayong</td>\n<td>ชื่อของชั้น</td>\n</tr>\n<tr>\n<td><code>place_name</code></td>\n<td>Thai President Foods</td>\n<td>ชื่อสถานที่</td>\n</tr>\n<tr>\n<td><code>building_name</code></td>\n<td>MAMA Rayong</td>\n<td>ชื่ออาคาร</td>\n</tr>\n<tr>\n<td><code>tagType</code></td>\n<td>UWB</td>\n<td>ประเภทแท็ก [UWB: Ultra-Wideband, BLE: Bluetooth Low Energy]</td>\n</tr>\n<tr>\n<td><code>dataVersion</code></td>\n<td>event-base-v2</td>\n<td>รุ่นของโครงสร้างข้อมูล</td>\n</tr>\n<tr>\n<td><code>firstName</code></td>\n<td>Forklift 03</td>\n<td>ชื่อจริงของผู้ใช้หรือเจ้าของแท็ก (ในที่นี้คือรถยก)</td>\n</tr>\n<tr>\n<td><code>lastName</code></td>\n<td>MAMA</td>\n<td>นามสกุลของผู้ใช้หรือเจ้าของแท็ก (อาจเป็นกลุ่มหรือบริษัท)</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td>null</td>\n<td>สถานะของผู้ใช้ (ไม่มีข้อมูล)</td>\n</tr>\n<tr>\n<td><code>userId</code></td>\n<td>5590</td>\n<td>รหัสผู้ใช้ที่ผูกกับแท็ก</td>\n</tr>\n<tr>\n<td><code>ui_display</code></td>\n<td>TP03_MM</td>\n<td>รหัสที่แสดงบน UI</td>\n</tr>\n<tr>\n<td><code>group_name</code></td>\n<td>LAI</td>\n<td>ชื่อกลุ่มที่แท็กนี้สังกัด</td>\n</tr>\n<tr>\n<td><code>group_id</code></td>\n<td>152</td>\n<td>รหัสกลุ่ม</td>\n</tr>\n<tr>\n<td><code>gender</code></td>\n<td>M</td>\n<td>เพศ [M = ชาย, F = หญิง]</td>\n</tr>\n<tr>\n<td><code>device_type_id</code></td>\n<td>4</td>\n<td>รหัสประเภทอุปกรณ์ [1:Bluetooth_RSSI,2:UWB_TWR,3:Bluetooth_AOA,4:UWB_Plus,5:UWB_Plus_DL,6:UWB_TDOA,7:Bluetooth_RSSI_SmartPlug,8:Bluetooth_RSSI_RuuviTag,9:UWB_Plus_Lite,10:UWB_TWR_Combine]</td>\n</tr>\n<tr>\n<td><code>windowSize</code></td>\n<td>1</td>\n<td>ขนาดหน้าต่างข้อมูล (ยิ่งมากยิ่งลดการแกว่งของตำแหน่ง)</td>\n</tr>\n<tr>\n<td><code>path.hiden</code></td>\n<td>true</td>\n<td>ระบุว่าเส้นทางถูกซ่อนหรือไม่ (true = ซ่อน)</td>\n</tr>\n<tr>\n<td><code>have_snap</code></td>\n<td>true</td>\n<td>ระบุว่ามีการปรับตำแหน่ง (snap) หรือไม่ (true = มี)</td>\n</tr>\n<tr>\n<td><code>x_snap</code></td>\n<td>33.584</td>\n<td>พิกัด X หลังปรับแต่ง</td>\n</tr>\n<tr>\n<td><code>y_snap</code></td>\n<td>12.6233</td>\n<td>พิกัด Y หลังปรับแต่ง</td>\n</tr>\n<tr>\n<td><code>closePath</code></td>\n<td>MM_path3_line1</td>\n<td>เส้นทางที่กำหนดโดยผู้ใช้</td>\n</tr>\n<tr>\n<td><code>range</code></td>\n<td>0.0343</td>\n<td>ระยะ (หน่วยอาจเป็นเมตร, เฉพาะ UWB)</td>\n</tr>\n<tr>\n<td><code>inZones</code></td>\n<td>[\"2068\"]</td>\n<td>รายการรหัสโซนที่แท็กอยู่ในขณะนี้</td>\n</tr>\n<tr>\n<td><code>inExpectedZone</code></td>\n<td>2068</td>\n<td>รหัสโซนที่แท็กอยู่ปัจจุบัน</td>\n</tr>\n<tr>\n<td><code>inExpectedZoneName</code></td>\n<td>B15</td>\n<td>ชื่อโซนที่แท็กอยู่ปัจจุบัน</td>\n</tr>\n<tr>\n<td><code>inZonesName</code></td>\n<td>[\"B15\"]</td>\n<td>รายการชื่อโซนที่แท็กอยู่ในขณะนี้</td>\n</tr>\n<tr>\n<td><code>inZones_snap</code></td>\n<td>[\"2068\"]</td>\n<td>รายการโซนหลังปรับแต่ง</td>\n</tr>\n<tr>\n<td><code>inExpectedZone_snap</code></td>\n<td>2068</td>\n<td>โซนที่คาดว่าควรอยู่หลังปรับแต่ง</td>\n</tr>\n<tr>\n<td><code>inExpectedZoneName_snap</code></td>\n<td>B15</td>\n<td>ชื่อโซนที่คาดว่าควรอยู่หลังปรับแต่ง</td>\n</tr>\n<tr>\n<td><code>inZonesName_snap</code></td>\n<td>[\"B15\"]</td>\n<td>รายการชื่อโซนหลังปรับแต่ง</td>\n</tr>\n<tr>\n<td><code>adapter_time_end</code></td>\n<td>91939030.85721207</td>\n<td>เวลาสิ้นสุดที่อะแดปเตอร์ประมวลผล</td>\n</tr>\n<tr>\n<td><code>adapter_time_process</code></td>\n<td>0.40785980224609375</td>\n<td>ระยะเวลาที่อะแดปเตอร์ใช้ประมวลผล (วินาที)</td>\n</tr>\n<tr>\n<td><code>full_time_process</code></td>\n<td>0.40785980224609375</td>\n<td>ระยะเวลาทั้งหมดที่ใช้ประมวลผล (วินาที)</td>\n</tr>\n<tr>\n<td><code>sent_count</code></td>\n<td>76296</td>\n<td>จำนวนครั้งที่ข้อมูลถูกส่ง</td>\n</tr>\n<tr>\n<td><code>date_now</code></td>\n<td>2025-03-17T07:29:41.372Z</td>\n<td>วันที่และเวลาปัจจุบันที่บันทึก (UTC)</td>\n</tr>\n<tr>\n<td><code>unix_time</code></td>\n<td>1742196581</td>\n<td>เวลาในรูปแบบ Unix timestamp (วินาที)</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","get_last_location_by_floor_id"],"host":["rtls","lailab","online"],"query":[],"variable":[]}},"response":[],"_postman_id":"0527ab7e-5835-444b-8223-b4e7d7e4298a"},{"name":"last location by tag","id":"814d9e42-6bc3-4f4b-a2f1-516bc1ee1f67","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"tag_id","value":"[tag_id]","type":"text"}]},"url":"https://rtls.lailab.online/api/v1/get_last_location_by_tag_id","description":"<h3 id=\"get-last-location-by-tag-id\">Get Last Location by Tag ID</h3>\n<p>This endpoint allows you to retrieve the last known location of a specific tag ID.</p>\n<p><strong>Request Body</strong></p>\n<ul>\n<li><code>tag_id</code> (text): The unique identifier of the tag for which the last location is to be retrieved.</li>\n</ul>\n<p><strong>Response</strong><br />The response will include the details of the last known location for the specified tag ID.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"_id\": string;\n        \"id\": number;\n        \"x\": number;\n        \"y\": number;\n        \"z\": number;\n        \"timestamp\": number;\n        \"simulation\": number;\n        \"floor\": number;\n        \"building\": number;\n        \"floor_name\": string;\n        \"building_name\": string;\n        \"tagType\": string;\n        \"dataVersion\": string;\n        \"firstName\": string;\n        \"lastName\": string;\n        \"status\": string;\n        \"userId\": number;\n        \"ui_display\": string;\n        \"group_name\": string;\n        \"path\": {\n            \"hiden\": boolean;\n        },\n        \"have_snap\": boolean;\n        \"x_snap\": number;\n        \"y_snap\": number;\n        \"z_snap\": number;\n        \"closePath\": string;\n        \"range\": number;\n        \"inZones\": string array;\n        \"inExpectedZone\": string;\n        \"inExpectedZoneName\": null,\n        \"inZones_snap\": string array;\n        \"inExpectedZone_snap\":string;\n        \"inExpectedZoneName_snap\": string;\n        \"massageCount\": number;\n        \"date_now\": string;\n        \"unix_time\": number;\n        \"event_time_end\": number;\n        \"event_time_process\": number;\n        \"event_time_start\": number;\n        \"x_raw\": number;\n        \"y_raw\": number;\n        \"z_raw\": number;\n        \"xRaw\": number;\n        \"yRaw\": number;\n        \"place\": number;\n        \"topic\": string;\n        \"gateway_type_id\": number;\n        \"created_at\": string;\n        \"gender\": string;\n        \"group_id\": number;\n        \"inZonesName\": string array;\n        \"inZonesName_snap\": string array;\n        \"s_frame_number\": number;\n        \"windowSize\": number;\n        \"state\": string;\n    }\n]\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["api","v1","get_last_location_by_tag_id"],"host":["rtls","lailab","online"],"query":[],"variable":[]}},"response":[],"_postman_id":"814d9e42-6bc3-4f4b-a2f1-516bc1ee1f67"},{"name":"get all tag last location","id":"4a0821af-3f43-4164-9f83-860ef6ff5fdf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[]},"url":"https://rtls.lailab.online/api/v1/get_all_tag_last_location","description":"<h3 id=\"get-all-tag-last-location\">Get All Tag Last Location</h3>\n<p>This endpoint makes an HTTP POST request to retrieve the last known location of all tags.</p>\n<h4 id=\"request-body\">Request Body</h4>\n<ul>\n<li>No parameters are required in the request body for this endpoint.</li>\n</ul>\n<h4 id=\"response\">Response</h4>\n<p>The response will include the last known location of all tags in the specified format.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"id\": number;\n        \"floor\": number;\n        \"building\": number;\n        \"floor_name\": string;\n        \"building_name\": string;\n        \"tagType\": string;\n        \"firstName\": string;\n        \"lastName\": string;\n        \"ui_display\": string;\n        \"group_name\": string;\n        \"inExpectedZoneName\": string;\n        \"unix_time\": number;\n    },\n    {\n     ...\n    }\n]\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["api","v1","get_all_tag_last_location"],"host":["rtls","lailab","online"],"query":[],"variable":[]}},"response":[],"_postman_id":"4a0821af-3f43-4164-9f83-860ef6ff5fdf"},{"name":"last location by zone","id":"010baee9-6334-429f-8487-cc74aa15ead5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"zone_id","value":"[ZONE_ID]","description":"<p>ZONE_ID</p>\n","type":"text"}]},"url":"https://rtls.lailab.online/api/v1/get_last_location_by_zone_id","description":"<h3 id=\"get-last-location-by-zone-id\">Get Last Location by Zone ID</h3>\n<p>This endpoint allows you to retrieve the last location based on the zone ID.</p>\n<h2 id=\"request\">Request</h2>\n<ul>\n<li><p>The request does not include a request body.</p>\n</li>\n<li><p>The URL parameter [ZONE_ID] is used to specify the ID of the floor for which the details are to be retrieved.</p>\n</li>\n</ul>\n<h2 id=\"response\">Response</h2>\n<p>The response for this request is a JSON object with the following schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"_id\": string;\n        \"id\": number;\n        \"gateway_type_id\": number;\n        \"x\": number;\n        \"y\": number;\n        \"z\": number;\n        \"x_raw\": number;\n        \"y_raw\": number;\n        \"z_raw\": number;\n        \"s_frame_number\": number;\n        \"timestamp\": number;\n        \"simulation\": number;\n        \"floor\": number;\n        \"created_at\": string;\n        \"state\": string;\n        \"anchors\": string array;\n        \"building\": number;\n        \"place\": number;\n        \"floor_name\": string;\n        \"place_name\": string;\n        \"building_name\": string;\n        \"tagType\": string;\n        \"dataVersion\": string;\n        \"firstName\": string;\n        \"lastName\": string;\n        \"status\": number;\n        \"userId\": number;\n        \"ui_display\": string;\n        \"group_name\": string;\n        \"group_id\": number;\n        \"gender\": string;\n        \"device_type_id\": number;\n        \"windowSize\": number;\n        \"have_snap\": boolean\n        \"path\": {\n            \"hiden\": boolean;\n        },\n        \"closePath\": string;\n        \"range\": number;\n        \"inZones\": string array;\n        \"inExpectedZone\": string;\n        \"inExpectedZoneName\": string;\n        \"inZonesName\": string array;\n        \"inZones_snap\": string array;\n        \"inExpectedZone_snap\": string;\n        \"inExpectedZoneName_snap\": string;\n        \"inZonesName_snap\": string array;\n        \"sent_count\": number;\n        \"xRaw\": number;\n        \"yRaw\": number;\n        \"topic\": string;\n        \"date_now\": string;\n        \"unix_time\": number;\n    },\n    {\n     ...\n    }\n]\n\n</code></pre>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>ฟิลด์</strong></th>\n<th><strong>ตัวอย่างข้อมูล</strong></th>\n<th><strong>คำอธิบาย</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>_id</code></td>\n<td>6711cc7e8a4f3d9ed142e32c</td>\n<td>รหัสเฉพาะของข้อมูล (ObjectID)</td>\n</tr>\n<tr>\n<td><code>adapter_time_start</code></td>\n<td>91939030.44935226</td>\n<td>เวลาเริ่มต้นที่อะแดปเตอร์ประมวลผล (หน่วยอาจเป็นวินาที)</td>\n</tr>\n<tr>\n<td><code>id</code></td>\n<td>4912</td>\n<td>รหัสประจำตัวของแท็ก</td>\n</tr>\n<tr>\n<td><code>topic</code></td>\n<td>unai/40/59/156/tag</td>\n<td>หัวข้อหรือเส้นทางข้อมูล (MQTT)</td>\n</tr>\n<tr>\n<td><code>gateway_type_id</code></td>\n<td>4</td>\n<td>รหัสประเภทเกตเวย์ [2:UWB TWR, 4:UWB_Plus, 5:UWB_Plus_DL, 6:UWB_TDOA]</td>\n</tr>\n<tr>\n<td><code>x</code></td>\n<td>33.584</td>\n<td>พิกัด X ที่คำนวณแล้ว (หน่วยอาจเป็นเมตร)</td>\n</tr>\n<tr>\n<td><code>y</code></td>\n<td>12.589</td>\n<td>พิกัด Y ที่คำนวณแล้ว (หน่วยอาจเป็นเมตร)</td>\n</tr>\n<tr>\n<td><code>z</code></td>\n<td>2.598</td>\n<td>พิกัด Z ที่คำนวณแล้ว (อาจเป็นความสูง, หน่วยอาจเป็นเมตร)</td>\n</tr>\n<tr>\n<td><code>x_raw</code></td>\n<td>33.584</td>\n<td>พิกัด X ดั้งเดิมก่อนปรับแต่ง</td>\n</tr>\n<tr>\n<td><code>y_raw</code></td>\n<td>12.589</td>\n<td>พิกัด Y ดั้งเดิมก่อนปรับแต่ง</td>\n</tr>\n<tr>\n<td><code>z_raw</code></td>\n<td>2.598</td>\n<td>พิกัด Z ดั้งเดิมก่อนปรับแต่ง</td>\n</tr>\n<tr>\n<td><code>s_frame_number</code></td>\n<td>20522</td>\n<td>หมายเลขเฟรมของข้อมูล (เฉพาะ UWB)</td>\n</tr>\n<tr>\n<td><code>timestamp</code></td>\n<td>1742196581370.0</td>\n<td>เวลาในรูปแบบ Unix timestamp (มิลลิวินาที)</td>\n</tr>\n<tr>\n<td><code>simulation</code></td>\n<td>0</td>\n<td>ระบุว่าเป็นการจำลองหรือไม่ (0 = ไม่ใช่)</td>\n</tr>\n<tr>\n<td><code>floor</code></td>\n<td>156</td>\n<td>ชั้นที่ตรวจจับตำแหน่ง</td>\n</tr>\n<tr>\n<td><code>created_at</code></td>\n<td>2025-03-17T07:29:41.369Z</td>\n<td>เวลาที่ข้อมูลถูกสร้าง (UTC)</td>\n</tr>\n<tr>\n<td><code>state</code></td>\n<td>MOVING</td>\n<td>สถานะของอุปกรณ์หรือเหตุการณ์ (กำลังเคลื่อนที่)</td>\n</tr>\n<tr>\n<td><code>anchors</code></td>\n<td>[{\"id\": \"0x5D8E\", \"distance\": 12253}, ...]</td>\n<td>รายการจุดยึด (anchors) ที่ใช้คำนวณตำแหน่ง (ระยะห่างหน่วยอาจเป็นมิลลิเมตร)</td>\n</tr>\n<tr>\n<td><code>building</code></td>\n<td>59</td>\n<td>รหัสอาคาร</td>\n</tr>\n<tr>\n<td><code>place</code></td>\n<td>40</td>\n<td>รหัสสถานที่</td>\n</tr>\n<tr>\n<td><code>floor_name</code></td>\n<td>MAMA Rayong</td>\n<td>ชื่อของชั้น</td>\n</tr>\n<tr>\n<td><code>place_name</code></td>\n<td>Thai President Foods</td>\n<td>ชื่อสถานที่</td>\n</tr>\n<tr>\n<td><code>building_name</code></td>\n<td>MAMA Rayong</td>\n<td>ชื่ออาคาร</td>\n</tr>\n<tr>\n<td><code>tagType</code></td>\n<td>UWB</td>\n<td>ประเภทแท็ก [UWB: Ultra-Wideband, BLE: Bluetooth Low Energy]</td>\n</tr>\n<tr>\n<td><code>dataVersion</code></td>\n<td>event-base-v2</td>\n<td>รุ่นของโครงสร้างข้อมูล</td>\n</tr>\n<tr>\n<td><code>firstName</code></td>\n<td>Forklift 03</td>\n<td>ชื่อจริงของผู้ใช้หรือเจ้าของแท็ก (ในที่นี้คือรถยก)</td>\n</tr>\n<tr>\n<td><code>lastName</code></td>\n<td>MAMA</td>\n<td>นามสกุลของผู้ใช้หรือเจ้าของแท็ก (อาจเป็นกลุ่มหรือบริษัท)</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td>null</td>\n<td>สถานะของผู้ใช้ (ไม่มีข้อมูล)</td>\n</tr>\n<tr>\n<td><code>userId</code></td>\n<td>5590</td>\n<td>รหัสผู้ใช้ที่ผูกกับแท็ก</td>\n</tr>\n<tr>\n<td><code>ui_display</code></td>\n<td>TP03_MM</td>\n<td>รหัสที่แสดงบน UI</td>\n</tr>\n<tr>\n<td><code>group_name</code></td>\n<td>LAI</td>\n<td>ชื่อกลุ่มที่แท็กนี้สังกัด</td>\n</tr>\n<tr>\n<td><code>group_id</code></td>\n<td>152</td>\n<td>รหัสกลุ่ม</td>\n</tr>\n<tr>\n<td><code>gender</code></td>\n<td>M</td>\n<td>เพศ [M = ชาย, F = หญิง]</td>\n</tr>\n<tr>\n<td><code>device_type_id</code></td>\n<td>4</td>\n<td>รหัสประเภทอุปกรณ์ [1:Bluetooth_RSSI,2:UWB_TWR,3:Bluetooth_AOA,4:UWB_Plus,5:UWB_Plus_DL,6:UWB_TDOA,7:Bluetooth_RSSI_SmartPlug,8:Bluetooth_RSSI_RuuviTag,9:UWB_Plus_Lite,10:UWB_TWR_Combine]</td>\n</tr>\n<tr>\n<td><code>windowSize</code></td>\n<td>1</td>\n<td>ขนาดหน้าต่างข้อมูล (ยิ่งมากยิ่งลดการแกว่งของตำแหน่ง)</td>\n</tr>\n<tr>\n<td><code>path.hiden</code></td>\n<td>true</td>\n<td>ระบุว่าเส้นทางถูกซ่อนหรือไม่ (true = ซ่อน)</td>\n</tr>\n<tr>\n<td><code>have_snap</code></td>\n<td>true</td>\n<td>ระบุว่ามีการปรับตำแหน่ง (snap) หรือไม่ (true = มี)</td>\n</tr>\n<tr>\n<td><code>x_snap</code></td>\n<td>33.584</td>\n<td>พิกัด X หลังปรับแต่ง</td>\n</tr>\n<tr>\n<td><code>y_snap</code></td>\n<td>12.6233</td>\n<td>พิกัด Y หลังปรับแต่ง</td>\n</tr>\n<tr>\n<td><code>closePath</code></td>\n<td>MM_path3_line1</td>\n<td>เส้นทางที่กำหนดโดยผู้ใช้</td>\n</tr>\n<tr>\n<td><code>range</code></td>\n<td>0.0343</td>\n<td>ระยะ (หน่วยอาจเป็นเมตร, เฉพาะ UWB)</td>\n</tr>\n<tr>\n<td><code>inZones</code></td>\n<td>[\"2068\"]</td>\n<td>รายการรหัสโซนที่แท็กอยู่ในขณะนี้</td>\n</tr>\n<tr>\n<td><code>inExpectedZone</code></td>\n<td>2068</td>\n<td>รหัสโซนที่แท็กอยู่ปัจจุบัน</td>\n</tr>\n<tr>\n<td><code>inExpectedZoneName</code></td>\n<td>B15</td>\n<td>ชื่อโซนที่แท็กอยู่ปัจจุบัน</td>\n</tr>\n<tr>\n<td><code>inZonesName</code></td>\n<td>[\"B15\"]</td>\n<td>รายการชื่อโซนที่แท็กอยู่ในขณะนี้</td>\n</tr>\n<tr>\n<td><code>inZones_snap</code></td>\n<td>[\"2068\"]</td>\n<td>รายการโซนหลังปรับแต่ง</td>\n</tr>\n<tr>\n<td><code>inExpectedZone_snap</code></td>\n<td>2068</td>\n<td>โซนที่คาดว่าควรอยู่หลังปรับแต่ง</td>\n</tr>\n<tr>\n<td><code>inExpectedZoneName_snap</code></td>\n<td>B15</td>\n<td>ชื่อโซนที่คาดว่าควรอยู่หลังปรับแต่ง</td>\n</tr>\n<tr>\n<td><code>inZonesName_snap</code></td>\n<td>[\"B15\"]</td>\n<td>รายการชื่อโซนหลังปรับแต่ง</td>\n</tr>\n<tr>\n<td><code>adapter_time_end</code></td>\n<td>91939030.85721207</td>\n<td>เวลาสิ้นสุดที่อะแดปเตอร์ประมวลผล</td>\n</tr>\n<tr>\n<td><code>adapter_time_process</code></td>\n<td>0.40785980224609375</td>\n<td>ระยะเวลาที่อะแดปเตอร์ใช้ประมวลผล (วินาที)</td>\n</tr>\n<tr>\n<td><code>full_time_process</code></td>\n<td>0.40785980224609375</td>\n<td>ระยะเวลาทั้งหมดที่ใช้ประมวลผล (วินาที)</td>\n</tr>\n<tr>\n<td><code>sent_count</code></td>\n<td>76296</td>\n<td>จำนวนครั้งที่ข้อมูลถูกส่ง</td>\n</tr>\n<tr>\n<td><code>date_now</code></td>\n<td>2025-03-17T07:29:41.372Z</td>\n<td>วันที่และเวลาปัจจุบันที่บันทึก (UTC)</td>\n</tr>\n<tr>\n<td><code>unix_time</code></td>\n<td>1742196581</td>\n<td>เวลาในรูปแบบ Unix timestamp (วินาที)</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","get_last_location_by_zone_id"],"host":["rtls","lailab","online"],"query":[],"variable":[]}},"response":[],"_postman_id":"010baee9-6334-429f-8487-cc74aa15ead5"},{"name":"get location by tag","id":"c16efab3-912d-49ad-9436-6dafb2ed378d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"tag_id","value":"[tag_id]","type":"text","description":"<p>TAG_ID</p>\n"},{"key":"start_timestamp","value":"[start unitx timestamp in second]","description":"<p>start unitx timestamp in second</p>\n","type":"text"},{"key":"end_timestamp","value":"[end unitx timestamp in second]","description":"<p>end unitx timestamp in second</p>\n","type":"text"}]},"url":"https://rtls.lailab.online/api/v1/get_location_by_tag_id","description":"<h2 id=\"get-location-by-tag-id\">Get Location by Tag ID</h2>\n<p>This endpoint is used to retrieve the location details based on the tag ID.</p>\n<h2 id=\"request\">Request</h2>\n<ul>\n<li><p>[TAG_ID] is used to specify the ID of the floor for which the details are to be retrieved.</p>\n</li>\n<li><p>[start unitx timestamp in second] is unixtime</p>\n</li>\n<li><p>[end unitx timestamp in second] is unixtime</p>\n</li>\n</ul>\n<h2 id=\"response\">Response</h2>\n<p>The response for this request is a JSON object with the following schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"_id\": string;\n        \"id\": number;\n        \"gateway_type_id\": number;\n        \"x\": number;\n        \"y\": number;\n        \"z\": number;\n        \"x_raw\": number;\n        \"y_raw\": number;\n        \"z_raw\": number;\n        \"s_frame_number\": number;\n        \"timestamp\": number;\n        \"simulation\": number;\n        \"floor\": number;\n        \"created_at\": string;\n        \"state\": string;\n        \"anchors\": string array;\n        \"building\": number;\n        \"place\": number;\n        \"floor_name\": string;\n        \"place_name\": string;\n        \"building_name\": string;\n        \"tagType\": string;\n        \"dataVersion\": string;\n        \"firstName\": string;\n        \"lastName\": string;\n        \"status\": number;\n        \"userId\": number;\n        \"ui_display\": string;\n        \"group_name\": string;\n        \"group_id\": number;\n        \"gender\": string;\n        \"device_type_id\": number;\n        \"windowSize\": number;\n        \"have_snap\": boolean\n        \"path\": {\n            \"hiden\": boolean;\n        },\n        \"closePath\": string;\n        \"range\": number;\n        \"inZones\": string array;\n        \"inExpectedZone\": string;\n        \"inExpectedZoneName\": string;\n        \"inZonesName\": string array;\n        \"inZones_snap\": string array;\n        \"inExpectedZone_snap\": string;\n        \"inExpectedZoneName_snap\": string;\n        \"inZonesName_snap\": string array;\n        \"sent_count\": number;\n        \"xRaw\": number;\n        \"yRaw\": number;\n        \"topic\": string;\n        \"date_now\": string;\n        \"unix_time\": number;\n    },\n    {\n     ...\n    }\n]\n\n</code></pre>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>ฟิลด์</strong></th>\n<th><strong>ตัวอย่างข้อมูล</strong></th>\n<th><strong>คำอธิบาย</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>_id</code></td>\n<td>6711cc7e8a4f3d9ed142e32c</td>\n<td>รหัสเฉพาะของข้อมูล (ObjectID)</td>\n</tr>\n<tr>\n<td><code>adapter_time_start</code></td>\n<td>91939030.44935226</td>\n<td>เวลาเริ่มต้นที่อะแดปเตอร์ประมวลผล (หน่วยอาจเป็นวินาที)</td>\n</tr>\n<tr>\n<td><code>id</code></td>\n<td>4912</td>\n<td>รหัสประจำตัวของแท็ก</td>\n</tr>\n<tr>\n<td><code>topic</code></td>\n<td>unai/40/59/156/tag</td>\n<td>หัวข้อหรือเส้นทางข้อมูล (MQTT)</td>\n</tr>\n<tr>\n<td><code>gateway_type_id</code></td>\n<td>4</td>\n<td>รหัสประเภทเกตเวย์ [2:UWB TWR, 4:UWB_Plus, 5:UWB_Plus_DL, 6:UWB_TDOA]</td>\n</tr>\n<tr>\n<td><code>x</code></td>\n<td>33.584</td>\n<td>พิกัด X ที่คำนวณแล้ว (หน่วยอาจเป็นเมตร)</td>\n</tr>\n<tr>\n<td><code>y</code></td>\n<td>12.589</td>\n<td>พิกัด Y ที่คำนวณแล้ว (หน่วยอาจเป็นเมตร)</td>\n</tr>\n<tr>\n<td><code>z</code></td>\n<td>2.598</td>\n<td>พิกัด Z ที่คำนวณแล้ว (อาจเป็นความสูง, หน่วยอาจเป็นเมตร)</td>\n</tr>\n<tr>\n<td><code>x_raw</code></td>\n<td>33.584</td>\n<td>พิกัด X ดั้งเดิมก่อนปรับแต่ง</td>\n</tr>\n<tr>\n<td><code>y_raw</code></td>\n<td>12.589</td>\n<td>พิกัด Y ดั้งเดิมก่อนปรับแต่ง</td>\n</tr>\n<tr>\n<td><code>z_raw</code></td>\n<td>2.598</td>\n<td>พิกัด Z ดั้งเดิมก่อนปรับแต่ง</td>\n</tr>\n<tr>\n<td><code>s_frame_number</code></td>\n<td>20522</td>\n<td>หมายเลขเฟรมของข้อมูล (เฉพาะ UWB)</td>\n</tr>\n<tr>\n<td><code>timestamp</code></td>\n<td>1742196581370.0</td>\n<td>เวลาในรูปแบบ Unix timestamp (มิลลิวินาที)</td>\n</tr>\n<tr>\n<td><code>simulation</code></td>\n<td>0</td>\n<td>ระบุว่าเป็นการจำลองหรือไม่ (0 = ไม่ใช่)</td>\n</tr>\n<tr>\n<td><code>floor</code></td>\n<td>156</td>\n<td>ชั้นที่ตรวจจับตำแหน่ง</td>\n</tr>\n<tr>\n<td><code>created_at</code></td>\n<td>2025-03-17T07:29:41.369Z</td>\n<td>เวลาที่ข้อมูลถูกสร้าง (UTC)</td>\n</tr>\n<tr>\n<td><code>state</code></td>\n<td>MOVING</td>\n<td>สถานะของอุปกรณ์หรือเหตุการณ์ (กำลังเคลื่อนที่)</td>\n</tr>\n<tr>\n<td><code>anchors</code></td>\n<td>[{\"id\": \"0x5D8E\", \"distance\": 12253}, ...]</td>\n<td>รายการจุดยึด (anchors) ที่ใช้คำนวณตำแหน่ง (ระยะห่างหน่วยอาจเป็นมิลลิเมตร)</td>\n</tr>\n<tr>\n<td><code>building</code></td>\n<td>59</td>\n<td>รหัสอาคาร</td>\n</tr>\n<tr>\n<td><code>place</code></td>\n<td>40</td>\n<td>รหัสสถานที่</td>\n</tr>\n<tr>\n<td><code>floor_name</code></td>\n<td>MAMA Rayong</td>\n<td>ชื่อของชั้น</td>\n</tr>\n<tr>\n<td><code>place_name</code></td>\n<td>Thai President Foods</td>\n<td>ชื่อสถานที่</td>\n</tr>\n<tr>\n<td><code>building_name</code></td>\n<td>MAMA Rayong</td>\n<td>ชื่ออาคาร</td>\n</tr>\n<tr>\n<td><code>tagType</code></td>\n<td>UWB</td>\n<td>ประเภทแท็ก [UWB: Ultra-Wideband, BLE: Bluetooth Low Energy]</td>\n</tr>\n<tr>\n<td><code>dataVersion</code></td>\n<td>event-base-v2</td>\n<td>รุ่นของโครงสร้างข้อมูล</td>\n</tr>\n<tr>\n<td><code>firstName</code></td>\n<td>Forklift 03</td>\n<td>ชื่อจริงของผู้ใช้หรือเจ้าของแท็ก (ในที่นี้คือรถยก)</td>\n</tr>\n<tr>\n<td><code>lastName</code></td>\n<td>MAMA</td>\n<td>นามสกุลของผู้ใช้หรือเจ้าของแท็ก (อาจเป็นกลุ่มหรือบริษัท)</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td>null</td>\n<td>สถานะของผู้ใช้ (ไม่มีข้อมูล)</td>\n</tr>\n<tr>\n<td><code>userId</code></td>\n<td>5590</td>\n<td>รหัสผู้ใช้ที่ผูกกับแท็ก</td>\n</tr>\n<tr>\n<td><code>ui_display</code></td>\n<td>TP03_MM</td>\n<td>รหัสที่แสดงบน UI</td>\n</tr>\n<tr>\n<td><code>group_name</code></td>\n<td>LAI</td>\n<td>ชื่อกลุ่มที่แท็กนี้สังกัด</td>\n</tr>\n<tr>\n<td><code>group_id</code></td>\n<td>152</td>\n<td>รหัสกลุ่ม</td>\n</tr>\n<tr>\n<td><code>gender</code></td>\n<td>M</td>\n<td>เพศ [M = ชาย, F = หญิง]</td>\n</tr>\n<tr>\n<td><code>device_type_id</code></td>\n<td>4</td>\n<td>รหัสประเภทอุปกรณ์ [1:Bluetooth_RSSI,2:UWB_TWR,3:Bluetooth_AOA,4:UWB_Plus,5:UWB_Plus_DL,6:UWB_TDOA,7:Bluetooth_RSSI_SmartPlug,8:Bluetooth_RSSI_RuuviTag,9:UWB_Plus_Lite,10:UWB_TWR_Combine]</td>\n</tr>\n<tr>\n<td><code>windowSize</code></td>\n<td>1</td>\n<td>ขนาดหน้าต่างข้อมูล (ยิ่งมากยิ่งลดการแกว่งของตำแหน่ง)</td>\n</tr>\n<tr>\n<td><code>path.hiden</code></td>\n<td>true</td>\n<td>ระบุว่าเส้นทางถูกซ่อนหรือไม่ (true = ซ่อน)</td>\n</tr>\n<tr>\n<td><code>have_snap</code></td>\n<td>true</td>\n<td>ระบุว่ามีการปรับตำแหน่ง (snap) หรือไม่ (true = มี)</td>\n</tr>\n<tr>\n<td><code>x_snap</code></td>\n<td>33.584</td>\n<td>พิกัด X หลังปรับแต่ง</td>\n</tr>\n<tr>\n<td><code>y_snap</code></td>\n<td>12.6233</td>\n<td>พิกัด Y หลังปรับแต่ง</td>\n</tr>\n<tr>\n<td><code>closePath</code></td>\n<td>MM_path3_line1</td>\n<td>เส้นทางที่กำหนดโดยผู้ใช้</td>\n</tr>\n<tr>\n<td><code>range</code></td>\n<td>0.0343</td>\n<td>ระยะ (หน่วยอาจเป็นเมตร, เฉพาะ UWB)</td>\n</tr>\n<tr>\n<td><code>inZones</code></td>\n<td>[\"2068\"]</td>\n<td>รายการรหัสโซนที่แท็กอยู่ในขณะนี้</td>\n</tr>\n<tr>\n<td><code>inExpectedZone</code></td>\n<td>2068</td>\n<td>รหัสโซนที่แท็กอยู่ปัจจุบัน</td>\n</tr>\n<tr>\n<td><code>inExpectedZoneName</code></td>\n<td>B15</td>\n<td>ชื่อโซนที่แท็กอยู่ปัจจุบัน</td>\n</tr>\n<tr>\n<td><code>inZonesName</code></td>\n<td>[\"B15\"]</td>\n<td>รายการชื่อโซนที่แท็กอยู่ในขณะนี้</td>\n</tr>\n<tr>\n<td><code>inZones_snap</code></td>\n<td>[\"2068\"]</td>\n<td>รายการโซนหลังปรับแต่ง</td>\n</tr>\n<tr>\n<td><code>inExpectedZone_snap</code></td>\n<td>2068</td>\n<td>โซนที่คาดว่าควรอยู่หลังปรับแต่ง</td>\n</tr>\n<tr>\n<td><code>inExpectedZoneName_snap</code></td>\n<td>B15</td>\n<td>ชื่อโซนที่คาดว่าควรอยู่หลังปรับแต่ง</td>\n</tr>\n<tr>\n<td><code>inZonesName_snap</code></td>\n<td>[\"B15\"]</td>\n<td>รายการชื่อโซนหลังปรับแต่ง</td>\n</tr>\n<tr>\n<td><code>adapter_time_end</code></td>\n<td>91939030.85721207</td>\n<td>เวลาสิ้นสุดที่อะแดปเตอร์ประมวลผล</td>\n</tr>\n<tr>\n<td><code>adapter_time_process</code></td>\n<td>0.40785980224609375</td>\n<td>ระยะเวลาที่อะแดปเตอร์ใช้ประมวลผล (วินาที)</td>\n</tr>\n<tr>\n<td><code>full_time_process</code></td>\n<td>0.40785980224609375</td>\n<td>ระยะเวลาทั้งหมดที่ใช้ประมวลผล (วินาที)</td>\n</tr>\n<tr>\n<td><code>sent_count</code></td>\n<td>76296</td>\n<td>จำนวนครั้งที่ข้อมูลถูกส่ง</td>\n</tr>\n<tr>\n<td><code>date_now</code></td>\n<td>2025-03-17T07:29:41.372Z</td>\n<td>วันที่และเวลาปัจจุบันที่บันทึก (UTC)</td>\n</tr>\n<tr>\n<td><code>unix_time</code></td>\n<td>1742196581</td>\n<td>เวลาในรูปแบบ Unix timestamp (วินาที)</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","get_location_by_tag_id"],"host":["rtls","lailab","online"],"query":[],"variable":[]}},"response":[],"_postman_id":"c16efab3-912d-49ad-9436-6dafb2ed378d"},{"name":"get location by floor","id":"3bf00314-1a91-4a6f-b7e8-c216cc13532b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"floor_id","value":"[floor_id]","type":"text"},{"key":"start_timestamp","value":"[start unitx timestamp in second]","description":"<p>[start unitx timestamp in second]</p>\n","type":"text"},{"key":"end_timestamp","value":"[end unitx timestamp in second]","description":"<p>[end unitx timestamp in second]</p>\n","type":"text"}]},"url":"https://rtls.lailab.online/api/v1/get_location_by_floor_id","description":"<h3 id=\"get-location-by-floor-id\">Get Location by Floor ID</h3>\n<p>This endpoint allows you to retrieve the location by floor ID.</p>\n<h2 id=\"request\">Request</h2>\n<ul>\n<li><p>[FLOOR_ID] is used to specify the ID of the floor for which the details are to be retrieved.</p>\n</li>\n<li><p>[start unitx timestamp in second] is unixtime</p>\n</li>\n<li><p>[end unitx timestamp in second] is unixtime</p>\n</li>\n</ul>\n<h2 id=\"response\">Response</h2>\n<p>The response for this request is a JSON object with the following schema:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"_id\": string;\n        \"id\": number;\n        \"gateway_type_id\": number;\n        \"x\": number;\n        \"y\": number;\n        \"z\": number;\n        \"x_raw\": number;\n        \"y_raw\": number;\n        \"z_raw\": number;\n        \"s_frame_number\": number;\n        \"timestamp\": number;\n        \"simulation\": number;\n        \"floor\": number;\n        \"created_at\": string;\n        \"state\": string;\n        \"anchors\": string array;\n        \"building\": number;\n        \"place\": number;\n        \"floor_name\": string;\n        \"place_name\": string;\n        \"building_name\": string;\n        \"tagType\": string;\n        \"dataVersion\": string;\n        \"firstName\": string;\n        \"lastName\": string;\n        \"status\": number;\n        \"userId\": number;\n        \"ui_display\": string;\n        \"group_name\": string;\n        \"group_id\": number;\n        \"gender\": string;\n        \"device_type_id\": number;\n        \"windowSize\": number;\n        \"have_snap\": boolean\n        \"path\": {\n            \"hiden\": boolean;\n        },\n        \"closePath\": string;\n        \"range\": number;\n        \"inZones\": string array;\n        \"inExpectedZone\": string;\n        \"inExpectedZoneName\": string;\n        \"inZonesName\": string array;\n        \"inZones_snap\": string array;\n        \"inExpectedZone_snap\": string;\n        \"inExpectedZoneName_snap\": string;\n        \"inZonesName_snap\": string array;\n        \"sent_count\": number;\n        \"xRaw\": number;\n        \"yRaw\": number;\n        \"topic\": string;\n        \"date_now\": string;\n        \"unix_time\": number;\n    },\n    {\n     ...\n    }\n]\n\n</code></pre>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>ฟิลด์</strong></th>\n<th><strong>ตัวอย่างข้อมูล</strong></th>\n<th><strong>คำอธิบาย</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>_id</td>\n<td>67d4fc66c493148b74ad1342</td>\n<td>รหัสเฉพาะของข้อมูล (ObjectID)</td>\n</tr>\n<tr>\n<td>adapter_time_start</td>\n<td>67019418.41147423</td>\n<td>เวลาเริ่มต้นที่อะแดปเตอร์ประมวลผล</td>\n</tr>\n<tr>\n<td>id</td>\n<td>3069</td>\n<td>รหัสประจำตัวแท็ก</td>\n</tr>\n<tr>\n<td>topic</td>\n<td>unai/22/3/8/tag</td>\n<td>หัวข้อหรือเส้นทางข้อมูล (เกี่ยวข้องกับระบบ MQTT)</td>\n</tr>\n<tr>\n<td>gateway_type_id</td>\n<td>2</td>\n<td>รหัสประเภทของเกตเวย์ที่ใช้รับข้อมูล[2:UWB TWR,4:UWB_Plus,5:UWB_Plus_DL,6:UWB_TDOA]</td>\n</tr>\n<tr>\n<td>x</td>\n<td>8.038</td>\n<td>พิกัด X ที่คำนวณแล้ว (หน่วยอาจเป็นเมตร)</td>\n</tr>\n<tr>\n<td>y</td>\n<td>1.124</td>\n<td>พิกัด Y ที่คำนวณแล้ว (หน่วยอาจเป็นเมตร)</td>\n</tr>\n<tr>\n<td>z</td>\n<td>0.368</td>\n<td>พิกัด Z ที่คำนวณแล้ว (อาจเป็นความสูง, หน่วยอาจเป็นเมตร)</td>\n</tr>\n<tr>\n<td>x_raw</td>\n<td>8.038</td>\n<td>พิกัด X ดั้งเดิมก่อนการปรับแต่ง</td>\n</tr>\n<tr>\n<td>y_raw</td>\n<td>1.124</td>\n<td>พิกัด Y ดั้งเดิมก่อนการปรับแต่ง</td>\n</tr>\n<tr>\n<td>z_raw</td>\n<td>0.368</td>\n<td>พิกัด Z ดั้งเดิมก่อนการปรับแต่ง</td>\n</tr>\n<tr>\n<td>s_frame_number</td>\n<td>762</td>\n<td>หมายเลขเฟรมของข้อมูล (UWB only)</td>\n</tr>\n<tr>\n<td>timestamp</td>\n<td>1742011494202</td>\n<td>เวลาในรูปแบบ Unix timestamp (มิลลิวินาที)</td>\n</tr>\n<tr>\n<td>simulation</td>\n<td>0</td>\n<td>ระบุว่าข้อมูลนี้เป็นการจำลองหรือไม่ (0 = ไม่ใช่)</td>\n</tr>\n<tr>\n<td>floor</td>\n<td>8</td>\n<td>ชั้นที่ตรวจจับตำแหน่ง</td>\n</tr>\n<tr>\n<td>created_at</td>\n<td>2025-03-15T04:04:54.202Z</td>\n<td>เวลาที่ข้อมูลถูกสร้างในระบบ (UTC)</td>\n</tr>\n<tr>\n<td>state</td>\n<td>N/A</td>\n<td>สถานะของอุปกรณ์หรือเหตุการณ์ (ในที่นี้ไม่มีข้อมูล)</td>\n</tr>\n<tr>\n<td>anchors</td>\n<td>[]</td>\n<td>รายการของจุดยึด (anchors) ที่ใช้คำนวณตำแหน่ง (ว่างในตัวอย่างนี้)</td>\n</tr>\n<tr>\n<td>building</td>\n<td>3</td>\n<td>รหัสอาคาร</td>\n</tr>\n<tr>\n<td>place</td>\n<td>22</td>\n<td>รหัสสถานที่</td>\n</tr>\n<tr>\n<td>floor_name</td>\n<td>ROOM 512 DEMO</td>\n<td>ชื่อของชั้น (เช่น ห้อง 512 เดโม)</td>\n</tr>\n<tr>\n<td>place_name</td>\n<td>UNAI DEV.</td>\n<td>ชื่อสถานที่ (เช่น UNAI Development)</td>\n</tr>\n<tr>\n<td>building_name</td>\n<td>ROOM512_DEMO</td>\n<td>ชื่ออาคาร (เช่น ห้อง 512 เดโม)</td>\n</tr>\n<tr>\n<td>tagType</td>\n<td>UWB</td>\n<td>ประเภทของแท็กที่ใช้ (UWB:Ultra-Wideband, Bluetooth low energy:BLE)</td>\n</tr>\n<tr>\n<td>dataVersion</td>\n<td>event-base-v2</td>\n<td>รุ่นของข้อมูล (โครงสร้างหรือเวอร์ชันของระบบ)</td>\n</tr>\n<tr>\n<td>firstName</td>\n<td>Twatch</td>\n<td>ชื่อจริงของผู้ใช้หรือเจ้าของแท็ก</td>\n</tr>\n<tr>\n<td>lastName</td>\n<td>Kayor</td>\n<td>นามสกุลของผู้ใช้หรือเจ้าของแท็ก</td>\n</tr>\n<tr>\n<td>status</td>\n<td>1</td>\n<td>สถานะของผู้ใช้</td>\n</tr>\n<tr>\n<td>userId</td>\n<td>3035</td>\n<td>รหัสผู้ใช้ที่ผูกกับแท็ก</td>\n</tr>\n<tr>\n<td>ui_display</td>\n<td>UW-243A</td>\n<td>รหัสที่แสดงบน UI</td>\n</tr>\n<tr>\n<td>group_name</td>\n<td>Yellow_demo</td>\n<td>ชื่อกลุ่มที่แท็กนี้สังกัด</td>\n</tr>\n<tr>\n<td>group_id</td>\n<td>150</td>\n<td>รหัสกลุ่ม</td>\n</tr>\n<tr>\n<td>gender</td>\n<td>M</td>\n<td>เพศ (M = ชาย, F = หญิง)</td>\n</tr>\n<tr>\n<td>device_type_id</td>\n<td>2</td>\n<td>รหัสประเภทของอุปกรณ์[1:Bluetooth_RSSI,2:UWB_TWR,3:Bluetooth_AOA,4:UWB_Plus,5:UWB_Plus_DL,6:UWB_TDOA,7:Bluetooth_RSSI_SmartPlug,8:Bluetooth_RSSI_RuuviTag,9:UWB_Plus_Lite,10:UWB_TWR_Combine]</td>\n</tr>\n<tr>\n<td>windowSize</td>\n<td>1</td>\n<td>ขนาดหน้าต่างข้อมูล (ลดการแกว่งของตำแหน่งยิ่งมากยิ่งแกว่งน้อย)</td>\n</tr>\n<tr>\n<td>path.hiden</td>\n<td>true</td>\n<td>ระบุว่าเส้นทางถูกซ่อนหรือไม่ (true = ซ่อน)</td>\n</tr>\n<tr>\n<td>have_snap</td>\n<td>true</td>\n<td>ระบุว่ามีการปรับตำแหน่ง (snap) หรือไม่ (true = มี)</td>\n</tr>\n<tr>\n<td>x_snap</td>\n<td>8.038</td>\n<td>พิกัด X หลังการปรับแต่ง</td>\n</tr>\n<tr>\n<td>y_snap</td>\n<td>1.124</td>\n<td>พิกัด Y หลังการปรับแต่ง</td>\n</tr>\n<tr>\n<td>closePath</td>\n<td>512-Demo-01_line1</td>\n<td>เส้นทางที่กำหนดผ่านระบบโดยผู้ใช้</td>\n</tr>\n<tr>\n<td>range</td>\n<td>2.9135</td>\n<td>ระยะ (หน่วยอาจเป็นเมตร UWB Only)</td>\n</tr>\n<tr>\n<td>inZones</td>\n<td>[1156]</td>\n<td>รายการโซนที่แท็กอยู่</td>\n</tr>\n<tr>\n<td>inExpectedZone</td>\n<td>1156</td>\n<td>รหัสโซนที่แท็กอยู่ปัจจุบัน</td>\n</tr>\n<tr>\n<td>inExpectedZoneName</td>\n<td>ห้องน้ำชั้นที่ 1</td>\n<td>ชื่อโซนที่แท็กอยู่ปัจจุบัน</td>\n</tr>\n<tr>\n<td>inZonesName</td>\n<td>[ห้องน้ำชั้นที่ 1]</td>\n<td>รายการชื่อโซนที่แท็กอยู่ใน</td>\n</tr>\n<tr>\n<td>inZones_snap</td>\n<td>[]</td>\n<td>รายการโซนหลังการปรับแต่ง (ว่างเปล่าในตัวอย่างนี้)</td>\n</tr>\n<tr>\n<td>inExpectedZone_snap</td>\n<td>-</td>\n<td>โซนที่คาดว่าควรอยู่หลังการปรับแต่ง (ในที่นี้ไม่มีข้อมูล)</td>\n</tr>\n<tr>\n<td>inZonesName_snap</td>\n<td>[]</td>\n<td>รายการชื่อโซนหลังการปรับแต่ง (ว่างเปล่าในตัวอย่างนี้)</td>\n</tr>\n<tr>\n<td>geometry.type</td>\n<td>Point</td>\n<td>ประเภทของข้อมูลแบบ GPS (ต้องตั้งค่าเพิ่มเติม)</td>\n</tr>\n<tr>\n<td>geometry.coordinates.lat</td>\n<td>14.077853317274492</td>\n<td>ละติจูดของตำแหน่งแบบ GPS (ต้องตั้งค่าเพิ่มเติม)</td>\n</tr>\n<tr>\n<td>geometry.coordinates.lon</td>\n<td>100.60164514468174</td>\n<td>ลองจิจูดของตำแหน่งแบบ GPS (ต้องตั้งค่าเพิ่มเติม)</td>\n</tr>\n<tr>\n<td>geometry_snap.type</td>\n<td>Point</td>\n<td>ประเภทของข้อมูลแบบ GPS (ต้องตั้งค่าเพิ่มเติม)</td>\n</tr>\n<tr>\n<td>geometry_snap.coordinates.lat</td>\n<td>14.077853317274492</td>\n<td>ละติจูดหลังการปรับแต่งแบบ GPS (ต้องตั้งค่าเพิ่มเติม)</td>\n</tr>\n<tr>\n<td>geometry_snap.coordinates.lon</td>\n<td>100.60164514468174</td>\n<td>ลองจิจูดหลังการปรับแต่งแบบ GPS (ต้องตั้งค่าเพิ่มเติม)</td>\n</tr>\n<tr>\n<td>adapter_time_end</td>\n<td>67019418.64250183</td>\n<td>เวลาสิ้นสุดที่อะแดปเตอร์ประมวลผล</td>\n</tr>\n<tr>\n<td>adapter_time_process</td>\n<td>0.23102760314941406</td>\n<td>ระยะเวลาที่อะแดปเตอร์ใช้ประมวลผล (วินาที)</td>\n</tr>\n<tr>\n<td>full_time_process</td>\n<td>0.23102760314941406</td>\n<td>ระยะเวลาทั้งหมดที่ใช้ประมวลผล (วินาที)</td>\n</tr>\n<tr>\n<td>sent_count</td>\n<td>27567</td>\n<td>จำนวนครั้งที่ข้อมูลถูกส่ง</td>\n</tr>\n<tr>\n<td>date_now</td>\n<td>2025-03-15T04:04:54.203Z</td>\n<td>วันที่และเวลาปัจจุบันที่บันทึก (UTC)</td>\n</tr>\n<tr>\n<td>unix_time</td>\n<td>1742011494</td>\n<td>เวลาในรูปแบบ Unix timestamp (วินาที)</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","get_location_by_floor_id"],"host":["rtls","lailab","online"],"query":[],"variable":[]}},"response":[],"_postman_id":"3bf00314-1a91-4a6f-b7e8-c216cc13532b"},{"name":"get tag timeline by floor","id":"b5fe4c9e-7144-45ae-9a8f-ab6c10b59d36","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"floor_id","value":"[floor_id]","type":"text"},{"key":"start_timestamp","value":"[start unitx timestamp in second]","description":"<p>[start unitx timestamp in second]</p>\n","type":"text"},{"key":"end_timestamp","value":"[end unitx timestamp in second]","description":"<p>[end unitx timestamp in second]</p>\n","type":"text"}]},"url":"https://rtls.lailab.online/api/v1/get_tag_timeline_by_floor_id","description":"<p>This endpoint allows you to retrieve the tag timeline by floor ID using an HTTP POST request. The request should be sent to <a href=\"https://rtls.lailab.online/api/v1/get_tag_timeline_by_floor_id\">https://rtls.lailab.online/api/v1/get_tag_timeline_by_floor_id</a>.</p>\n<h2 id=\"request\">Request</h2>\n<ul>\n<li><p>[FLOOR_ID] is used to specify the ID of the floor for which the details are to be retrieved.</p>\n</li>\n<li><p>[start unitx timestamp in second] is unixtime</p>\n</li>\n<li><p>[end unitx timestamp in second] is unixtime</p>\n</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<p>Upon a successful request, the response will contain the tag timeline data for the specified floor ID.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"_id\": string;\n        \"Floor_id\": string;\n        \"Tag_id\": string;\n        \"Accelerometer\": number;\n        \"Date\": string;\n        \"Time_start\": number;\n        \"Time_end\": number;\n        \"Distance\": number;\n        \"Running_time\": number;\n        \"Stopping_time\": array;\n        \"Timeline_zone\": [\n            [\n                string;\n                number;\n                number;\n            ],\n             ...\n            [\n                string;\n                number;\n                number;\n            ]\n        ],\n        \"Zone_moving\": object;\n        \"Zone_stopping\": object;\n        \"Sensor_info\": array;\n        \"Route_report\": array;\n    },\n    {\n     ...\n    }\n]\n\n</code></pre>\n","urlObject":{"protocol":"https","path":["api","v1","get_tag_timeline_by_floor_id"],"host":["rtls","lailab","online"],"query":[],"variable":[]}},"response":[],"_postman_id":"b5fe4c9e-7144-45ae-9a8f-ab6c10b59d36"}],"id":"4e8e4c69-be6c-4ad9-b9bd-b9c612d3423f","_postman_id":"4e8e4c69-be6c-4ad9-b9bd-b9c612d3423f","description":""}]}