Get a dashboard
/dashboard/{id}
Path Parameters
Resource id
Response Body
assistant_disabledllm_not_configurednot_permittednull
can_manage, there is a draft, and the dashboard has been published (a never-published dashboard has no live version to go back to).
can_manage and there is a draft to publish.
The pending draft, present only for a caller with can_manage; everyone else sees the published definition.
The AI client's display name, as on the dashboard itself.
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.
Why publishing would fail right now (a widget that does not validate), else null. A source the publisher cannot read is checked by the publish itself.
At most three sources the caller can read. The total is source_summary; the full set is sources on the detail.
collectiontoolboxautomation
The connector slug when the source has exactly one; null otherwise, never guessed.
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/<id>' \
-H 'Authorization: Bearer $ELAICHI_API_TOKEN' \
-H 'Content-Type: application/json'const response = await fetch('https://api.elaichi.ai/dashboard/<id>', {
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/<id>"
headers = {
"Authorization": f"Bearer {os.environ['ELAICHI_API_TOKEN']}",
"Content-Type": "application/json",
}
response = requests.get(url, headers=headers)
print(response.json())