> For the complete documentation index, see [llms.txt](https://navixy.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://navixy.com/docs/navixy-api/user-api/resources/tracking/beacon.md).

# BLE beacon data

What a tracker saw of the radio tags around it, as history or as last known values.

BLE beacon data is what a tracker saw of the radio tags around it: iBeacon, Teltonika EYE Beacon and Sensor, Eddystone, and similar devices. Each scan records which tag was seen, how strong its signal was, and where the tracker stood at the time.

Two operations read that data. `beacon/data/read` returns the scans recorded between `from` and `to`, sorted by `get_time`. `beacon/data/last_values` returns the most recent scan of each beacon currently visible to the given trackers, and with an empty body it covers the last hour across every tracker the caller can reach.

## BLE beacon data entry

## The BeaconDataEntry object

```json
{"openapi":"3.1.0","info":{"title":"Navixy Platform API","version":"1.0.0"},"components":{"schemas":{"BeaconDataEntry":{"type":"object","description":"One scan of a BLE beacon by a tracker: which tag was seen, how strongly, and where the tracker was at the time.","properties":{"tracker_id":{"type":"integer","description":"ID of the tracker that saw the beacon, also known as the object ID."},"hardware_id":{"type":"string","description":"Hardware ID of the beacon."},"rssi":{"type":"integer","description":"Received signal strength indicator, in dBm. Values closer to zero mean the beacon was nearer the tracker."},"get_time":{"type":"string","description":"When the scan was recorded, in `YYYY-MM-DD HH:MM:SS` format."},"latitude":{"type":"number","description":"Latitude of the tracker at the time of the scan."},"longitude":{"type":"number","description":"Longitude of the tracker at the time of the scan."},"ext_data":{"type":"object","description":"Additional values the beacon reported. Contents depend on the beacon type: an iBeacon reports `major` and `minor`, a sensor beacon may report `voltage` and `temperature`.","additionalProperties":true}}}}}}
```

## API actions

API base path: `/beacon/data`.

***

## Read BLE beacon data history

> Return BLE beacon scans recorded between \`from\` and \`to\`, sorted by \`get\_time\`.\
> \
> Beacon data is what a tracker saw of the radio tags around it: iBeacon, Teltonika EYE Beacon or Sensor, Eddystone and similar.\
> \
> \*\*Omitting \`trackers\` means every tracker available to the caller\*\*, not none. The interval is additionally clipped by each tracker's history-depth limit, and a tracker whose limit excludes the whole interval contributes nothing rather than raising an error.

```json
{"openapi":"3.1.0","info":{"title":"Navixy Platform API","version":"1.0.0"},"tags":[{"name":"Tracking services","description":"Services supporting tracking rather than the trackers themselves: APN lookup, BLE beacon data, delivery tracking, geocoding, map layers and data forwarding. Resources under the /apn_settings/, /beacon/, /delivery/, /geocoder/, /map_layer/ and /retranslator/ paths."}],"servers":[{"url":"https://api.eu.navixy.com/v2","description":"Navixy production server on European platform"},{"url":"https://api.us.navixy.com/v2","description":"Navixy production server on American platform"},{"url":"https://api.me.navixy.com/v2","description":"Navixy production server on Middle East platform"}],"security":[{"api_key":[]}],"components":{"securitySchemes":{"api_key":{"type":"apiKey","description":"Either a user session hash or an API key, with the \"NVX \" prefix, for example \"NVX 22eac1c27af4be7b9d04da2ce1af111b\". Obtain a session hash from the userAuth operation, or create an API key from the API keys operations. A small number of operations accept a session hash only and reject an API key with error code 4; each says so in its description.","name":"Authorization","in":"header"}},"schemas":{"BeaconDataEntry":{"type":"object","description":"One scan of a BLE beacon by a tracker: which tag was seen, how strongly, and where the tracker was at the time.","properties":{"tracker_id":{"type":"integer","description":"ID of the tracker that saw the beacon, also known as the object ID."},"hardware_id":{"type":"string","description":"Hardware ID of the beacon."},"rssi":{"type":"integer","description":"Received signal strength indicator, in dBm. Values closer to zero mean the beacon was nearer the tracker."},"get_time":{"type":"string","description":"When the scan was recorded, in `YYYY-MM-DD HH:MM:SS` format."},"latitude":{"type":"number","description":"Latitude of the tracker at the time of the scan."},"longitude":{"type":"number","description":"Longitude of the tracker at the time of the scan."},"ext_data":{"type":"object","description":"Additional values the beacon reported. Contents depend on the beacon type: an iBeacon reports `major` and `minor`, a sensor beacon may report `voltage` and `temperature`.","additionalProperties":true}}}},"responses":{"ResponseError":{"description":"Error response object","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Always false."},"status":{"type":"object","description":"Error status. Present only when an error occurred.","properties":{"code":{"type":"integer","description":"An error code in this API, not an HTTP code."},"description":{"type":"string","description":"An error description."}}},"errors":{"type":"array","description":"Per-parameter detail, returned with validation failures such as error code 7. A parameter name here may be an internal field name rather than the documented parameter name.","items":{"type":"object","properties":{"parameter":{"type":"string","description":"Name of the parameter that failed validation."},"error":{"type":"string","description":"What was wrong with it."}}}}}}}}}}},"paths":{"/beacon/data/read":{"post":{"tags":["Tracking services"],"summary":"Read BLE beacon data history","description":"Return BLE beacon scans recorded between `from` and `to`, sorted by `get_time`.\n\nBeacon data is what a tracker saw of the radio tags around it: iBeacon, Teltonika EYE Beacon or Sensor, Eddystone and similar.\n\n**Omitting `trackers` means every tracker available to the caller**, not none. The interval is additionally clipped by each tracker's history-depth limit, and a tracker whose limit excludes the whole interval contributes nothing rather than raising an error.","operationId":"beaconDataRead","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"from":{"type":"string","description":"Start of the period, in `YYYY-MM-DD HH:MM:SS` format."},"to":{"type":"string","description":"End of the period, in `YYYY-MM-DD HH:MM:SS` format. Must be after `from`."},"trackers":{"type":"array","description":"Optional. Tracker IDs. **Omit to search every tracker available to the caller.** Cannot be an empty array.","items":{"type":"integer"}},"beacons":{"type":"array","description":"Optional. Beacon hardware IDs. Each must be 1 to 64 characters. Omit to return data for all beacons.","items":{"type":"string","description":"Beacon hardware ID.","minLength":1,"maxLength":64}}},"required":["from","to"]}}}},"responses":{"200":{"description":"Matching beacon scans","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"`true` if request finished successfully.","readOnly":true},"list":{"type":"array","items":{"$ref":"#/components/schemas/BeaconDataEntry"}}}}}}},"400":{"description":"Bad request. The response body carries the API-level error code in `status.code`. Validation failures also include an `errors` array naming each offending parameter.","$ref":"#/components/responses/ResponseError"},"403":{"description":"Error 208: one of the trackers is blocked, normally because its tariff ended. Error 217: one or more of the tracker IDs does not exist or belongs to another user.","$ref":"#/components/responses/ResponseError"},"default":{"$ref":"#/components/responses/ResponseError"}}}}}}
```

#### Errors

These errors come in addition to the [general error codes](/docs/navixy-api/general/errors.md#error-codes):

* 208 - One of the trackers is blocked, normally because its tariff ended.
* 217 - One or more of the tracker IDs does not exist or belongs to another user.

***

## Read last BLE beacon values

> Return the most recent scan of each BLE beacon currently visible to the given trackers.\
> \
> Callable with an empty body, which reads every tracker available to the caller over the last hour.

```json
{"openapi":"3.1.0","info":{"title":"Navixy Platform API","version":"1.0.0"},"tags":[{"name":"Tracking services","description":"Services supporting tracking rather than the trackers themselves: APN lookup, BLE beacon data, delivery tracking, geocoding, map layers and data forwarding. Resources under the /apn_settings/, /beacon/, /delivery/, /geocoder/, /map_layer/ and /retranslator/ paths."}],"servers":[{"url":"https://api.eu.navixy.com/v2","description":"Navixy production server on European platform"},{"url":"https://api.us.navixy.com/v2","description":"Navixy production server on American platform"},{"url":"https://api.me.navixy.com/v2","description":"Navixy production server on Middle East platform"}],"security":[{"api_key":[]}],"components":{"securitySchemes":{"api_key":{"type":"apiKey","description":"Either a user session hash or an API key, with the \"NVX \" prefix, for example \"NVX 22eac1c27af4be7b9d04da2ce1af111b\". Obtain a session hash from the userAuth operation, or create an API key from the API keys operations. A small number of operations accept a session hash only and reject an API key with error code 4; each says so in its description.","name":"Authorization","in":"header"}},"schemas":{"BeaconDataEntry":{"type":"object","description":"One scan of a BLE beacon by a tracker: which tag was seen, how strongly, and where the tracker was at the time.","properties":{"tracker_id":{"type":"integer","description":"ID of the tracker that saw the beacon, also known as the object ID."},"hardware_id":{"type":"string","description":"Hardware ID of the beacon."},"rssi":{"type":"integer","description":"Received signal strength indicator, in dBm. Values closer to zero mean the beacon was nearer the tracker."},"get_time":{"type":"string","description":"When the scan was recorded, in `YYYY-MM-DD HH:MM:SS` format."},"latitude":{"type":"number","description":"Latitude of the tracker at the time of the scan."},"longitude":{"type":"number","description":"Longitude of the tracker at the time of the scan."},"ext_data":{"type":"object","description":"Additional values the beacon reported. Contents depend on the beacon type: an iBeacon reports `major` and `minor`, a sensor beacon may report `voltage` and `temperature`.","additionalProperties":true}}}},"responses":{"ResponseError":{"description":"Error response object","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Always false."},"status":{"type":"object","description":"Error status. Present only when an error occurred.","properties":{"code":{"type":"integer","description":"An error code in this API, not an HTTP code."},"description":{"type":"string","description":"An error description."}}},"errors":{"type":"array","description":"Per-parameter detail, returned with validation failures such as error code 7. A parameter name here may be an internal field name rather than the documented parameter name.","items":{"type":"object","properties":{"parameter":{"type":"string","description":"Name of the parameter that failed validation."},"error":{"type":"string","description":"What was wrong with it."}}}}}}}}}}},"paths":{"/beacon/data/last_values":{"post":{"tags":["Tracking services"],"summary":"Read last BLE beacon values","description":"Return the most recent scan of each BLE beacon currently visible to the given trackers.\n\nCallable with an empty body, which reads every tracker available to the caller over the last hour.","operationId":"beaconDataLastValues","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"trackers":{"type":"array","description":"Optional. Tracker IDs. **Omit to read every tracker available to the caller.** Cannot be an empty array.","items":{"type":"integer"}},"skip_older_than_seconds":{"type":"integer","description":"Optional. Default 3600. Ignore scans older than this many seconds."}}}}}},"responses":{"200":{"description":"Last beacon values","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"`true` if request finished successfully.","readOnly":true},"list":{"type":"array","items":{"$ref":"#/components/schemas/BeaconDataEntry"}}}}}}},"400":{"description":"Bad request. The response body carries the API-level error code in `status.code`. Validation failures also include an `errors` array naming each offending parameter.","$ref":"#/components/responses/ResponseError"},"403":{"description":"Error 208: one of the trackers is blocked, normally because its tariff ended. Error 217: one or more of the tracker IDs does not exist or belongs to another user.","$ref":"#/components/responses/ResponseError"},"default":{"$ref":"#/components/responses/ResponseError"}}}}}}
```

#### Errors

These errors come in addition to the [general error codes](/docs/navixy-api/general/errors.md#error-codes):

* 208 - One of the trackers is blocked, normally because its tariff ended.
* 217 - One or more of the tracker IDs does not exist or belongs to another user.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://navixy.com/docs/navixy-api/user-api/resources/tracking/beacon.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
