Dashboards

For instructions on how to authenticate to use this endpoint, see API overview.

Endpoints

POST
POST
PATCH
POST
POST
POST
GET

Create dashboards update text tile

Update the markdown body, layout, or color of an existing text tile on a dashboard.

Required API key scopes

dashboard:write

Path parameters

  • id
    integer

Query parameters

  • format
    string
    One of: "json""txt"

Request parameters

  • tile_id
    integer
  • body
    string
  • agent_context
    string | null
  • layouts
  • color
    string | null

Response


Example request

POST /api/projects/:project_id/dashboards/:id/update_text_tile
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl
-H 'Content-Type: application/json'\
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/projects/:project_id/dashboards/:id/update_text_tile/\
-d tile_id="integer"

Example response

Status 200
RESPONSE
{
"id": 0,
"insight": {
"id": 0,
"short_id": "string",
"name": "string",
"derived_name": "string",
"query": {
"embedded": null,
"full": null,
"hidePersonsModal": null,
"hideTooltipOnScroll": null,
"kind": "InsightVizNode",
"showCorrelationTable": null,
"showFilters": null,
"showHeader": null,
"showLastComputation": null,
"showLastComputationRefresh": null,
"showResults": null,
"showTable": null,
"source": {
"aggregation_group_type_index": null,
"breakdownFilter": null,
"calendarHeatmapFilter": null,
"compareFilter": null,
"conversionGoal": null,
"dataColorTheme": null,
"dateRange": null,
"filterTestAccounts": false,
"interval": "day",
"kind": "TrendsQuery",
"modifiers": null,
"properties": [],
"response": null,
"samplingFactor": null,
"series": [
{
"custom_name": null,
"event": null,
"fixedProperties": null,
"kind": "EventsNode",
"limit": null,
"math": null,
"math_group_type_index": null,
"math_hogql": null,
"math_multiplier": null,
"math_property": null,
"math_property_revenue_currency": null,
"math_property_type": null,
"name": null,
"optionalInFunnel": null,
"orderBy": null,
"properties": null,
"response": null,
"version": null
}
],
"tags": null,
"trendsFilter": null,
"version": null
},
"suppressSessionAnalysisWarning": null,
"version": null,
"vizSpecificOptions": null
},
"order": -2147483648,
"deleted": true,
"dashboards": [
0
],
"dashboard_tiles": [
{
"id": 0,
"dashboard_id": 0,
"deleted": true
}
],
"last_refresh": "2019-08-24T14:15:22Z",
"cache_target_age": "2019-08-24T14:15:22Z",
"next_allowed_client_refresh": "2019-08-24T14:15:22Z",
"result": null,
"hasMore": true,
"columns": [
"string"
],
"created_at": "2019-08-24T14:15:22Z",
"created_by": {
"id": 0,
"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
"distinct_id": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"is_email_verified": true,
"hedgehog_config": {},
"role_at_organization": "engineering"
},
"description": "string",
"updated_at": "2019-08-24T14:15:22Z",
"tags": [
null
],
"favorited": true,
"last_modified_at": "2019-08-24T14:15:22Z",
"last_modified_by": {
"id": 0,
"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
"distinct_id": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"is_email_verified": true,
"hedgehog_config": {},
"role_at_organization": "engineering"
},
"is_sample": true,
"effective_restriction_level": 21,
"effective_privilege_level": 21,
"user_access_level": "string",
"timezone": "string",
"is_cached": true,
"query_status": null,
"hogql": "string",
"types": [
null
],
"resolved_date_range": {
"date_from": "2019-08-24T14:15:22Z",
"date_to": "2019-08-24T14:15:22Z"
},
"query_scan": null,
"warnings": [
{
"message": "string",
"schema_name": "string",
"source_id": null,
"source_type": "string",
"status": "string",
"table_name": "string",
"type": "warehouse_sync"
}
],
"_create_in_folder": "string",
"alerts": [
null
],
"filter_override_context": {
"dashboard": null,
"tile": null,
"overridden_dashboard": null
},
"last_viewed_at": "2019-08-24T14:15:22Z",
"search_match_type": "exact"
},
"text": {
"id": 0,
"created_by": {
"id": 0,
"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
"distinct_id": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"is_email_verified": true,
"hedgehog_config": {},
"role_at_organization": "engineering"
},
"last_modified_by": {
"id": 0,
"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
"distinct_id": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"is_email_verified": true,
"hedgehog_config": {},
"role_at_organization": "engineering"
},
"body": "string",
"agent_context": "string",
"dashboard_tiles": [
{
"id": 0,
"dashboard_id": 0,
"deleted": true
}
],
"last_modified_at": "2019-08-24T14:15:22Z",
"team": 0
},
"button_tile": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"created_by": {
"id": 0,
"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
"distinct_id": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"is_email_verified": true,
"hedgehog_config": {},
"role_at_organization": "engineering"
},
"last_modified_by": {
"id": 0,
"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
"distinct_id": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"is_email_verified": true,
"hedgehog_config": {},
"role_at_organization": "engineering"
},
"url": "string",
"text": "string",
"placement": "left",
"dashboard_tiles": [
{
"id": 0,
"dashboard_id": 0,
"deleted": true
}
],
"style": "primary",
"last_modified_at": "2019-08-24T14:15:22Z",
"team": 0
},
"widget": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"created_by": {
"id": 0,
"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
"distinct_id": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"is_email_verified": true,
"hedgehog_config": {},
"role_at_organization": "engineering"
},
"last_modified_by": {
"id": 0,
"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
"distinct_id": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"is_email_verified": true,
"hedgehog_config": {},
"role_at_organization": "engineering"
},
"widget_type": "string",
"name": "string",
"description": "string",
"config": {
"notebookShortId": null,
"snapshotId": null
},
"dashboard_tiles": [
{
"id": 0,
"dashboard_id": 0,
"deleted": true
}
],
"last_modified_at": "2019-08-24T14:15:22Z",
"team": 0
},
"layouts": null,
"color": "string",
"filters_overrides": null,
"show_description": true,
"transparent_background": true
}

Create dashboards widgets batch

Add multiple widget tiles to a dashboard in one atomic request.

Required API key scopes

dashboard:write

Path parameters

  • id
    integer

Query parameters

  • format
    string
    One of: "json""txt"

Request parameters

  • widgets
    Click to open
    array

Response


Example request

POST /api/projects/:project_id/dashboards/:id/widgets/batch
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl
-H 'Content-Type: application/json'\
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/projects/:project_id/dashboards/:id/widgets/batch/\
-d widgets="array"

Example response

Status 201
RESPONSE
{
"tiles": [
{
"id": 0,
"insight": {
"id": 0,
"short_id": "string",
"name": "string",
"derived_name": "string",
"query": {
"embedded": null,
"full": null,
"hidePersonsModal": null,
"hideTooltipOnScroll": null,
"kind": "InsightVizNode",
"showCorrelationTable": null,
"showFilters": null,
"showHeader": null,
"showLastComputation": null,
"showLastComputationRefresh": null,
"showResults": null,
"showTable": null,
"source": {
"aggregation_group_type_index": null,
"breakdownFilter": null,
"calendarHeatmapFilter": null,
"compareFilter": null,
"conversionGoal": null,
"dataColorTheme": null,
"dateRange": null,
"filterTestAccounts": false,
"interval": "day",
"kind": "TrendsQuery",
"modifiers": null,
"properties": [],
"response": null,
"samplingFactor": null,
"series": [
{
"custom_name": null,
"event": null,
"fixedProperties": null,
"kind": "EventsNode",
"limit": null,
"math": null,
"math_group_type_index": null,
"math_hogql": null,
"math_multiplier": null,
"math_property": null,
"math_property_revenue_currency": null,
"math_property_type": null,
"name": null,
"optionalInFunnel": null,
"orderBy": null,
"properties": null,
"response": null,
"version": null
}
],
"tags": null,
"trendsFilter": null,
"version": null
},
"suppressSessionAnalysisWarning": null,
"version": null,
"vizSpecificOptions": null
},
"order": -2147483648,
"deleted": true,
"dashboards": [
0
],
"dashboard_tiles": [
{
"id": 0,
"dashboard_id": 0,
"deleted": true
}
],
"last_refresh": "2019-08-24T14:15:22Z",
"cache_target_age": "2019-08-24T14:15:22Z",
"next_allowed_client_refresh": "2019-08-24T14:15:22Z",
"result": null,
"hasMore": true,
"columns": [
"string"
],
"created_at": "2019-08-24T14:15:22Z",
"created_by": {
"id": 0,
"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
"distinct_id": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"is_email_verified": true,
"hedgehog_config": {},
"role_at_organization": "engineering"
},
"description": "string",
"updated_at": "2019-08-24T14:15:22Z",
"tags": [
null
],
"favorited": true,
"last_modified_at": "2019-08-24T14:15:22Z",
"last_modified_by": {
"id": 0,
"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
"distinct_id": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"is_email_verified": true,
"hedgehog_config": {},
"role_at_organization": "engineering"
},
"is_sample": true,
"effective_restriction_level": 21,
"effective_privilege_level": 21,
"user_access_level": "string",
"timezone": "string",
"is_cached": true,
"query_status": null,
"hogql": "string",
"types": [
null
],
"resolved_date_range": {
"date_from": "2019-08-24T14:15:22Z",
"date_to": "2019-08-24T14:15:22Z"
},
"query_scan": null,
"warnings": [
{
"message": "string",
"schema_name": "string",
"source_id": null,
"source_type": "string",
"status": "string",
"table_name": "string",
"type": "warehouse_sync"
}
],
"_create_in_folder": "string",
"alerts": [
null
],
"filter_override_context": {
"dashboard": null,
"tile": null,
"overridden_dashboard": null
},
"last_viewed_at": "2019-08-24T14:15:22Z",
"search_match_type": "exact"
},
"text": {
"id": 0,
"created_by": {
"id": 0,
"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
"distinct_id": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"is_email_verified": true,
"hedgehog_config": {},
"role_at_organization": "engineering"
},
"last_modified_by": {
"id": 0,
"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
"distinct_id": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"is_email_verified": true,
"hedgehog_config": {},
"role_at_organization": "engineering"
},
"body": "string",
"agent_context": "string",
"dashboard_tiles": [
{
"id": 0,
"dashboard_id": 0,
"deleted": true
}
],
"last_modified_at": "2019-08-24T14:15:22Z",
"team": 0
},
"button_tile": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"created_by": {
"id": 0,
"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
"distinct_id": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"is_email_verified": true,
"hedgehog_config": {},
"role_at_organization": "engineering"
},
"last_modified_by": {
"id": 0,
"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
"distinct_id": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"is_email_verified": true,
"hedgehog_config": {},
"role_at_organization": "engineering"
},
"url": "string",
"text": "string",
"placement": "left",
"dashboard_tiles": [
{
"id": 0,
"dashboard_id": 0,
"deleted": true
}
],
"style": "primary",
"last_modified_at": "2019-08-24T14:15:22Z",
"team": 0
},
"widget": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"created_by": {
"id": 0,
"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
"distinct_id": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"is_email_verified": true,
"hedgehog_config": {},
"role_at_organization": "engineering"
},
"last_modified_by": {
"id": 0,
"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
"distinct_id": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"is_email_verified": true,
"hedgehog_config": {},
"role_at_organization": "engineering"
},
"widget_type": "string",
"name": "string",
"description": "string",
"config": {
"notebookShortId": null,
"snapshotId": null
},
"dashboard_tiles": [
{
"id": 0,
"dashboard_id": 0,
"deleted": true
}
],
"last_modified_at": "2019-08-24T14:15:22Z",
"team": 0
},
"layouts": null,
"color": "string",
"filters_overrides": null,
"show_description": true,
"transparent_background": true
}
]
}

Update dashboards update widgets

Update the settings of existing widgets in place, atomically — config, name, and description.

Each entry targets a widget by its tile_id and reuses the same write path as the dashboard PATCH endpoint. The widget_type is immutable. This edits widget settings only (config, name, description); tile placement (layouts, show_description) is a dashboard concern — use the dashboard PATCH endpoint or reorder_tiles for that. All updates succeed or fail together. To add new widgets, use the widgets/batch POST endpoint; to remove one, use delete_tile.

Required API key scopes

dashboard:write

Path parameters

  • id
    integer

Query parameters

  • format
    string
    One of: "json""txt"

Request parameters

  • widgets
    Click to open
    array

Response


Example request

PATCH /api/projects/:project_id/dashboards/:id/widgets/batch_update
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl -X PATCH \
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/projects/:project_id/dashboards/:id/widgets/batch_update/\
-d widgets="array"

Example response

Status 200
RESPONSE
{
"tiles": [
{
"id": 0,
"insight": {
"id": 0,
"short_id": "string",
"name": "string",
"derived_name": "string",
"query": {
"embedded": null,
"full": null,
"hidePersonsModal": null,
"hideTooltipOnScroll": null,
"kind": "InsightVizNode",
"showCorrelationTable": null,
"showFilters": null,
"showHeader": null,
"showLastComputation": null,
"showLastComputationRefresh": null,
"showResults": null,
"showTable": null,
"source": {
"aggregation_group_type_index": null,
"breakdownFilter": null,
"calendarHeatmapFilter": null,
"compareFilter": null,
"conversionGoal": null,
"dataColorTheme": null,
"dateRange": null,
"filterTestAccounts": false,
"interval": "day",
"kind": "TrendsQuery",
"modifiers": null,
"properties": [],
"response": null,
"samplingFactor": null,
"series": [
{
"custom_name": null,
"event": null,
"fixedProperties": null,
"kind": "EventsNode",
"limit": null,
"math": null,
"math_group_type_index": null,
"math_hogql": null,
"math_multiplier": null,
"math_property": null,
"math_property_revenue_currency": null,
"math_property_type": null,
"name": null,
"optionalInFunnel": null,
"orderBy": null,
"properties": null,
"response": null,
"version": null
}
],
"tags": null,
"trendsFilter": null,
"version": null
},
"suppressSessionAnalysisWarning": null,
"version": null,
"vizSpecificOptions": null
},
"order": -2147483648,
"deleted": true,
"dashboards": [
0
],
"dashboard_tiles": [
{
"id": 0,
"dashboard_id": 0,
"deleted": true
}
],
"last_refresh": "2019-08-24T14:15:22Z",
"cache_target_age": "2019-08-24T14:15:22Z",
"next_allowed_client_refresh": "2019-08-24T14:15:22Z",
"result": null,
"hasMore": true,
"columns": [
"string"
],
"created_at": "2019-08-24T14:15:22Z",
"created_by": {
"id": 0,
"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
"distinct_id": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"is_email_verified": true,
"hedgehog_config": {},
"role_at_organization": "engineering"
},
"description": "string",
"updated_at": "2019-08-24T14:15:22Z",
"tags": [
null
],
"favorited": true,
"last_modified_at": "2019-08-24T14:15:22Z",
"last_modified_by": {
"id": 0,
"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
"distinct_id": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"is_email_verified": true,
"hedgehog_config": {},
"role_at_organization": "engineering"
},
"is_sample": true,
"effective_restriction_level": 21,
"effective_privilege_level": 21,
"user_access_level": "string",
"timezone": "string",
"is_cached": true,
"query_status": null,
"hogql": "string",
"types": [
null
],
"resolved_date_range": {
"date_from": "2019-08-24T14:15:22Z",
"date_to": "2019-08-24T14:15:22Z"
},
"query_scan": null,
"warnings": [
{
"message": "string",
"schema_name": "string",
"source_id": null,
"source_type": "string",
"status": "string",
"table_name": "string",
"type": "warehouse_sync"
}
],
"_create_in_folder": "string",
"alerts": [
null
],
"filter_override_context": {
"dashboard": null,
"tile": null,
"overridden_dashboard": null
},
"last_viewed_at": "2019-08-24T14:15:22Z",
"search_match_type": "exact"
},
"text": {
"id": 0,
"created_by": {
"id": 0,
"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
"distinct_id": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"is_email_verified": true,
"hedgehog_config": {},
"role_at_organization": "engineering"
},
"last_modified_by": {
"id": 0,
"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
"distinct_id": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"is_email_verified": true,
"hedgehog_config": {},
"role_at_organization": "engineering"
},
"body": "string",
"agent_context": "string",
"dashboard_tiles": [
{
"id": 0,
"dashboard_id": 0,
"deleted": true
}
],
"last_modified_at": "2019-08-24T14:15:22Z",
"team": 0
},
"button_tile": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"created_by": {
"id": 0,
"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
"distinct_id": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"is_email_verified": true,
"hedgehog_config": {},
"role_at_organization": "engineering"
},
"last_modified_by": {
"id": 0,
"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
"distinct_id": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"is_email_verified": true,
"hedgehog_config": {},
"role_at_organization": "engineering"
},
"url": "string",
"text": "string",
"placement": "left",
"dashboard_tiles": [
{
"id": 0,
"dashboard_id": 0,
"deleted": true
}
],
"style": "primary",
"last_modified_at": "2019-08-24T14:15:22Z",
"team": 0
},
"widget": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"created_by": {
"id": 0,
"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
"distinct_id": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"is_email_verified": true,
"hedgehog_config": {},
"role_at_organization": "engineering"
},
"last_modified_by": {
"id": 0,
"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
"distinct_id": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"is_email_verified": true,
"hedgehog_config": {},
"role_at_organization": "engineering"
},
"widget_type": "string",
"name": "string",
"description": "string",
"config": {
"notebookShortId": null,
"snapshotId": null
},
"dashboard_tiles": [
{
"id": 0,
"dashboard_id": 0,
"deleted": true
}
],
"last_modified_at": "2019-08-24T14:15:22Z",
"team": 0
},
"layouts": null,
"color": "string",
"filters_overrides": null,
"show_description": true,
"transparent_background": true
}
]
}

Create dashboards bulk update tags

Bulk update tags on multiple objects.

PAT access: this action has no required_scopes= on the decorator — inheriting viewsets must add "bulk_update_tags" to their scope_object_write_actions list to accept personal API keys. Without that opt-in, APIScopePermission rejects PAT requests with "This action does not support personal API key access". Done per-viewset so granting <scope>:write for one resource doesn't leak access to sibling resources that share this mixin.

Accepts:

  • {"ids": [...], "action": "add"|"remove"|"set", "tags": ["tag1", "tag2"]}

Actions:

  • "add": Add tags to existing tags on each object
  • "remove": Remove specific tags from each object
  • "set": Replace all tags on each object with the provided list

Query parameters

  • format
    string
    One of: "json""txt"

Request parameters

  • ids
    array
  • action
  • tags
    array

Response


Example request

POST /api/projects/:project_id/dashboards/bulk_update_tags
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl
-H 'Content-Type: application/json'\
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/projects/:project_id/dashboards/bulk_update_tags/\
-d ids="array",\
-d action=undefined,\
-d tags="array"

Example response

Status 200
RESPONSE
{
"updated": [
{
"id": 0,
"tags": [
"string"
]
}
],
"skipped": [
{
"id": 0,
"reason": "string"
}
]
}

Create dashboards create from template json

Query parameters

  • format
    string
    One of: "json""txt"

Request parameters

  • name
    string | null
  • description
    string
  • pinned
    boolean
  • deleted
    boolean
  • breakdown_colors
    Click to open
    array | null
  • data_color_theme_id
    integer | null
  • tags
    array
  • restriction_level
  • last_refresh
    string | null
  • quick_filter_ids
    array | null
  • grid_spacing
  • layout_compaction
  • use_template
    string
  • use_dashboard
    integer | null
  • delete_insights
    boolean
    Default: false
  • _create_in_folder
    string

Example request

POST /api/projects/:project_id/dashboards/create_from_template_json
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl
-H 'Content-Type: application/json'\
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/projects/:project_id/dashboards/create_from_template_json/\
-d name="string"

Example response

Status 200 No response body

Create dashboards create unlisted dashboard

Creates an unlisted dashboard from template by tag. Enforces uniqueness (one per tag per team). Returns 409 if unlisted dashboard with this tag already exists.

Query parameters

  • format
    string
    One of: "json""txt"

Request parameters

  • name
    string | null
  • description
    string
  • pinned
    boolean
  • deleted
    boolean
  • breakdown_colors
    Click to open
    array | null
  • data_color_theme_id
    integer | null
  • tags
    array
  • restriction_level
  • last_refresh
    string | null
  • quick_filter_ids
    array | null
  • grid_spacing
  • layout_compaction
  • use_template
    string
  • use_dashboard
    integer | null
  • delete_insights
    boolean
    Default: false
  • _create_in_folder
    string

Example request

POST /api/projects/:project_id/dashboards/create_unlisted_dashboard
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl
-H 'Content-Type: application/json'\
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/projects/:project_id/dashboards/create_unlisted_dashboard/\
-d name="string"

Example response

Status 200 No response body

Retrieve dashboards widget catalog

List registered dashboard widget types and per-type config_schema documentation for agents.

Required API key scopes

dashboard:read

Query parameters

  • format
    string
    One of: "json""txt"

Response


Example request

GET /api/projects/:project_id/dashboards/widget_catalog
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl \
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/projects/:project_id/dashboards/widget_catalog/

Example response

Status 200
RESPONSE
{
"results": [
{
"widget_type": "notebook_widget",
"group_id": "string",
"group_label": "string",
"label": "string",
"description": "string",
"config_schema": {
"notebookShortId": null,
"snapshotId": null
},
"required_product_access": "string",
"live": true
}
]
}