Core-9

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

Endpoints

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

Update dashboards move tile

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

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"

Example response

Status 200 No response body

Create dashboards reorder tiles

Required API key scopes

dashboard:write

Path parameters

  • id
    integer
  • project_id
    string

Query parameters

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

Request parameters

  • tile_order
    array

Response


Example request

POST /api/projects/:project_id/dashboards/:id/reorder_tiles
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/reorder_tiles/\
-d tile_order="array"

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

Retrieve dashboards run insights

Run all insights on a dashboard and return their results.

Required API key scopes

query:read

Path parameters

  • id
    integer
  • project_id
    string

Query parameters

  • format
    string
    One of: "json""txt"
  • output_format
    string
    One of: "json""optimized"
  • refresh
    string
    One of: "blocking""force_blocking""force_cache"

Response


Example request

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

Example response

Status 200
RESPONSE
{
"results": [
{
"id": 0,
"insight": {
"id": 0,
"short_id": "string",
"name": "string",
"derived_name": "string",
"result": null
}
}
]
}

Create dashboards snapshot

Snapshot the current dashboard state (from cache) for AI analysis. Returns a cache_key representing the 'before' state, to be used with analyze_refresh_result.

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/snapshot
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/snapshot/\
-d name="string"

Example response

Status 200 No response body

Retrieve dashboards stream tiles

Stream dashboard metadata and tiles via Server-Sent Events. Sends metadata first, then tiles as they are rendered.

Path parameters

  • id
    integer
  • project_id
    string

Query parameters

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

Example request

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

Example response

Status 200 No response body

Create dashboards bulk update tags

Bulk update tags on multiple objects.

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

Path parameters

  • project_id
    string

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

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

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.

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

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

List all event definitions

Required API key scopes

event_definition:read

Path parameters

  • project_id
    string

Query parameters

  • limit
    integer
  • offset
    integer

Response


Example request

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

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",
"name": "string",
"owner": 0,
"description": "string",
"tags": [
null
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"updated_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_seen_at": "2019-08-24T14:15:22Z",
"last_updated_at": "2019-08-24T14:15:22Z",
"verified": true,
"verified_at": "2019-08-24T14:15:22Z",
"verified_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"
},
"hidden": true,
"enforcement_mode": "allow",
"is_action": true,
"action_id": 0,
"is_calculating": true,
"last_calculated_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"
},
"post_to_slack": false,
"default_columns": [
"string"
],
"media_preview_urls": [
"string"
]
}
]
}

Create event definitions

Required API key scopes

event_definition:write

Path parameters

  • project_id
    string

Request parameters

  • name
    string
  • owner
    integer
  • description
    string
  • tags
    array
  • verified
    boolean
  • hidden
    boolean
  • enforcement_mode
  • post_to_slack
    boolean
    Default: false
  • default_columns
    array

Response


Example request

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

Example response

Status 201
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"owner": 0,
"description": "string",
"tags": [
null
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"updated_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_seen_at": "2019-08-24T14:15:22Z",
"last_updated_at": "2019-08-24T14:15:22Z",
"verified": true,
"verified_at": "2019-08-24T14:15:22Z",
"verified_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"
},
"hidden": true,
"enforcement_mode": "allow",
"is_action": true,
"action_id": 0,
"is_calculating": true,
"last_calculated_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"
},
"post_to_slack": false,
"default_columns": [
"string"
],
"media_preview_urls": [
"string"
]
}

Retrieve event definitions

Required API key scopes

event_definition:read

Path parameters

  • id
    string
  • project_id
    string

Response


Example request

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

Example response

Status 200
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"owner": 0,
"description": "string",
"tags": [
null
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"updated_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_seen_at": "2019-08-24T14:15:22Z",
"last_updated_at": "2019-08-24T14:15:22Z",
"verified": true,
"verified_at": "2019-08-24T14:15:22Z",
"verified_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"
},
"hidden": true,
"enforcement_mode": "allow",
"is_action": true,
"action_id": 0,
"is_calculating": true,
"last_calculated_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"
},
"post_to_slack": false,
"default_columns": [
"string"
],
"media_preview_urls": [
"string"
]
}

Update event definitions

Required API key scopes

event_definition:write

Path parameters

  • id
    string
  • project_id
    string

Request parameters

  • name
    string
  • owner
    integer
  • description
    string
  • tags
    array
  • verified
    boolean
  • hidden
    boolean
  • enforcement_mode
  • post_to_slack
    boolean
    Default: false
  • default_columns
    array

Response


Example request

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

Example response

Status 200
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"owner": 0,
"description": "string",
"tags": [
null
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"updated_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_seen_at": "2019-08-24T14:15:22Z",
"last_updated_at": "2019-08-24T14:15:22Z",
"verified": true,
"verified_at": "2019-08-24T14:15:22Z",
"verified_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"
},
"hidden": true,
"enforcement_mode": "allow",
"is_action": true,
"action_id": 0,
"is_calculating": true,
"last_calculated_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"
},
"post_to_slack": false,
"default_columns": [
"string"
],
"media_preview_urls": [
"string"
]
}

Delete event definitions

Required API key scopes

event_definition:write

Path parameters

  • id
    string
  • project_id
    string

Example request

DELETE /api/projects/:project_id/event_definitions/: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/event_definitions/:id/

Example response

Status 204 No response body

Retrieve event definitions metrics

Path parameters

  • id
    string
  • project_id
    string

Example request

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

Example response

Status 200 No response body

Create event definitions bulk update tags

Bulk update tags on multiple objects.

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

Path parameters

  • project_id
    string

Request parameters

  • ids
    array
  • action
  • tags
    array

Response


Example request

POST /api/projects/:project_id/event_definitions/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/event_definitions/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"
}
]
}

Retrieve event definitions by name

Get event definition by exact name

Required API key scopes

event_definition:read

Path parameters

  • project_id
    string

Query parameters

  • name
    string

Response


Example request

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

Example response

Status 200
RESPONSE
{
"elements": [
null
],
"event": "string",
"properties": {}
}

Retrieve event definitions golang

Required API key scopes

event_definition:read

Path parameters

  • project_id
    string

Example request

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

Example response

Status 200 No response body

Retrieve event definitions python

Required API key scopes

event_definition:read

Path parameters

  • project_id
    string

Example request

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

Example response

Status 200 No response body

Retrieve event definitions typescript

Required API key scopes

event_definition:read

Path parameters

  • project_id
    string

Example request

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

Example response

Status 200 No response body
Next page →

Community questions

Questions about this page? or post a community question.