List dashboards
/dashboard
Query Parameters
Substring match on the dashboard's name or description. LIKE wildcards are matched literally. Max 200 characters.
Only dashboards the caller may edit. Applied in the query before paging, so a page is never empty while a later one is not.
Response Body
The guard on PUT /dashboard/{id}/draft. Moves on every draft save, publish and discard.
A pending draft exists. Only a caller with can_manage is ever shown the draft itself.
The live dashboard was saved after the pending draft began, so publishing would replace that save. Only ever true for a caller with can_manage; the Elaichi app warns in words and sends live_revision on publish only after the person confirms.
The person's picture: their stored profile picture, else a Gravatar URL (d=404, 96px) derived from their email (the address itself is not sent), else null. Draw initials when it is null or the image fails to load.
At most three sources the caller can read. The total is source_summary; the full set is sources on the detail.
4 properties
collectiontoolboxautomation
The connector slug when the source has exactly one; null otherwise, never guessed.
2 properties
draft_only: never published, so only editors can open it. published_with_changes: live, with a pending draft.
publisheddraft_onlypublished_with_changes
The connected AI client's display name ("Claude") when updated_via is mcp; null when that client is unknown. Never an internal id.
How the last edit was made; null for edits that predate the draft layer.
consoleagentmcpapinull
curl -X GET 'https://api.elaichi.ai/dashboard' \
-H 'Authorization: Bearer $ELAICHI_API_TOKEN' \
-H 'Content-Type: application/json'const response = await fetch('https://api.elaichi.ai/dashboard', {
method: 'GET',
headers: {
'Authorization': 'Bearer ' + process.env.ELAICHI_API_TOKEN,
'Content-Type': 'application/json',
},
});
const data = await response.json();
console.log(data);import os
import requests
url = "https://api.elaichi.ai/dashboard"
headers = {
"Authorization": f"Bearer {os.environ['ELAICHI_API_TOKEN']}",
"Content-Type": "application/json",
}
response = requests.get(url, headers=headers)
print(response.json())