Dashboards

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

Adds an "access_controls" action to the viewset that handles access control for the given resource

Why a mixin? We want to easily add this to any existing resource, including providing easy helpers for adding access control info such as the current users access level to any response.

List all dashboards

Required API key scopes

dashboard:read

Path parameters

  • project_id
    string

    Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.

Query parameters

  • limit
    integer

    Number of results to return per page.

  • offset
    integer

    The initial index from which to return the results.

Response


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/

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"
},
"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"
}
]
}

Create dashboards

Required API key scopes

dashboard:write

Path parameters

  • project_id
    string

    Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.

Request parameters

  • name
    string
  • description
    string
  • pinned
    boolean
  • deleted
    boolean
  • use_template
    string
  • use_dashboard
    integer
  • delete_insights
    boolean
  • tags
    array
  • restriction_level

Response


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"

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"
},
"is_shared": true,
"deleted": true,
"creation_mode": "default",
"use_template": "string",
"use_dashboard": 0,
"delete_insights": false,
"filters": {
"property1": null,
"property2": null
},
"variables": {
"property1": null,
"property2": null
},
"tags": [
null
],
"tiles": [
{
"property1": null,
"property2": null
}
],
"restriction_level": 21,
"effective_restriction_level": 21,
"effective_privilege_level": 21,
"user_access_level": "string",
"access_control_version": "string"
}

List all dashboards collaborators

Required API key scopes

dashboard:read

Path parameters

  • dashboard_id
    integer
  • project_id
    string

    Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.

Request

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

Response

Status 200
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"dashboard_id": 0,
"user": {
"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"
},
"level": 21,
"added_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"user_uuid": "7c4d2d7d-8620-4fb3-967a-4a621082cf1f"
}

Create dashboards collaborators

Required API key scopes

dashboard:write

Path parameters

  • dashboard_id
    integer
  • project_id
    string

    Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.

Request parameters

  • level
  • user_uuid
    string

Response


Request

POST /api/projects/:project_id/dashboards/:dashboard_id/collaborators
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/collaborators/\
-d level=undefined,\
-d user_uuid="string"

Response

Status 201
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"dashboard_id": 0,
"user": {
"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"
},
"level": 21,
"added_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"user_uuid": "7c4d2d7d-8620-4fb3-967a-4a621082cf1f"
}

Delete dashboards collaborators

Required API key scopes

dashboard:write

Path parameters

  • dashboard_id
    integer
  • project_id
    string

    Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.

  • user__uuid
    string

Request

DELETE /api/projects/:project_id/dashboards/:dashboard_id/collaborators/:user__uuid
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/collaborators/:user__uuid/

Response

Status 204 No response body

List all dashboards sharing

Required API key scopes

sharing_configuration:read

Path parameters

  • dashboard_id
    integer
  • project_id
    string

    Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.

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/

Response

Status 200
RESPONSE
{
"created_at": "2019-08-24T14:15:22Z",
"enabled": true,
"access_token": "string"
}

Retrieve dashboards

Required API key scopes

dashboard:read

Path parameters

  • id
    integer

    A unique integer value identifying this dashboard.

  • project_id
    string

    Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.

Response


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/

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"
},
"is_shared": true,
"deleted": true,
"creation_mode": "default",
"use_template": "string",
"use_dashboard": 0,
"delete_insights": false,
"filters": {
"property1": null,
"property2": null
},
"variables": {
"property1": null,
"property2": null
},
"tags": [
null
],
"tiles": [
{
"property1": null,
"property2": null
}
],
"restriction_level": 21,
"effective_restriction_level": 21,
"effective_privilege_level": 21,
"user_access_level": "string",
"access_control_version": "string"
}

Update dashboards

Required API key scopes

dashboard:write

Path parameters

  • id
    integer

    A unique integer value identifying this dashboard.

  • project_id
    string

    Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.

Request parameters

  • name
    string
  • description
    string
  • pinned
    boolean
  • deleted
    boolean
  • use_template
    string
  • use_dashboard
    integer
  • delete_insights
    boolean
  • tags
    array
  • restriction_level

Response


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"

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"
},
"is_shared": true,
"deleted": true,
"creation_mode": "default",
"use_template": "string",
"use_dashboard": 0,
"delete_insights": false,
"filters": {
"property1": null,
"property2": null
},
"variables": {
"property1": null,
"property2": null
},
"tags": [
null
],
"tiles": [
{
"property1": null,
"property2": null
}
],
"restriction_level": 21,
"effective_restriction_level": 21,
"effective_privilege_level": 21,
"user_access_level": "string",
"access_control_version": "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

    A unique integer value identifying this dashboard.

  • project_id
    string

    Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.

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/

Response

Status 405 No response body

Update dashboards move tile

Path parameters

  • id
    integer

    A unique integer value identifying this dashboard.

  • project_id
    string

    Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.

Request parameters

  • name
    string
  • description
    string
  • pinned
    boolean
  • deleted
    boolean
  • use_template
    string
  • use_dashboard
    integer
  • delete_insights
    boolean
  • tags
    array
  • restriction_level

Request

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

Response

Status 200 No response body

Create dashboards create from template json

Path parameters

  • project_id
    string

    Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.

Request parameters

  • name
    string
  • description
    string
  • pinned
    boolean
  • deleted
    boolean
  • use_template
    string
  • use_dashboard
    integer
  • delete_insights
    boolean
  • tags
    array
  • restriction_level

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"

Response

Status 200 No response body

Community questions

  • Eloïse
    5 months ago

    Automaticly create Dashboard

    Hey everyone!

    Our team is working on automatically creating personalized dashboards whenever a new client group is added.

    We attempted to use the dashboard API with the following POST request:

    data = {
    "name": "Test_from_json",
    "use_template": '01875ce8-88f1-0000-6eed-381aaa9bb017',
    }
    response = requests.post(
    f"https://eu.posthog.com/api/projects/{project_id}/dashboards/create_from_template_json/",
    headers=headers,
    json=data
    )
    print(response)

    However, we're receiving a 403 response:

    <Response [403]>

    We've ensured that the API key being used has full access for testing purposes. Could anyone help us understand what might be going wrong here?

    Additionally, if this endpoint has been deprecated, could you please point us towards the current method for automating dashboard creation?

    Thanks so much for your help!

    — Jimini AI Team

  • Artem
    7 months ago

    Share Dashboard

    How to share a dashboard via api and get a link to a frame? I have communities on my project. I need to implement statistics output for each of them. Maybe you have solutions for this?

Was this page useful?

PostHog.com doesn't use third party cookies - only a single in-house cookie.

No data is sent to a third party.

Ursula von der Leyen, President of the European Commission