Skip to content
GET /public/dashboard/{token}/widget/{key}/data

No session; the token is the credential. Only on a link with `live_tables: true`, for a table over a collection row query that the snapshot shows (the widgets carrying `table_page`). Read live with the publisher's access and every public scrub (no protected field, members as "A member"). `vc` is base64url JSON of at most 4,096 bytes, `{ q?, where?, sort?, columns? }`, checked against the table's viewer_controls as for a signed-in viewer; `columns` picks a subset of `table_controls.columns`. `f.<key>` pairs are read as on the view. `cursor` is the sealed `table_page.next_cursor` of the previous page; send the same `vc` (columns may differ) and `f.*` with it. A link that does not answer, live tables off, a widget the snapshot does not show and a publisher who can no longer read for the link are all 404 not_found. 400 viewer_control_invalid { details.issues } for a control off the allowlist or an unknown column; 400 invalid_request for a bad cursor. A page nobody asked for in the last 5 minutes counts against the link's table budget (60 per minute, 20 per viewer; 429 rate_limited with Retry-After).

Path Parameters

tokenstring
required·

The unguessable link token

keystring
required·

The table widget key

Query Parameters

tzstring

IANA zone for dates; an invalid one reads as UTC.

cursorstring
vcstring

Response Body

table_pageobject
required
has_moreboolean
next_cursorstring,null
total_countinteger,null
table_controlsobject
appliedobject,null
can_exportboolean
columnsobject[]

Every column the viewer may show or hide with vc.columns.

2 properties
keystring
labelstring
filtersobject[]
searchboolean
sortsobject[]
2 properties
fieldstring
labelstring
curl -X GET 'https://api.elaichi.ai/public/dashboard/<token>/widget/<key>/data' \
  -H 'Content-Type: application/json'
const response = await fetch('https://api.elaichi.ai/public/dashboard/<token>/widget/<key>/data', {
  method: 'GET',
  headers: {
    'Content-Type': 'application/json',
  },
});

const data = await response.json();
console.log(data);
import os
import requests

url = "https://api.elaichi.ai/public/dashboard/<token>/widget/<key>/data"
headers = {
    "Content-Type": "application/json",
}

response = requests.get(url, headers=headers)
print(response.json())