Dashboards
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
50Successful Response
Validation Error
GET /v1/{workspace_id}/dashboards HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"items": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"workspace_id": "123e4567-e89b-12d3-a456-426614174000",
"slug": "text",
"title": "text",
"description": "text",
"page_context": "text",
"panels": [
{
"ANY_ADDITIONAL_PROPERTY": "anything"
}
],
"filters": [
{
"ANY_ADDITIONAL_PROPERTY": "anything"
}
],
"refresh_interval": 1,
"is_active": true,
"created_by": "text",
"created_at": "2026-01-01T00:00:00.000Z",
"updated_at": "2026-01-01T00:00:00.000Z"
}
],
"has_more": true,
"continuation_token": null
}API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
^[a-z0-9][a-z0-9\-]*$300Successful Response
URL-safe identifier
Dashboard display title
Human-readable description
Developer console page where this dashboard renders
Auto-refresh interval in seconds
Whether the dashboard is active
Creator identifier
When the dashboard was created
When the dashboard was last updated
Validation Error
POST /v1/{workspace_id}/dashboards HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 197
{
"slug": "text",
"title": "text",
"description": "text",
"page_context": "home",
"panels": [
{
"ANY_ADDITIONAL_PROPERTY": "anything"
}
],
"filters": [
{
"ANY_ADDITIONAL_PROPERTY": "anything"
}
],
"refresh_interval": 300
}{
"id": "123e4567-e89b-12d3-a456-426614174000",
"workspace_id": "123e4567-e89b-12d3-a456-426614174000",
"slug": "text",
"title": "text",
"description": "text",
"page_context": "text",
"panels": [
{
"ANY_ADDITIONAL_PROPERTY": "anything"
}
],
"filters": [
{
"ANY_ADDITIONAL_PROPERTY": "anything"
}
],
"refresh_interval": 1,
"is_active": true,
"created_by": "text",
"created_at": "2026-01-01T00:00:00.000Z",
"updated_at": "2026-01-01T00:00:00.000Z"
}API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Successful Response
URL-safe identifier
Dashboard display title
Human-readable description
Developer console page where this dashboard renders
Auto-refresh interval in seconds
Whether the dashboard is active
Creator identifier
When the dashboard was created
When the dashboard was last updated
Validation Error
GET /v1/{workspace_id}/dashboards/{dashboard_id} HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"workspace_id": "123e4567-e89b-12d3-a456-426614174000",
"slug": "text",
"title": "text",
"description": "text",
"page_context": "text",
"panels": [
{
"ANY_ADDITIONAL_PROPERTY": "anything"
}
],
"filters": [
{
"ANY_ADDITIONAL_PROPERTY": "anything"
}
],
"refresh_interval": 1,
"is_active": true,
"created_by": "text",
"created_at": "2026-01-01T00:00:00.000Z",
"updated_at": "2026-01-01T00:00:00.000Z"
}API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
^[a-z0-9][a-z0-9\-]*$Successful Response
URL-safe identifier
Dashboard display title
Human-readable description
Developer console page where this dashboard renders
Auto-refresh interval in seconds
Whether the dashboard is active
Creator identifier
When the dashboard was created
When the dashboard was last updated
Validation Error
PUT /v1/{workspace_id}/dashboards/{dashboard_id} HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 195
{
"slug": "text",
"title": "text",
"description": "text",
"page_context": "home",
"panels": [
{
"ANY_ADDITIONAL_PROPERTY": "anything"
}
],
"filters": [
{
"ANY_ADDITIONAL_PROPERTY": "anything"
}
],
"refresh_interval": 1
}{
"id": "123e4567-e89b-12d3-a456-426614174000",
"workspace_id": "123e4567-e89b-12d3-a456-426614174000",
"slug": "text",
"title": "text",
"description": "text",
"page_context": "text",
"panels": [
{
"ANY_ADDITIONAL_PROPERTY": "anything"
}
],
"filters": [
{
"ANY_ADDITIONAL_PROPERTY": "anything"
}
],
"refresh_interval": 1,
"is_active": true,
"created_by": "text",
"created_at": "2026-01-01T00:00:00.000Z",
"updated_at": "2026-01-01T00:00:00.000Z"
}API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Successful Response
No content
Validation Error
DELETE /v1/{workspace_id}/dashboards/{dashboard_id} HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
No content
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Successful Response
URL-safe identifier
Dashboard display title
Human-readable description
Developer console page where this dashboard renders
Auto-refresh interval in seconds
Whether the dashboard is active
Creator identifier
When the dashboard was created
When the dashboard was last updated
Validation Error
GET /v1/{workspace_id}/dashboards/by-slug/{slug} HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"workspace_id": "123e4567-e89b-12d3-a456-426614174000",
"slug": "text",
"title": "text",
"description": "text",
"page_context": "text",
"panels": [
{
"ANY_ADDITIONAL_PROPERTY": "anything"
}
],
"filters": [
{
"ANY_ADDITIONAL_PROPERTY": "anything"
}
],
"refresh_interval": 1,
"is_active": true,
"created_by": "text",
"created_at": "2026-01-01T00:00:00.000Z",
"updated_at": "2026-01-01T00:00:00.000Z"
}Execute all panel queries and return results for rendering.
SQL injection is mitigated by ResearchQueryService.execute_sql, which calls _validate_read_only_sql to block DROP/TRUNCATE/ALTER/CREATE/GRANT/REVOKE/ DELETE/UPDATE/INSERT statements. Catalog-level access is further restricted by the service principal's Databricks grants (read-only on analytics catalog).
Every panel query MUST reference the :ws_id parameter so that ResearchQueryService binds it to the requesting workspace. Queries without this binding are rejected to prevent cross-tenant data access.
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Successful Response
Validation Error
POST /v1/{workspace_id}/dashboards/{dashboard_id}/execute HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 56
{
"filter_values": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}{
"dashboard_id": "123e4567-e89b-12d3-a456-426614174000",
"results": [
{
"panel_id": "text",
"columns": [
"text"
],
"rows": [
[]
],
"error": "text"
}
]
}Last updated
Was this helpful?

