Product
For instructions on how to authenticate to use this endpoint, see API overview.
Endpoints
GET | |
POST | |
GET | |
PATCH | |
DELETE | |
GET | |
GET | |
GET | |
POST | |
GET | |
PATCH | |
DELETE | |
GET | |
GET | |
GET | |
POST | |
GET | |
POST |
List all environments elements
Required API key scopes
element:readQuery parameters
- limitinteger
- offsetinteger
Response
Example request
GET /api /environments /:environment_id /elementsExample response
Status 200
Create environments elements
Required API key scopes
element:writeRequest parameters
- textstringnull
- tag_namestringnull
- attr_classarraynull
- hrefstringnull
- attr_idstringnull
- nth_childintegernull
- nth_of_typeintegernull
- attributes
- orderintegernull
Response
Example request
POST /api /environments /:environment_id /elementsExample response
Status 201
Retrieve environments elements
Required API key scopes
element:readPath parameters
- idinteger
Response
Example request
GET /api /environments /:environment_id /elements /:idExample response
Status 200
Update environments elements
Required API key scopes
element:writePath parameters
- idinteger
Request parameters
- textstringnull
- tag_namestringnull
- attr_classarraynull
- hrefstringnull
- attr_idstringnull
- nth_childintegernull
- nth_of_typeintegernull
- attributes
- orderintegernull
Response
Example request
PATCH /api /environments /:environment_id /elements /:idExample response
Status 200
Delete environments elements
Required API key scopes
element:writePath parameters
- idinteger
Example request
DELETE /api /environments /:environment_id /elements /:idExample response
Status 204 No response body
Retrieve environments elements stats
The original version of this API always and only returned $autocapture elements If no include query parameter is sent this remains true. Now, you can pass a combination of include query parameters to get different types of elements Currently only $autocapture and $rageclick and $dead_click are supported
Required API key scopes
element:readExample request
GET /api /environments /:environment_id /elements /statsExample response
Status 200 No response body
Retrieve environments elements values
Required API key scopes
element:readExample request
GET /api /environments /:environment_id /elements /valuesExample response
Status 200 No response body
List all environments insights
Also available via the PostHog MCP server:
insights-list— Get all insights
DRF ViewSet mixin that gates coalesced responses behind permission checks.
The QueryCoalescingMiddleware attaches cached response data to request.META["_coalesced_response"] for followers. This mixin runs DRF's initial() (auth + permissions + throttling) before returning the cached response, ensuring the request is authorized.
Required API key scopes
insight:readQuery parameters
- basicboolean
- created_bystring
- created_date_fromstring
- created_date_tostring
- dashboardsstring
- date_fromstring
- date_tostring
- favoritedboolean
- formatstringOne of:
"csv""json" - insightstringOne of:
"FUNNELS""JSON""LIFECYCLE""PATHS""RETENTION""SQL""STICKINESS""TRENDS" - last_viewed_date_fromstring
- last_viewed_date_tostring
- limitinteger
- offsetinteger
- refreshstringDefault:
force_cacheOne of:"async""async_except_on_cache_miss""blocking""force_async""force_blocking""force_cache""lazy_async" - savedboolean
- searchstring
- short_idstring
- tagsstring
- userboolean
Response
Example request
GET /api /environments /:environment_id /insightsExample response
Status 200
Create environments insights
Also available via the PostHog MCP server:
insight-create— Create insight
DRF ViewSet mixin that gates coalesced responses behind permission checks.
The QueryCoalescingMiddleware attaches cached response data to request.META["_coalesced_response"] for followers. This mixin runs DRF's initial() (auth + permissions + throttling) before returning the cached response, ensuring the request is authorized.
Required API key scopes
insight:writeQuery parameters
- formatstringOne of:
"csv""json"
Request parameters
- namestringnull
- derived_namestringnull
- query
- orderintegernull
- deletedboolean
- dashboardsarray
- descriptionstringnull
- tagsarray
- favoritedboolean
- _create_in_folderstring
Response
Example request
POST /api /environments /:environment_id /insightsExample response
Status 201
Retrieve environments insights
Also available via the PostHog MCP server:
insight-get— Get insight
DRF ViewSet mixin that gates coalesced responses behind permission checks.
The QueryCoalescingMiddleware attaches cached response data to request.META["_coalesced_response"] for followers. This mixin runs DRF's initial() (auth + permissions + throttling) before returning the cached response, ensuring the request is authorized.
Required API key scopes
insight:readPath parameters
- id
Query parameters
- filters_overridestring
- formatstringOne of:
"csv""json" - from_dashboardinteger
- refreshstringDefault:
force_cacheOne of:"async""async_except_on_cache_miss""blocking""force_async""force_blocking""force_cache""lazy_async" - variables_overridestring
Response
Example request
GET /api /environments /:environment_id /insights /:idExample response
Status 200
Update environments insights
Also available via the PostHog MCP server:
insight-update— Update insight
DRF ViewSet mixin that gates coalesced responses behind permission checks.
The QueryCoalescingMiddleware attaches cached response data to request.META["_coalesced_response"] for followers. This mixin runs DRF's initial() (auth + permissions + throttling) before returning the cached response, ensuring the request is authorized.
Required API key scopes
insight:writePath parameters
- id
Query parameters
- formatstringOne of:
"csv""json"
Request parameters
- namestringnull
- derived_namestringnull
- query
- orderintegernull
- deletedboolean
- dashboardsarray
- descriptionstringnull
- tagsarray
- favoritedboolean
- _create_in_folderstring
Response
Example request
PATCH /api /environments /:environment_id /insights /:idExample response
Status 200
Delete environments insights
Also available via the PostHog MCP server:
insight-delete— Delete insight
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true
Required API key scopes
insight:writePath parameters
- id
Query parameters
- formatstringOne of:
"csv""json"
Example request
DELETE /api /environments /:environment_id /insights /:idExample response
Status 405 No response body
Retrieve environments insights activity
Also available via the PostHog MCP server:
insights-activity-retrieve— Get insight activity log
Audit trail for a single insight — every change made to it, by whom, and when. Use this when you want the change history of a specific insight; use the project-wide activity endpoint for a broader view.
Required API key scopes
activity_log:readPath parameters
- idinteger
Query parameters
- formatstringOne of:
"csv""json" - limitinteger
- pageinteger
Response
Example request
GET /api /environments /:environment_id /insights /:id /activityExample response
Status 200
Retrieve environments insights analyze
DRF ViewSet mixin that gates coalesced responses behind permission checks.
The QueryCoalescingMiddleware attaches cached response data to request.META["_coalesced_response"] for followers. This mixin runs DRF's initial() (auth + permissions + throttling) before returning the cached response, ensuring the request is authorized.
Path parameters
- idinteger
Query parameters
- formatstringOne of:
"csv""json"
Example request
GET /api /environments /:environment_id /insights /:id /analyzeExample response
Status 200 No response body
Retrieve environments insights suggestions
DRF ViewSet mixin that gates coalesced responses behind permission checks.
The QueryCoalescingMiddleware attaches cached response data to request.META["_coalesced_response"] for followers. This mixin runs DRF's initial() (auth + permissions + throttling) before returning the cached response, ensuring the request is authorized.
Path parameters
- idinteger
Query parameters
- formatstringOne of:
"csv""json"
Example request
GET /api /environments /:environment_id /insights /:id /suggestionsExample response
Status 200 No response body
Create environments insights suggestions
DRF ViewSet mixin that gates coalesced responses behind permission checks.
The QueryCoalescingMiddleware attaches cached response data to request.META["_coalesced_response"] for followers. This mixin runs DRF's initial() (auth + permissions + throttling) before returning the cached response, ensuring the request is authorized.
Path parameters
- idinteger
Query parameters
- formatstringOne of:
"csv""json"
Request parameters
- namestringnull
- derived_namestringnull
- query
- orderintegernull
- deletedboolean
- dashboardsarray
- descriptionstringnull
- tagsarray
- favoritedboolean
- _create_in_folderstring
Example request
POST /api /environments /:environment_id /insights /:id /suggestionsExample response
Status 200 No response body
Retrieve environments insights all activity
Also available via the PostHog MCP server:
insights-all-activity-retrieve— Get recent insight activity across the project
Project-wide audit trail across all insights — who created, edited, deleted, or restored insights, what changed (with before/after diffs), and when. Useful for surfacing what people (or agents) have been working on recently.
Required API key scopes
activity_log:readQuery parameters
- formatstringOne of:
"csv""json" - limitinteger
- pageinteger
Response
Example request
GET /api /environments /:environment_id /insights /activityExample response
Status 200
Create environments insights 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
Query parameters
- formatstringOne of:
"csv""json"
Request parameters
- idsarray
- action
- tagsarray
Response
Example request
POST /api /environments /:environment_id /insights /bulk_update_tags