API & WebSocket Guide
Domains
REST Endpoint to query specific reports
Authentication
Headers
All routes require the following two headers for user authentication:
Authorization
The user’s unique identifier, provided as a UUID (Universally Unique IDentifier).
X-Authorization-Timestamp
The current timestamp, with precision up to milliseconds. The timestamp must closely synchronize with the server time, allowing a maximum discrepancy of 5 seconds (by default).
API endpoints
Endpoint
/api/v1/reports
HTTP GET
Returns a single report for a given timestamp.
feedID
: A Data Streams feed ID.timestamp
: The Unix timestamp for the report.
Sample request
GET /api/v1/reports?feedID=<feedID>×tamp=<timestamp>
Sample response
Endpoint
/api/v1/reports/latest
HTTP GET
feedID
: A Data Streams feed ID.
Sample request
GET /api/v1/reports/latest?feedID=<feedID>
Sample response
Endpoint
/api/v1/reports/bulk
HTTP GET
Return a report for multiple FeedIDs at a given timestamp.
feedIDs
: A comma-separated list of Data Streams feed IDs.timestamp
: The Unix timestamp for the reports or the string 'latest' for getting the latest reports.
Sample request
GET /api/v1/reports/bulk?feedIDs=<FeedID1>,<FeedID2>,...×tamp=<timestamp>
GET /api/v1/reports/bulk?feedIDs=<FeedID1>,<FeedID2>,...×tamp=latest
Sample response
Endpoint
/api/v1/reports/page
HTTP GET
Return multiple sequential reports for a single FeedID, starting at a given timestamp.
feedID
: A Data Streams feed ID.startTimestamp
: The Unix timestamp for the first report.limit
(optional): The number of reports to return.
Sample request
GET /api/v1/reports/page?feedID=<FeedID>&startTimestamp=<StartTimestamp>&limit=<Limit>
Sample response
Establish a streaming WebSocket connection that sends reports for the given feedID(s) after they are verified.
Endpoint
/api/v1/ws
WebSocket
feedIDs
: A comma-separated list of Data Streams feed IDs.
Sample request
GET /api/v1/ws?feedIDs=<feedID1>,<feedID2>,...
Sample response
Error response codes
400 Bad Request
This error is triggered when:
There is any missing/malformed query argument.
Required headers are missing or provided with incorrect values.
401 Unauthorized User
This error is triggered when:
Authentication fails, typically because the HMAC signature provided by the client doesn't match the one expected by the server.
A user requests access to a feed without the appropriate permission or that does not exist.
500 Internal Server
Indicates an unexpected condition encountered by the server, preventing it from fulfilling the request. This error typically points to issues on the server side.
206 Missing data (/bulk
endpoint only)
Indicates that at least one feed ID data is missing from the report. E.g., you requested a report for feed IDs <feedID1>
, <feedID2>
, and <feedID3>
at a given timestamp. If data for <feedID2>
is missing from the report (not available yet at the specified timestamp), you get [<feedID1 data>, <feedID3 data>]
and a 206 response.
Last updated