Core-12

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

Endpoints

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

Create insights sharing refresh

Required API key scopes

sharing_configuration:write

Path parameters

  • insight_id
    integer

Request parameters

  • enabled
    boolean
  • settings
  • password_required
    boolean

Response


Example request

POST /api/projects/:project_id/insights/:insight_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/insights/:insight_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 notebooks sharing

Required API key scopes

sharing_configuration:read

Path parameters

  • notebook_id
    string

Example request

GET /api/projects/:project_id/notebooks/:notebook_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/notebooks/:notebook_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 notebooks sharing passwords

Create a new password for the sharing configuration.

Required API key scopes

sharing_configuration:write

Path parameters

  • notebook_id
    string

Request parameters

  • enabled
    boolean
  • settings
  • password_required
    boolean

Response


Example request

POST /api/projects/:project_id/notebooks/:notebook_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/notebooks/:notebook_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 notebooks sharing passwords

Delete a password from the sharing configuration.

Required API key scopes

sharing_configuration:write

Path parameters

  • notebook_id
    string
  • password_id
    string

Example request

DELETE /api/projects/:project_id/notebooks/:notebook_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/notebooks/:notebook_id/sharing/passwords/:password_id/

Example response

Status 204 No response body

Create notebooks sharing refresh

Required API key scopes

sharing_configuration:write

Path parameters

  • notebook_id
    string

Request parameters

  • enabled
    boolean
  • settings
  • password_required
    boolean

Response


Example request

POST /api/projects/:project_id/notebooks/:notebook_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/notebooks/:notebook_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 project secret api keys

Required API key scopes

project:read

Query parameters

  • limit
    integer
  • offset
    integer

Response


Example request

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

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

Create project secret api keys

Required API key scopes

project:write

Request parameters

  • label
    string
  • scopes
    array

Response


Example request

POST /api/projects/:project_id/project_secret_api_keys
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/project_secret_api_keys/\
-d label="string",\
-d scopes="array"

Example response

Status 201
RESPONSE
{
"id": "string",
"label": "string",
"value": "string",
"mask_value": "string",
"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"
},
"last_used_at": "2019-08-24T14:15:22Z",
"last_rolled_at": "2019-08-24T14:15:22Z",
"scopes": [
"string"
]
}

Retrieve project secret api keys

Required API key scopes

project:read

Path parameters

  • id
    string

Response


Example request

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

Example response

Status 200
RESPONSE
{
"id": "string",
"label": "string",
"value": "string",
"mask_value": "string",
"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"
},
"last_used_at": "2019-08-24T14:15:22Z",
"last_rolled_at": "2019-08-24T14:15:22Z",
"scopes": [
"string"
]
}

Update project secret api keys

Required API key scopes

project:write

Path parameters

  • id
    string

Request parameters

  • label
    string
  • scopes
    array

Response


Example request

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

Example response

Status 200
RESPONSE
{
"id": "string",
"label": "string",
"value": "string",
"mask_value": "string",
"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"
},
"last_used_at": "2019-08-24T14:15:22Z",
"last_rolled_at": "2019-08-24T14:15:22Z",
"scopes": [
"string"
]
}

Delete project secret api keys

Required API key scopes

project:write

Path parameters

  • id
    string

Example request

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

Example response

Status 204 No response body

Create project secret api keys roll

Roll a project secret API key

Path parameters

  • id
    string

Response


Example request

POST /api/projects/:project_id/project_secret_api_keys/:id/roll
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/project_secret_api_keys/:id/roll/

Example response

Status 200
RESPONSE
{
"id": "string",
"label": "string",
"value": "string",
"mask_value": "string",
"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"
},
"last_used_at": "2019-08-24T14:15:22Z",
"last_rolled_at": "2019-08-24T14:15:22Z",
"scopes": [
"string"
]
}

List all property definitions

Required API key scopes

property_definition:read

Query parameters

  • event_names
    string
  • exclude_core_properties
    boolean
    Default: false
  • exclude_hidden
    boolean
    Default: false
  • exclude_restricted
    boolean
    Default: false
  • excluded_properties
    string
  • filter_by_event_names
    booleannull
  • group_type_index
    integer
  • is_feature_flag
    booleannull
  • is_numerical
    booleannull
  • limit
    integer
  • offset
    integer
  • properties
    string
  • search
    string
  • type
    string
    Default: event
    One of: "event""person""group""session"
  • verified
    booleannull

Response


Example request

GET /api/projects/:project_id/property_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/property_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",
"description": "string",
"tags": [
null
],
"is_numerical": true,
"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": {},
"role_at_organization": "engineering"
},
"is_seen_on_filtered_events": true,
"property_type": "DateTime",
"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": {},
"role_at_organization": "engineering"
},
"hidden": true
}
]
}

Retrieve property definitions

Required API key scopes

property_definition:read

Path parameters

  • id
    string

Response


Example request

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

Example response

Status 200
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"description": "string",
"tags": [
null
],
"is_numerical": true,
"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": {},
"role_at_organization": "engineering"
},
"is_seen_on_filtered_events": true,
"property_type": "DateTime",
"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": {},
"role_at_organization": "engineering"
},
"hidden": true
}

Update property definitions

Required API key scopes

property_definition:write

Path parameters

  • id
    string

Request parameters

  • description
    stringnull
  • tags
    array
  • property_type
  • verified
    boolean
  • hidden
    booleannull

Response


Example request

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

Example response

Status 200
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"description": "string",
"tags": [
null
],
"is_numerical": true,
"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": {},
"role_at_organization": "engineering"
},
"is_seen_on_filtered_events": true,
"property_type": "DateTime",
"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": {},
"role_at_organization": "engineering"
},
"hidden": true
}

Delete property definitions

Required API key scopes

property_definition:write

Path parameters

  • id
    string

Example request

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

Example response

Status 204 No response body

Create property definitions bulk update tags

Bulk update tags on multiple objects.

PAT access: this action has no required_scopes= on the decorator — inheriting viewsets must add "bulk_update_tags" to their scope_object_write_actions list to accept personal API keys. Without that opt-in, APIScopePermission rejects PAT requests with "This action does not support personal API key access". Done per-viewset so granting <scope>:write for one resource doesn't leak access to sibling resources that share this mixin.

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

Request parameters

  • ids
    array
  • action
  • tags
    array

Response


Example request

POST /api/projects/:project_id/property_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/property_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 property definitions seen together

Allows a caller to provide a list of event names and a single property name Returns a map of the event names to a boolean representing whether that property has ever been seen with that event_name

Required API key scopes

property_definition:read

Example request

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

Example response

Status 200 No response body

List all session recordings sharing

Required API key scopes

sharing_configuration:read

Path parameters

  • recording_id
    string

Example request

GET /api/projects/:project_id/session_recordings/:recording_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/session_recordings/:recording_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
}
]
}

Community questions

Questions about this page? or post a community question.