Core-7

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

Endpoints

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

Delete roles

Required API key scopes

organization:write

Path parameters

  • id
    string

Example request

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

Example response

Status 204 No response body

List all annotations

Also available via the PostHog MCP server:

  • annotations-listList annotations

Create, Read, Update and Delete annotations. See docs for more information on annotations.

Required API key scopes

annotation:read

Query parameters

  • limit
    integer
  • offset
    integer
  • search
    string

Response


Example request

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

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,
"content": "string",
"date_marker": "2019-08-24T14:15:22Z",
"creation_type": "USR",
"dashboard_item": 0,
"dashboard_id": 0,
"dashboard_name": "string",
"insight_short_id": "string",
"insight_name": "string",
"insight_derived_name": "string",
"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"
},
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"deleted": true,
"scope": "dashboard_item"
}
]
}

Create annotations

Also available via the PostHog MCP server:

  • annotation-createCreate annotation

Create, Read, Update and Delete annotations. See docs for more information on annotations.

Required API key scopes

annotation:write

Request parameters

  • content
    stringnull
  • date_marker
    stringnull
  • creation_type
  • dashboard_item
    integernull
  • dashboard_id
    integernull
  • deleted
    boolean
  • scope

Response


Example request

POST /api/projects/:project_id/annotations
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/annotations/\
-d content=["string","null"]

Example response

Status 201
RESPONSE
{
"id": 0,
"content": "string",
"date_marker": "2019-08-24T14:15:22Z",
"creation_type": "USR",
"dashboard_item": 0,
"dashboard_id": 0,
"dashboard_name": "string",
"insight_short_id": "string",
"insight_name": "string",
"insight_derived_name": "string",
"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"
},
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"deleted": true,
"scope": "dashboard_item"
}

Retrieve annotations

Also available via the PostHog MCP server:

  • annotation-retrieveRetrieve annotation

Create, Read, Update and Delete annotations. See docs for more information on annotations.

Required API key scopes

annotation:read

Path parameters

  • id
    integer

Response


Example request

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

Example response

Status 200
RESPONSE
{
"id": 0,
"content": "string",
"date_marker": "2019-08-24T14:15:22Z",
"creation_type": "USR",
"dashboard_item": 0,
"dashboard_id": 0,
"dashboard_name": "string",
"insight_short_id": "string",
"insight_name": "string",
"insight_derived_name": "string",
"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"
},
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"deleted": true,
"scope": "dashboard_item"
}

Update annotations

Also available via the PostHog MCP server:

  • annotations-partial-updateUpdate annotation

Create, Read, Update and Delete annotations. See docs for more information on annotations.

Required API key scopes

annotation:write

Path parameters

  • id
    integer

Request parameters

  • content
    stringnull
  • date_marker
    stringnull
  • creation_type
  • dashboard_item
    integernull
  • dashboard_id
    integernull
  • deleted
    boolean
  • scope

Response


Example request

PATCH /api/projects/:project_id/annotations/: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/annotations/:id/\
-d content=["string","null"]

Example response

Status 200
RESPONSE
{
"id": 0,
"content": "string",
"date_marker": "2019-08-24T14:15:22Z",
"creation_type": "USR",
"dashboard_item": 0,
"dashboard_id": 0,
"dashboard_name": "string",
"insight_short_id": "string",
"insight_name": "string",
"insight_derived_name": "string",
"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"
},
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"deleted": true,
"scope": "dashboard_item"
}

Delete annotations

Also available via the PostHog MCP server:

  • annotation-deleteDelete annotation

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

Required API key scopes

annotation:write

Path parameters

  • id
    integer

Example request

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

Example response

Status 405 No response body

List all cohorts

Also available via the PostHog MCP server:

  • cohorts-listList all cohorts

Required API key scopes

cohort:read

Query parameters

  • limit
    integer
  • offset
    integer

Response


Example request

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

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",
"groups": null,
"deleted": true,
"filters": {
"properties": {
"type": "AND",
"values": [
{
"bytecode": null,
"bytecode_error": null,
"conditionHash": null,
"type": "behavioral",
"key": "string",
"value": "string",
"event_type": "string",
"time_value": null,
"time_interval": null,
"negation": false,
"operator": null,
"operator_value": null,
"seq_time_interval": null,
"seq_time_value": null,
"seq_event": null,
"seq_event_type": null,
"total_periods": null,
"min_periods": null,
"event_filters": null,
"explicit_datetime": null,
"explicit_datetime_to": null
}
]
}
},
"query": null,
"version": 0,
"pending_version": 0,
"is_calculating": true,
"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"
},
"created_at": "2019-08-24T14:15:22Z",
"last_calculation": "2019-08-24T14:15:22Z",
"last_backfill_person_properties_at": "2019-08-24T14:15:22Z",
"errors_calculating": 0,
"last_error_message": "string",
"count": 0,
"is_static": true,
"cohort_type": "static",
"experiment_set": [
0
],
"_create_in_folder": "string",
"_create_static_person_ids": []
}
]
}

Create cohorts

Also available via the PostHog MCP server:

  • cohorts-createCreate cohort

Required API key scopes

cohort:write

Request parameters

  • name
    stringnull
  • description
    string
  • groups
  • deleted
    boolean
  • filters
  • query
  • is_static
    boolean
  • cohort_type
  • _create_in_folder
    string
  • _create_static_person_ids
    array
    Default:

Response


Example request

POST /api/projects/:project_id/cohorts
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/cohorts/\
-d name=["string","null"]

Example response

Status 201
RESPONSE
{
"id": 0,
"name": "string",
"description": "string",
"groups": null,
"deleted": true,
"filters": {
"properties": {
"type": "AND",
"values": [
{
"bytecode": null,
"bytecode_error": null,
"conditionHash": null,
"type": "behavioral",
"key": "string",
"value": "string",
"event_type": "string",
"time_value": null,
"time_interval": null,
"negation": false,
"operator": null,
"operator_value": null,
"seq_time_interval": null,
"seq_time_value": null,
"seq_event": null,
"seq_event_type": null,
"total_periods": null,
"min_periods": null,
"event_filters": null,
"explicit_datetime": null,
"explicit_datetime_to": null
}
]
}
},
"query": null,
"version": 0,
"pending_version": 0,
"is_calculating": true,
"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"
},
"created_at": "2019-08-24T14:15:22Z",
"last_calculation": "2019-08-24T14:15:22Z",
"last_backfill_person_properties_at": "2019-08-24T14:15:22Z",
"errors_calculating": 0,
"last_error_message": "string",
"count": 0,
"is_static": true,
"cohort_type": "static",
"experiment_set": [
0
],
"_create_in_folder": "string",
"_create_static_person_ids": []
}

Retrieve cohorts

Also available via the PostHog MCP server:

  • cohorts-retrieveGet cohort

Required API key scopes

cohort:read

Path parameters

  • id
    integer

Response


Example request

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

Example response

Status 200
RESPONSE
{
"id": 0,
"name": "string",
"description": "string",
"groups": null,
"deleted": true,
"filters": {
"properties": {
"type": "AND",
"values": [
{
"bytecode": null,
"bytecode_error": null,
"conditionHash": null,
"type": "behavioral",
"key": "string",
"value": "string",
"event_type": "string",
"time_value": null,
"time_interval": null,
"negation": false,
"operator": null,
"operator_value": null,
"seq_time_interval": null,
"seq_time_value": null,
"seq_event": null,
"seq_event_type": null,
"total_periods": null,
"min_periods": null,
"event_filters": null,
"explicit_datetime": null,
"explicit_datetime_to": null
}
]
}
},
"query": null,
"version": 0,
"pending_version": 0,
"is_calculating": true,
"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"
},
"created_at": "2019-08-24T14:15:22Z",
"last_calculation": "2019-08-24T14:15:22Z",
"last_backfill_person_properties_at": "2019-08-24T14:15:22Z",
"errors_calculating": 0,
"last_error_message": "string",
"count": 0,
"is_static": true,
"cohort_type": "static",
"experiment_set": [
0
],
"_create_in_folder": "string",
"_create_static_person_ids": []
}

Update cohorts

Also available via the PostHog MCP server:

  • cohorts-partial-updateUpdate cohort

Required API key scopes

cohort:write

Path parameters

  • id
    integer

Request parameters

  • name
    stringnull
  • description
    string
  • groups
  • deleted
    boolean
  • filters
  • query
  • is_static
    boolean
  • cohort_type
  • _create_in_folder
    string
  • _create_static_person_ids
    array
    Default:

Response


Example request

PATCH /api/projects/:project_id/cohorts/: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/cohorts/:id/\
-d name=["string","null"]

Example response

Status 200
RESPONSE
{
"id": 0,
"name": "string",
"description": "string",
"groups": null,
"deleted": true,
"filters": {
"properties": {
"type": "AND",
"values": [
{
"bytecode": null,
"bytecode_error": null,
"conditionHash": null,
"type": "behavioral",
"key": "string",
"value": "string",
"event_type": "string",
"time_value": null,
"time_interval": null,
"negation": false,
"operator": null,
"operator_value": null,
"seq_time_interval": null,
"seq_time_value": null,
"seq_event": null,
"seq_event_type": null,
"total_periods": null,
"min_periods": null,
"event_filters": null,
"explicit_datetime": null,
"explicit_datetime_to": null
}
]
}
},
"query": null,
"version": 0,
"pending_version": 0,
"is_calculating": true,
"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"
},
"created_at": "2019-08-24T14:15:22Z",
"last_calculation": "2019-08-24T14:15:22Z",
"last_backfill_person_properties_at": "2019-08-24T14:15:22Z",
"errors_calculating": 0,
"last_error_message": "string",
"count": 0,
"is_static": true,
"cohort_type": "static",
"experiment_set": [
0
],
"_create_in_folder": "string",
"_create_static_person_ids": []
}

Delete cohorts

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

Required API key scopes

cohort:write

Path parameters

  • id
    integer

Example request

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

Example response

Status 405 No response body

Retrieve cohorts activity

Required API key scopes

activity_log:read

Path parameters

  • id
    integer

Example request

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

Example response

Status 200 No response body

Update cohorts add persons to static cohort

Also available via the PostHog MCP server:

  • cohorts-add-persons-to-static-cohort-partial-updateAdd persons to static cohort

Required API key scopes

cohort:write

Path parameters

  • id
    integer

Request parameters

  • person_ids
    array

Example request

PATCH /api/projects/:project_id/cohorts/:id/add_persons_to_static_cohort
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/cohorts/:id/add_persons_to_static_cohort/\
-d person_ids="array"

Example response

Status 200 No response body

Retrieve cohorts calculation history

Required API key scopes

cohort:read

Path parameters

  • id
    integer

Example request

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

Example response

Status 200 No response body

Retrieve cohorts persons

Required API key scopes

cohort:readperson:read

Path parameters

  • id
    integer

Query parameters

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

Response


Example request

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

Example response

Status 200
RESPONSE
{
"results": [
{
"id": "string",
"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
"type": "person",
"name": "string",
"distinct_ids": [
"string"
],
"properties": {},
"created_at": "2019-08-24T14:15:22Z",
"last_seen_at": "2019-08-24T14:15:22Z",
"is_identified": true,
"matched_recordings": [
{}
],
"value_at_data_point": 0
}
],
"next": "http://example.com",
"previous": "http://example.com"
}

Update cohorts remove person from static cohort

Required API key scopes

cohort:write

Path parameters

  • id
    integer

Request parameters

  • person_id
    string

Example request

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

Example response

Status 200 No response body

Retrieve cohorts all activity

Required API key scopes

activity_log:read

Example request

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

Example response

Status 200 No response body

List all comments

Also available via the PostHog MCP server:

  • comments-listList comments and discussion threads.

Required API key scopes

comment:read

Query parameters

  • completed
    string
    One of: "any""open""completed"
  • cursor
    string
  • item_id
    string
  • kind
    string
    One of: "any""comment""task"
  • scope
    string
  • search
    string
  • source_comment
    string

Response


Example request

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

Example response

Status 200
RESPONSE
{
"next": "http://api.example.org/accounts/?cursor=cD00ODY%3D\"",
"previous": "http://api.example.org/accounts/?cursor=cj0xJnA9NDg3",
"results": [
{
"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"
},
"deleted": true,
"mentions": [
0
],
"slug": "string",
"is_task": false,
"completed_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"
},
"content": "string",
"rich_content": null,
"version": 0,
"created_at": "2019-08-24T14:15:22Z",
"item_id": "string",
"item_context": null,
"scope": "string",
"completed_at": "2019-08-24T14:15:22Z",
"source_comment": "aecfc6dd-f4f2-4252-b81d-e21a9112c0dc"
}
]
}

Community questions

Questions about this page? or post a community question.