View a public dashboard snapshot
/public/dashboard/{token}
No session; the token is the credential. Every failure is 404 not_found. `fields=meta` returns only dashboard_name, dashboard_description, org_name and captured_at (no widgets), for link previews; it passes the same gates and counts against the same rate limit. A link whose author offered filter choices lists them in `filters` and serves the stored version for `f.<key>=<value>` (up to 8 pairs); a key or value the link does not offer is ignored and the default version is served, never an error. A filter offered as `mode: any` (live) takes any value of its kind: a date preset from its `presets`, one day, or `a..b` of at most 366 days; a select or person value from its options. A selection no stored version holds is read live with the publisher's access, kept for 5 minutes (15 seconds when a widget could not be read), and limited to 30 live reads per link and 10 per viewer per minute (429 rate_limited with Retry-After past either); an invalid or too-long value reads as the default. A table over a collection row query carries `table_page { next_cursor: null, total_count, has_more }`, so the page can say "first 50 of N rows". `live_tables: true` means those tables also answer GET /public/dashboard/{token}/widget/{key}/data and POST .../export.
Path Parameters
The unguessable link token
Query Parameters
meta
curl -X GET 'https://api.elaichi.ai/public/dashboard/<token>' \
-H 'Content-Type: application/json'const response = await fetch('https://api.elaichi.ai/public/dashboard/<token>', {
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>"
headers = {
"Content-Type": "application/json",
}
response = requests.get(url, headers=headers)
print(response.json())