points.raw (version 2)
Individual readings of up to 200 points over [from, to) (up to 31 days), ordered by point then time. Prefer points.timeseries or points.summary for analysis; use this to inspect exact readings. Pages: pass nextCursor back until it is null. Each page has one series per point that has readings in it, so merge pages by pointId.
bearerAuthorizationBearer <JWT>A signed-in Relynk user's access token: OAuth 2.0 authorization code with PKCE at https://auth.relynk.io/authorize and https://auth.relynk.io/oauth/token, with audience https://ai.relynk.io/builder. The caller sees exactly what that user may see.
tenantId?stringThe tenant to read. May be left out when the caller belongs to exactly one tenant; GET /me lists them.
uuidapplication/json- body
pointIds*array<>Point ids (from points.list), at most 200
1 <= items <= 200from*stringStart, inclusive: "YYYY-MM", "YYYY-MM-DD" (Oslo midnight) or ISO 8601 with offset, e.g. "2026-09-01T06:00:00+02:00"
to*stringEnd, exclusive: "YYYY-MM", "YYYY-MM-DD" (Oslo midnight) or ISO 8601 with offset, e.g. "2026-09-01T06:00:00+02:00"
limit?integerReadings per page, across all points
1 <= value <= 1000005000cursor?nextCursor from the previous page; omit for the first page
The function output
application/json- response
timeZone*stringseries*array<>nextCursor*|Pass as cursor for the next page; null on the last
curl -X POST 'https://ai.relynk.io/builder/v1/points.raw/v2' \ -H 'Content-Type: application/json' \ -d '{ "pointIds": [ "077ab0e7-997d-450a-aa83-a0ee4c7f1644" ], "from": "string", "to": "string"}'{ "timeZone": "Europe/Oslo", "series": [ { "pointId": "string", "t": [ "string" ], "value": [ 0 ], "text": [ "string" ] } ], "nextCursor": { "pointId": "20a7be04-0667-469f-8fa4-da6cf02369c8", "time": "string" }}points.raw (version 1) POST
Individual readings of up to 20 points over [from, to) (up to 31 days), ordered by point then time. Prefer points.timeseries or points.summary for analysis; use this to inspect exact readings. Pages: pass nextCursor back until it is null. Each page has one series per point that has readings in it, so merge pages by pointId.
points.summary (version 1) POST
One summary per point over [from, to) (up to 380 days): count, min and max with their times, average, sum, and first and last reading with their times. Cheaper than points.timeseries when one number per point is enough, e.g. the warmest room last month.