Core-8

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

Endpoints

GET
POST
GET
PATCH
DELETE
POST
GET
GET
POST
GET
POST
DELETE
POST
GET
PATCH
DELETE
POST
POST

List all dashboard templates

Required API key scopes

dashboard_template:read

Path parameters

  • project_id
    string

Query parameters

  • is_featured
    boolean
  • limit
    integer
  • offset
    integer
  • ordering
    string
    One of: "-created_at""-template_name""created_at""template_name"
  • scope
    string
    One of: "feature_flag""global""team"

Response


Example request

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

Example response

Status 200
RESPONSE
{
"count": 123,
"next": "http://api.example.org/accounts/?offset=400&limit=100",
"previous": "http://api.example.org/accounts/?offset=200&limit=100",
"results": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"template_name": "string",
"dashboard_description": "string",
"dashboard_filters": null,
"tags": [
"string"
],
"tiles": null,
"variables": null,
"deleted": true,
"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": {
"property1": null,
"property2": null
},
"role_at_organization": "engineering"
},
"image_url": "string",
"team_id": 0,
"scope": "team",
"availability_contexts": [
"string"
],
"is_featured": true
}
]
}

Create dashboard templates

Required API key scopes

dashboard_template:write

Path parameters

  • project_id
    string

Request parameters

  • template_name
    string
  • dashboard_description
    string
  • dashboard_filters
  • tags
    array
  • tiles
  • variables
  • deleted
    boolean
  • image_url
    string
  • scope
  • availability_contexts
    array
  • is_featured
    boolean

Response


Example request

POST /api/projects/:project_id/dashboard_templates
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/dashboard_templates/\
-d template_name="string"

Example response

Status 201
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"template_name": "string",
"dashboard_description": "string",
"dashboard_filters": null,
"tags": [
"string"
],
"tiles": null,
"variables": null,
"deleted": true,
"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": {
"property1": null,
"property2": null
},
"role_at_organization": "engineering"
},
"image_url": "string",
"team_id": 0,
"scope": "team",
"availability_contexts": [
"string"
],
"is_featured": true
}

Retrieve dashboard templates

Required API key scopes

dashboard_template:read

Path parameters

  • id
    string
  • project_id
    string

Response


Example request

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

Example response

Status 200
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"template_name": "string",
"dashboard_description": "string",
"dashboard_filters": null,
"tags": [
"string"
],
"tiles": null,
"variables": null,
"deleted": true,
"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": {
"property1": null,
"property2": null
},
"role_at_organization": "engineering"
},
"image_url": "string",
"team_id": 0,
"scope": "team",
"availability_contexts": [
"string"
],
"is_featured": true
}

Update dashboard templates

Required API key scopes

dashboard_template:write

Path parameters

  • id
    string
  • project_id
    string

Request parameters

  • template_name
    string
  • dashboard_description
    string
  • dashboard_filters
  • tags
    array
  • tiles
  • variables
  • deleted
    boolean
  • image_url
    string
  • scope
  • availability_contexts
    array
  • is_featured
    boolean

Response


Example request

PATCH /api/projects/:project_id/dashboard_templates/:id
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/dashboard_templates/:id/\
-d template_name="string"

Example response

Status 200
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"template_name": "string",
"dashboard_description": "string",
"dashboard_filters": null,
"tags": [
"string"
],
"tiles": null,
"variables": null,
"deleted": true,
"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": {
"property1": null,
"property2": null
},
"role_at_organization": "engineering"
},
"image_url": "string",
"team_id": 0,
"scope": "team",
"availability_contexts": [
"string"
],
"is_featured": true
}

Delete dashboard templates

Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

Required API key scopes

dashboard_template:write

Path parameters

  • id
    string
  • project_id
    string

Example request

DELETE /api/projects/:project_id/dashboard_templates/:id
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl -X DELETE \
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/projects/:project_id/dashboard_templates/:id/

Example response

Status 405 No response body

Create dashboard templates copy between projects

Creates a new team-scoped template in the target project (URL) from a team-scoped source template in the same organization. Global and feature-flag templates return 400. Cross-organization or inaccessible sources return 404. Source and destination projects must differ (400 if equal). Conflicting template_name values on the destination are auto-suffixed with (copy), (copy 2), …

Path parameters

  • project_id
    string

Request parameters

  • source_template_id
    string

Response


Example request

POST /api/projects/:project_id/dashboard_templates/copy_between_projects
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/dashboard_templates/copy_between_projects/\
-d source_template_id="string"

Example response

Status 201
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"template_name": "string",
"dashboard_description": "string",
"dashboard_filters": null,
"tags": [
"string"
],
"tiles": null,
"variables": null,
"deleted": true,
"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": {
"property1": null,
"property2": null
},
"role_at_organization": "engineering"
},
"image_url": "string",
"team_id": 0,
"scope": "team",
"availability_contexts": [
"string"
],
"is_featured": true
}

Retrieve dashboard templates json schema

Path parameters

  • project_id
    string

Example request

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

Example response

Status 200 No response body

List all dashboards

Required API key scopes

dashboard:read

Path parameters

  • project_id
    string

Query parameters

  • format
    string
    One of: "json""txt"
  • limit
    integer
  • offset
    integer

Response


Example request

GET /api/projects/:project_id/dashboards
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/

Example response

Status 200
RESPONSE
{
"count": 123,
"next": "http://api.example.org/accounts/?offset=400&limit=100",
"previous": "http://api.example.org/accounts/?offset=200&limit=100",
"results": [
{
"id": 0,
"name": "string",
"description": "string",
"pinned": true,
"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": {
"property1": null,
"property2": null
},
"role_at_organization": "engineering"
},
"last_accessed_at": "2019-08-24T14:15:22Z",
"last_viewed_at": "2019-08-24T14:15:22Z",
"is_shared": true,
"deleted": true,
"creation_mode": "default",
"tags": [
null
],
"restriction_level": 21,
"effective_restriction_level": 21,
"effective_privilege_level": 21,
"user_access_level": "string",
"access_control_version": "string",
"last_refresh": "2019-08-24T14:15:22Z",
"team_id": 0
}
]
}

Create dashboards

Required API key scopes

dashboard:write

Path parameters

  • project_id
    string

Query parameters

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

Request parameters

  • name
    string
  • description
    string
  • pinned
    boolean
  • last_accessed_at
    string
  • deleted
    boolean
  • breakdown_colors
  • data_color_theme_id
    integer
  • tags
    array
  • restriction_level
  • last_refresh
    string
  • quick_filter_ids
    array
  • use_template
    string
  • use_dashboard
    integer
  • delete_insights
    boolean
    Default: false
  • _create_in_folder
    string

Response


Example request

POST /api/projects/:project_id/dashboards
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/\
-d name="string"

Example response

Status 201
RESPONSE
{
"id": 0,
"name": "string",
"description": "string",
"pinned": true,
"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": {
"property1": null,
"property2": null
},
"role_at_organization": "engineering"
},
"last_accessed_at": "2019-08-24T14:15:22Z",
"last_viewed_at": "2019-08-24T14:15:22Z",
"is_shared": true,
"deleted": true,
"creation_mode": "default",
"filters": {
"property1": null,
"property2": null
},
"variables": {
"property1": null,
"property2": null
},
"breakdown_colors": null,
"data_color_theme_id": 0,
"tags": [
null
],
"restriction_level": 21,
"effective_restriction_level": 21,
"effective_privilege_level": 21,
"user_access_level": "string",
"access_control_version": "string",
"last_refresh": "2019-08-24T14:15:22Z",
"persisted_filters": {
"property1": null,
"property2": null
},
"persisted_variables": {
"property1": null,
"property2": null
},
"team_id": 0,
"quick_filter_ids": [
"string"
],
"tiles": [
{
"property1": null,
"property2": null
}
],
"use_template": "string",
"use_dashboard": 0,
"delete_insights": false,
"_create_in_folder": "string"
}

List all dashboards sharing

Required API key scopes

sharing_configuration:read

Path parameters

  • dashboard_id
    integer
  • project_id
    string

Example request

GET /api/projects/:project_id/dashboards/:dashboard_id/sharing
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/:dashboard_id/sharing/

Example response

Status 200
RESPONSE
{
"created_at": "2019-08-24T14:15:22Z",
"enabled": true,
"access_token": "string",
"settings": null,
"password_required": true,
"share_passwords": [
{
"id": 0,
"created_at": "2019-08-24T14:15:22Z",
"note": "string",
"created_by_email": "string",
"is_active": true
}
]
}

Create dashboards sharing passwords

Create a new password for the sharing configuration.

Required API key scopes

sharing_configuration:write

Path parameters

  • dashboard_id
    integer
  • project_id
    string

Request parameters

  • enabled
    boolean
  • settings
  • password_required
    boolean

Response


Example request

POST /api/projects/:project_id/dashboards/:dashboard_id/sharing/passwords
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/:dashboard_id/sharing/passwords/\
-d created_at="string"

Example response

Status 200
RESPONSE
{
"created_at": "2019-08-24T14:15:22Z",
"enabled": true,
"access_token": "string",
"settings": null,
"password_required": true,
"share_passwords": [
{
"id": 0,
"created_at": "2019-08-24T14:15:22Z",
"note": "string",
"created_by_email": "string",
"is_active": true
}
]
}

Delete dashboards sharing passwords

Delete a password from the sharing configuration.

Required API key scopes

sharing_configuration:write

Path parameters

  • dashboard_id
    integer
  • password_id
    string
  • project_id
    string

Example request

DELETE /api/projects/:project_id/dashboards/:dashboard_id/sharing/passwords/:password_id
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl -X DELETE \
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/projects/:project_id/dashboards/:dashboard_id/sharing/passwords/:password_id/

Example response

Status 204 No response body

Create dashboards sharing refresh

Required API key scopes

sharing_configuration:write

Path parameters

  • dashboard_id
    integer
  • project_id
    string

Request parameters

  • enabled
    boolean
  • settings
  • password_required
    boolean

Response


Example request

POST /api/projects/:project_id/dashboards/:dashboard_id/sharing/refresh
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/:dashboard_id/sharing/refresh/\
-d created_at="string"

Example response

Status 200
RESPONSE
{
"created_at": "2019-08-24T14:15:22Z",
"enabled": true,
"access_token": "string",
"settings": null,
"password_required": true,
"share_passwords": [
{
"id": 0,
"created_at": "2019-08-24T14:15:22Z",
"note": "string",
"created_by_email": "string",
"is_active": true
}
]
}

Retrieve dashboards

Required API key scopes

dashboard:read

Path parameters

  • id
    integer
  • project_id
    string

Query parameters

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

Response


Example request

GET /api/projects/:project_id/dashboards/:id
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/:id/

Example response

Status 200
RESPONSE
{
"id": 0,
"name": "string",
"description": "string",
"pinned": true,
"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": {
"property1": null,
"property2": null
},
"role_at_organization": "engineering"
},
"last_accessed_at": "2019-08-24T14:15:22Z",
"last_viewed_at": "2019-08-24T14:15:22Z",
"is_shared": true,
"deleted": true,
"creation_mode": "default",
"filters": {
"property1": null,
"property2": null
},
"variables": {
"property1": null,
"property2": null
},
"breakdown_colors": null,
"data_color_theme_id": 0,
"tags": [
null
],
"restriction_level": 21,
"effective_restriction_level": 21,
"effective_privilege_level": 21,
"user_access_level": "string",
"access_control_version": "string",
"last_refresh": "2019-08-24T14:15:22Z",
"persisted_filters": {
"property1": null,
"property2": null
},
"persisted_variables": {
"property1": null,
"property2": null
},
"team_id": 0,
"quick_filter_ids": [
"string"
],
"tiles": [
{
"property1": null,
"property2": null
}
],
"use_template": "string",
"use_dashboard": 0,
"delete_insights": false,
"_create_in_folder": "string"
}

Update dashboards

Required API key scopes

dashboard:write

Path parameters

  • id
    integer
  • project_id
    string

Query parameters

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

Request parameters

  • name
    string
  • description
    string
  • pinned
    boolean
  • last_accessed_at
    string
  • deleted
    boolean
  • breakdown_colors
  • data_color_theme_id
    integer
  • tags
    array
  • restriction_level
  • last_refresh
    string
  • quick_filter_ids
    array
  • use_template
    string
  • use_dashboard
    integer
  • delete_insights
    boolean
    Default: false
  • _create_in_folder
    string

Response


Example request

PATCH /api/projects/:project_id/dashboards/:id
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/\
-d name="string"

Example response

Status 200
RESPONSE
{
"id": 0,
"name": "string",
"description": "string",
"pinned": true,
"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": {
"property1": null,
"property2": null
},
"role_at_organization": "engineering"
},
"last_accessed_at": "2019-08-24T14:15:22Z",
"last_viewed_at": "2019-08-24T14:15:22Z",
"is_shared": true,
"deleted": true,
"creation_mode": "default",
"filters": {
"property1": null,
"property2": null
},
"variables": {
"property1": null,
"property2": null
},
"breakdown_colors": null,
"data_color_theme_id": 0,
"tags": [
null
],
"restriction_level": 21,
"effective_restriction_level": 21,
"effective_privilege_level": 21,
"user_access_level": "string",
"access_control_version": "string",
"last_refresh": "2019-08-24T14:15:22Z",
"persisted_filters": {
"property1": null,
"property2": null
},
"persisted_variables": {
"property1": null,
"property2": null
},
"team_id": 0,
"quick_filter_ids": [
"string"
],
"tiles": [
{
"property1": null,
"property2": null
}
],
"use_template": "string",
"use_dashboard": 0,
"delete_insights": false,
"_create_in_folder": "string"
}

Delete dashboards

Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

Required API key scopes

dashboard:write

Path parameters

  • id
    integer
  • project_id
    string

Query parameters

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

Example request

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

Example response

Status 405 No response body

Create dashboards analyze refresh result

Generate AI analysis comparing before/after dashboard refresh. Expects cache_key in request body pointing to the stored 'before' state.

Path parameters

  • id
    integer
  • project_id
    string

Query parameters

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

Request parameters

  • name
    string
  • description
    string
  • pinned
    boolean
  • last_accessed_at
    string
  • deleted
    boolean
  • breakdown_colors
  • data_color_theme_id
    integer
  • tags
    array
  • restriction_level
  • last_refresh
    string
  • quick_filter_ids
    array
  • use_template
    string
  • use_dashboard
    integer
  • delete_insights
    boolean
    Default: false
  • _create_in_folder
    string

Example request

POST /api/projects/:project_id/dashboards/:id/analyze_refresh_result
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/analyze_refresh_result/\
-d name="string"

Example response

Status 200 No response body

Create dashboards copy tile

Copy an existing dashboard tile to another dashboard (insight or text card; new tile row).

Required API key scopes

dashboard:write

Path parameters

  • id
    integer
  • project_id
    string

Query parameters

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

Request parameters

  • fromDashboardId
    integer
  • tileId
    integer

Response


Example request

POST /api/projects/:project_id/dashboards/:id/copy_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/copy_tile/\
-d fromDashboardId="integer",\
-d tileId="integer"

Example response

Status 200
RESPONSE
{
"id": 0,
"name": "string",
"description": "string",
"pinned": true,
"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": {
"property1": null,
"property2": null
},
"role_at_organization": "engineering"
},
"last_accessed_at": "2019-08-24T14:15:22Z",
"last_viewed_at": "2019-08-24T14:15:22Z",
"is_shared": true,
"deleted": true,
"creation_mode": "default",
"filters": {
"property1": null,
"property2": null
},
"variables": {
"property1": null,
"property2": null
},
"breakdown_colors": null,
"data_color_theme_id": 0,
"tags": [
null
],
"restriction_level": 21,
"effective_restriction_level": 21,
"effective_privilege_level": 21,
"user_access_level": "string",
"access_control_version": "string",
"last_refresh": "2019-08-24T14:15:22Z",
"persisted_filters": {
"property1": null,
"property2": null
},
"persisted_variables": {
"property1": null,
"property2": null
},
"team_id": 0,
"quick_filter_ids": [
"string"
],
"tiles": [
{
"property1": null,
"property2": null
}
],
"use_template": "string",
"use_dashboard": 0,
"delete_insights": false,
"_create_in_folder": "string"
}
Next page →

Community questions

Questions about this page? or post a community question.