Core-4

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

Endpoints

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

Delete environments session recordings sharing passwords

Delete a password from the sharing configuration.

Required API key scopes

sharing_configuration:write

Path parameters

  • password_id
    string
  • recording_id
    string

Example request

DELETE /api/environments/:environment_id/session_recordings/:recording_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/environments/:environment_id/session_recordings/:recording_id/sharing/passwords/:password_id/

Example response

Status 204 No response body

Create environments session recordings sharing refresh

Required API key scopes

sharing_configuration:write

Path parameters

  • recording_id
    string

Request parameters

  • enabled
    boolean
  • settings
  • password_required
    boolean

Response


Example request

POST /api/environments/:environment_id/session_recordings/:recording_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/environments/:environment_id/session_recordings/:recording_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
}
]
}

List all environments subscriptions

Also available via the PostHog MCP server:

  • subscriptions-listList subscriptions

Required API key scopes

subscription:read

Query parameters

  • created_by
    string
  • dashboard
    integer
  • insight
    integer
  • limit
    integer
  • offset
    integer
  • ordering
    string
  • resource_type
    string
    One of: "dashboard""insight"
  • search
    string
  • target_type
    string
    One of: "email""slack""webhook"

Response


Example request

GET /api/environments/:environment_id/subscriptions
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl \
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/environments/:environment_id/subscriptions/

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,
"dashboard": 0,
"insight": 0,
"insight_short_id": "string",
"resource_name": "string",
"dashboard_export_insights": [
0
],
"target_type": "email",
"target_value": "string",
"frequency": "daily",
"interval": -2147483648,
"byweekday": [
"monday"
],
"bysetpos": -2147483648,
"count": -2147483648,
"start_date": "2019-08-24T14:15:22Z",
"until_date": "2019-08-24T14:15:22Z",
"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"
},
"deleted": true,
"enabled": true,
"title": "string",
"summary": "string",
"next_delivery_date": "2019-08-24T14:15:22Z",
"integration_id": 0,
"invite_message": "string",
"summary_enabled": true,
"summary_prompt_guide": "string"
}
]
}

Create environments subscriptions

Also available via the PostHog MCP server:

  • subscriptions-createCreate subscription

Required API key scopes

subscription:write

Request parameters

  • dashboard
    integernull
  • insight
    integernull
  • dashboard_export_insights
    array
  • target_type
  • target_value
    string
  • frequency
  • interval
    integer
  • byweekday
    arraynull
  • bysetpos
    integernull
  • count
    integernull
  • start_date
    string
  • until_date
    stringnull
  • deleted
    boolean
  • enabled
    boolean
  • title
    stringnull
  • integration_id
    integernull
  • invite_message
    stringnull
  • summary_enabled
    boolean
  • summary_prompt_guide
    string

Response


Example request

POST /api/environments/:environment_id/subscriptions
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/environments/:environment_id/subscriptions/\
-d target_type=undefined,\
-d target_value="string",\
-d frequency=undefined,\
-d start_date="string"

Example response

Status 201
RESPONSE
{
"id": 0,
"dashboard": 0,
"insight": 0,
"insight_short_id": "string",
"resource_name": "string",
"dashboard_export_insights": [
0
],
"target_type": "email",
"target_value": "string",
"frequency": "daily",
"interval": -2147483648,
"byweekday": [
"monday"
],
"bysetpos": -2147483648,
"count": -2147483648,
"start_date": "2019-08-24T14:15:22Z",
"until_date": "2019-08-24T14:15:22Z",
"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"
},
"deleted": true,
"enabled": true,
"title": "string",
"summary": "string",
"next_delivery_date": "2019-08-24T14:15:22Z",
"integration_id": 0,
"invite_message": "string",
"summary_enabled": true,
"summary_prompt_guide": "string"
}

Retrieve environments subscriptions

Also available via the PostHog MCP server:

  • subscriptions-retrieveGet subscription

Required API key scopes

subscription:read

Path parameters

  • id
    integer

Response


Example request

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

Example response

Status 200
RESPONSE
{
"id": 0,
"dashboard": 0,
"insight": 0,
"insight_short_id": "string",
"resource_name": "string",
"dashboard_export_insights": [
0
],
"target_type": "email",
"target_value": "string",
"frequency": "daily",
"interval": -2147483648,
"byweekday": [
"monday"
],
"bysetpos": -2147483648,
"count": -2147483648,
"start_date": "2019-08-24T14:15:22Z",
"until_date": "2019-08-24T14:15:22Z",
"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"
},
"deleted": true,
"enabled": true,
"title": "string",
"summary": "string",
"next_delivery_date": "2019-08-24T14:15:22Z",
"integration_id": 0,
"invite_message": "string",
"summary_enabled": true,
"summary_prompt_guide": "string"
}

Update environments subscriptions

Also available via the PostHog MCP server:

  • subscriptions-partial-updateUpdate subscription

Required API key scopes

subscription:write

Path parameters

  • id
    integer

Request parameters

  • dashboard
    integernull
  • insight
    integernull
  • dashboard_export_insights
    array
  • target_type
  • target_value
    string
  • frequency
  • interval
    integer
  • byweekday
    arraynull
  • bysetpos
    integernull
  • count
    integernull
  • start_date
    string
  • until_date
    stringnull
  • deleted
    boolean
  • enabled
    boolean
  • title
    stringnull
  • integration_id
    integernull
  • invite_message
    stringnull
  • summary_enabled
    boolean
  • summary_prompt_guide
    string

Response


Example request

PATCH /api/environments/:environment_id/subscriptions/:id
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl -X PATCH \
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/environments/:environment_id/subscriptions/:id/\
-d dashboard=["integer","null"]

Example response

Status 200
RESPONSE
{
"id": 0,
"dashboard": 0,
"insight": 0,
"insight_short_id": "string",
"resource_name": "string",
"dashboard_export_insights": [
0
],
"target_type": "email",
"target_value": "string",
"frequency": "daily",
"interval": -2147483648,
"byweekday": [
"monday"
],
"bysetpos": -2147483648,
"count": -2147483648,
"start_date": "2019-08-24T14:15:22Z",
"until_date": "2019-08-24T14:15:22Z",
"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"
},
"deleted": true,
"enabled": true,
"title": "string",
"summary": "string",
"next_delivery_date": "2019-08-24T14:15:22Z",
"integration_id": 0,
"invite_message": "string",
"summary_enabled": true,
"summary_prompt_guide": "string"
}

Delete environments subscriptions

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

Required API key scopes

subscription:write

Path parameters

  • id
    integer

Example request

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

Example response

Status 405 No response body

Create environments subscriptions test delivery

Also available via the PostHog MCP server:

  • subscriptions-test-delivery-createSend test delivery

Required API key scopes

subscription:write

Path parameters

  • id
    integer

Example request

POST /api/environments/:environment_id/subscriptions/:id/test-delivery
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/environments/:environment_id/subscriptions/:id/test-delivery/

Example response

Status 202 Test delivery workflow started

Retrieve environments subscriptions summary quota

Required API key scopes

subscription:read

Example request

GET /api/environments/:environment_id/subscriptions/summary_quota
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl \
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/environments/:environment_id/subscriptions/summary_quota/

Example response

Status 200 Org-wide AI summary quota: count of currently-active summaries and the limit for the org's plan tier. `limit` is null when no cap is configured.

List all subscriptions deliveries

Also available via the PostHog MCP server:

  • subscriptions-deliveries-listList subscription deliveries

Paginated delivery history for a subscription. Requires premium subscriptions.

Required API key scopes

subscription:read

Path parameters

  • subscription_id
    integer

Query parameters

  • cursor
    string
  • status
    string
    One of: "completed""failed""skipped""starting"

Response


Example request

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

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",
"subscription": 0,
"temporal_workflow_id": "string",
"idempotency_key": "string",
"trigger_type": "string",
"scheduled_at": "2019-08-24T14:15:22Z",
"target_type": "string",
"target_value": "string",
"exported_asset_ids": [
-2147483648
],
"content_snapshot": null,
"recipient_results": null,
"status": "starting",
"error": null,
"created_at": "2019-08-24T14:15:22Z",
"last_updated_at": "2019-08-24T14:15:22Z",
"finished_at": "2019-08-24T14:15:22Z",
"change_summary": "string"
}
]
}

Retrieve subscriptions deliveries

Also available via the PostHog MCP server:

  • subscriptions-deliveries-retrieveGet subscription delivery

Fetch one delivery row by id.

Required API key scopes

subscription:read

Path parameters

  • id
    string
  • subscription_id
    integer

Response


Example request

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

Example response

Status 200
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"subscription": 0,
"temporal_workflow_id": "string",
"idempotency_key": "string",
"trigger_type": "string",
"scheduled_at": "2019-08-24T14:15:22Z",
"target_type": "string",
"target_value": "string",
"exported_asset_ids": [
-2147483648
],
"content_snapshot": null,
"recipient_results": null,
"status": "starting",
"error": null,
"created_at": "2019-08-24T14:15:22Z",
"last_updated_at": "2019-08-24T14:15:22Z",
"finished_at": "2019-08-24T14:15:22Z",
"change_summary": "string"
}

List all cimd verification tokens

Manage CIMD verification tokens for an organization.

A partner embeds the plaintext token in their CIMD metadata document under posthog_verification_token. When PostHog fetches the metadata, matching the token links the partner app to this organization and grants a higher default rate limit for account provisioning.

The plaintext value is only available on creation; we store a hash.

Required API key scopes

organization:read

Query parameters

  • limit
    integer
  • offset
    integer

Response


Example request

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

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",
"label": "string",
"mask_value": "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",
"last_used_at": "2019-08-24T14:15:22Z"
}
]
}

Create cimd verification tokens

Manage CIMD verification tokens for an organization.

A partner embeds the plaintext token in their CIMD metadata document under posthog_verification_token. When PostHog fetches the metadata, matching the token links the partner app to this organization and grants a higher default rate limit for account provisioning.

The plaintext value is only available on creation; we store a hash.

Required API key scopes

organization:write

Request parameters

  • label
    string

Response


Example request

POST /api/organizations/:organization_id/cimd_verification_tokens
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/organizations/:organization_id/cimd_verification_tokens/\
-d label="string"

Example response

Status 201
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"label": "string",
"mask_value": "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",
"last_used_at": "2019-08-24T14:15:22Z",
"value": "string"
}

Retrieve cimd verification tokens

Manage CIMD verification tokens for an organization.

A partner embeds the plaintext token in their CIMD metadata document under posthog_verification_token. When PostHog fetches the metadata, matching the token links the partner app to this organization and grants a higher default rate limit for account provisioning.

The plaintext value is only available on creation; we store a hash.

Required API key scopes

organization:read

Path parameters

  • id
    string

Response


Example request

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

Example response

Status 200
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"label": "string",
"mask_value": "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",
"last_used_at": "2019-08-24T14:15:22Z"
}

Delete cimd verification tokens

Manage CIMD verification tokens for an organization.

A partner embeds the plaintext token in their CIMD metadata document under posthog_verification_token. When PostHog fetches the metadata, matching the token links the partner app to this organization and grants a higher default rate limit for account provisioning.

The plaintext value is only available on creation; we store a hash.

Required API key scopes

organization:write

Path parameters

  • id
    string

Example request

DELETE /api/organizations/:organization_id/cimd_verification_tokens/: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/cimd_verification_tokens/:id/

Example response

Status 204 No response body

List all domains

Required API key scopes

organization:read

Query parameters

  • limit
    integer
  • offset
    integer

Response


Example request

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

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",
"domain": "string",
"is_verified": true,
"verified_at": "2019-08-24T14:15:22Z",
"verification_challenge": "string",
"jit_provisioning_enabled": true,
"sso_enforcement": "string",
"has_saml": true,
"saml_entity_id": "string",
"saml_acs_url": "string",
"saml_x509_cert": "string",
"has_scim": true,
"scim_enabled": true,
"scim_base_url": "string",
"scim_bearer_token": "string"
}
]
}

Create domains

Required API key scopes

organization:write

Request parameters

  • domain
    string
  • jit_provisioning_enabled
    boolean
  • sso_enforcement
    string
  • saml_entity_id
    stringnull
  • saml_acs_url
    stringnull
  • saml_x509_cert
    stringnull
  • scim_enabled
    boolean

Response


Example request

POST /api/organizations/:organization_id/domains
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/organizations/:organization_id/domains/\
-d domain="string"

Example response

Status 201
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"domain": "string",
"is_verified": true,
"verified_at": "2019-08-24T14:15:22Z",
"verification_challenge": "string",
"jit_provisioning_enabled": true,
"sso_enforcement": "string",
"has_saml": true,
"saml_entity_id": "string",
"saml_acs_url": "string",
"saml_x509_cert": "string",
"has_scim": true,
"scim_enabled": true,
"scim_base_url": "string",
"scim_bearer_token": "string"
}

Retrieve domains

Required API key scopes

organization:read

Path parameters

  • id
    string

Response


Example request

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

Example response

Status 200
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"domain": "string",
"is_verified": true,
"verified_at": "2019-08-24T14:15:22Z",
"verification_challenge": "string",
"jit_provisioning_enabled": true,
"sso_enforcement": "string",
"has_saml": true,
"saml_entity_id": "string",
"saml_acs_url": "string",
"saml_x509_cert": "string",
"has_scim": true,
"scim_enabled": true,
"scim_base_url": "string",
"scim_bearer_token": "string"
}

Community questions

Questions about this page? or post a community question.