Insights
For instructions on how to authenticate to use this endpoint, see API overview.
Endpoints
List all insights
Required API key scopes
insight:readPath parameters
- project_idstring
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
Query parameters
- created_byinteger
- formatstringOne of:
"csv""json" - limitinteger
Number of results to return per page.
- offsetinteger
The initial index from which to return the results.
- refreshstringDefault:
force_cacheOne of:"async""async_except_on_cache_miss""blocking""force_async""force_blocking""force_cache""lazy_async"Whether to refresh the retrieved insights, how aggresively, and if sync or async:
'force_cache'- return cached data or a cache miss; always completes immediately as it never calculates'blocking'- calculate synchronously (returning only when the query is done), UNLESS there are very fresh results in the cache'async'- kick off background calculation (returning immediately with a query status), UNLESS there are very fresh results in the cache'lazy_async'- kick off background calculation, UNLESS there are somewhat fresh results in the cache'force_blocking'- calculate synchronously, even if fresh results are already cached'force_async'- kick off background calculation, even if fresh results are already cached Background calculation can be tracked using thequery_statusresponse field.
- short_idstring
Response
Request
GET /api /projects /:project_id /insightsexport POSTHOG_PERSONAL_API_KEY=[your personal api key]curl \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \<ph_app_host>/api/projects/:project_id/insights/
Response
Status 200
{"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,"short_id": "string","name": "string","derived_name": "string","filters": null,"query": null,"order": -2147483648,"deleted": true,"dashboards": [0],"dashboard_tiles": [{"id": 0,"dashboard_id": 0,"deleted": true}],"last_refresh": "string","cache_target_age": "string","next_allowed_client_refresh": "string","result": "string","hasMore": "string","columns": "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": {"property1": null,"property2": null}},"description": "string","updated_at": "2019-08-24T14:15:22Z","tags": [null],"favorited": true,"saved": true,"last_modified_at": "2019-08-24T14:15:22Z","last_modified_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}},"is_sample": true,"effective_restriction_level": 21,"effective_privilege_level": 21,"timezone": "string","is_cached": "string","query_status": "string","hogql": "string","types": "string"}]}
Create insights
Required API key scopes
insight:writePath parameters
- project_idstring
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
Query parameters
- formatstringOne of:
"csv""json"
Request parameters
- namestring
- derived_namestring
- filters
- query
Query node JSON string
- orderinteger
- deletedboolean
- dashboardsarray
DEPRECATED. Will be removed in a future release. Use dashboard_tiles instead. A dashboard ID for each of the dashboards that this insight is displayed on. - descriptionstring
- tagsarray
- favoritedboolean
- savedboolean
Response
Request
POST /api /projects /:project_id /insightsexport 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/\-d name="string"
Response
Status 201
{"id": 0,"short_id": "string","name": "string","derived_name": "string","filters": null,"query": null,"order": -2147483648,"deleted": true,"dashboards": [0],"dashboard_tiles": [{"id": 0,"dashboard_id": 0,"deleted": true}],"last_refresh": "string","cache_target_age": "string","next_allowed_client_refresh": "string","result": "string","hasMore": "string","columns": "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": {"property1": null,"property2": null}},"description": "string","updated_at": "2019-08-24T14:15:22Z","tags": [null],"favorited": true,"saved": true,"last_modified_at": "2019-08-24T14:15:22Z","last_modified_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}},"is_sample": true,"effective_restriction_level": 21,"effective_privilege_level": 21,"timezone": "string","is_cached": "string","query_status": "string","hogql": "string","types": "string"}
List all insights sharing
Required API key scopes
sharing_configuration:readPath parameters
- insight_idinteger
- project_idstring
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
Request
GET /api /projects /:project_id /insights /:insight_id /sharingexport POSTHOG_PERSONAL_API_KEY=[your personal api key]curl \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \<ph_app_host>/api/projects/:project_id/insights/:insight_id/sharing/
Response
Status 200
{"created_at": "2019-08-24T14:15:22Z","enabled": true,"access_token": "string"}
Retrieve insights
Required API key scopes
insight:readPath parameters
- idinteger
A unique integer value identifying this insight.
- project_idstring
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
Query parameters
- formatstringOne of:
"csv""json" - from_dashboardinteger
Only if loading an insight in the context of a dashboard: The relevant dashboard's ID. When set, the specified dashboard's filters and date range override will be applied.
- refreshstringDefault:
force_cacheOne of:"async""async_except_on_cache_miss""blocking""force_async""force_blocking""force_cache""lazy_async"Whether to refresh the insight, how aggresively, and if sync or async:
'force_cache'- return cached data or a cache miss; always completes immediately as it never calculates'blocking'- calculate synchronously (returning only when the query is done), UNLESS there are very fresh results in the cache'async'- kick off background calculation (returning immediately with a query status), UNLESS there are very fresh results in the cache'lazy_async'- kick off background calculation, UNLESS there are somewhat fresh results in the cache'force_blocking'- calculate synchronously, even if fresh results are already cached'force_async'- kick off background calculation, even if fresh results are already cached Background calculation can be tracked using thequery_statusresponse field.
Response
Request
GET /api /projects /:project_id /insights /:idexport POSTHOG_PERSONAL_API_KEY=[your personal api key]curl \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \<ph_app_host>/api/projects/:project_id/insights/:id/
Response
Status 200
{"id": 0,"short_id": "string","name": "string","derived_name": "string","filters": null,"query": null,"order": -2147483648,"deleted": true,"dashboards": [0],"dashboard_tiles": [{"id": 0,"dashboard_id": 0,"deleted": true}],"last_refresh": "string","cache_target_age": "string","next_allowed_client_refresh": "string","result": "string","hasMore": "string","columns": "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": {"property1": null,"property2": null}},"description": "string","updated_at": "2019-08-24T14:15:22Z","tags": [null],"favorited": true,"saved": true,"last_modified_at": "2019-08-24T14:15:22Z","last_modified_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}},"is_sample": true,"effective_restriction_level": 21,"effective_privilege_level": 21,"timezone": "string","is_cached": "string","query_status": "string","hogql": "string","types": "string"}
Update insights
Required API key scopes
insight:writePath parameters
- idinteger
A unique integer value identifying this insight.
- project_idstring
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
Query parameters
- formatstringOne of:
"csv""json"
Request parameters
- namestring
- derived_namestring
- filters
- query
Query node JSON string
- orderinteger
- deletedboolean
- dashboardsarray
DEPRECATED. Will be removed in a future release. Use dashboard_tiles instead. A dashboard ID for each of the dashboards that this insight is displayed on. - descriptionstring
- tagsarray
- favoritedboolean
- savedboolean
Response
Request
PATCH /api /projects /:project_id /insights /:idexport 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/insights/:id/\-d name="string"
Response
Status 200
{"id": 0,"short_id": "string","name": "string","derived_name": "string","filters": null,"query": null,"order": -2147483648,"deleted": true,"dashboards": [0],"dashboard_tiles": [{"id": 0,"dashboard_id": 0,"deleted": true}],"last_refresh": "string","cache_target_age": "string","next_allowed_client_refresh": "string","result": "string","hasMore": "string","columns": "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": {"property1": null,"property2": null}},"description": "string","updated_at": "2019-08-24T14:15:22Z","tags": [null],"favorited": true,"saved": true,"last_modified_at": "2019-08-24T14:15:22Z","last_modified_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}},"is_sample": true,"effective_restriction_level": 21,"effective_privilege_level": 21,"timezone": "string","is_cached": "string","query_status": "string","hogql": "string","types": "string"}
Delete insights
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
- idinteger
A unique integer value identifying this insight.
- project_idstring
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
Query parameters
- formatstringOne of:
"csv""json"
Request
DELETE /api /projects /:project_id /insights /:idexport 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/insights/:id/
Response
Status 405 No response body
Retrieve insights activity retrieve
Required API key scopes
activity_log:readPath parameters
- idinteger
A unique integer value identifying this insight.
- project_idstring
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
Query parameters
- formatstringOne of:
"csv""json"
Request
GET /api /projects /:project_id /insights /:id /activityexport POSTHOG_PERSONAL_API_KEY=[your personal api key]curl \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \<ph_app_host>/api/projects/:project_id/insights/:id/activity/
Response
Status 200 No response body
Create insights viewed
Path parameters
- idinteger
A unique integer value identifying this insight.
- project_idstring
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
Query parameters
- formatstringOne of:
"csv""json"
Request parameters
- namestring
- derived_namestring
- filters
- query
Query node JSON string
- orderinteger
- deletedboolean
- dashboardsarray
DEPRECATED. Will be removed in a future release. Use dashboard_tiles instead. A dashboard ID for each of the dashboards that this insight is displayed on. - descriptionstring
- tagsarray
- favoritedboolean
- savedboolean
Request
POST /api /projects /:project_id /insights /:id /viewedexport 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/:id/viewed/\-d name="string"
Response
Status 200 No response body
Retrieve insights activity
Required API key scopes
activity_log:readPath parameters
- project_idstring
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
Query parameters
- formatstringOne of:
"csv""json"
Request
GET /api /projects /:project_id /insights /activityexport POSTHOG_PERSONAL_API_KEY=[your personal api key]curl \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \<ph_app_host>/api/projects/:project_id/insights/activity/
Response
Status 200 No response body
Create insights cancel
Path parameters
- project_idstring
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
Query parameters
- formatstringOne of:
"csv""json"
Request parameters
- namestring
- derived_namestring
- filters
- query
Query node JSON string
- orderinteger
- deletedboolean
- dashboardsarray
DEPRECATED. Will be removed in a future release. Use dashboard_tiles instead. A dashboard ID for each of the dashboards that this insight is displayed on. - descriptionstring
- tagsarray
- favoritedboolean
- savedboolean
Request
POST /api /projects /:project_id /insights /cancelexport 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/cancel/\-d name="string"
Response
Status 200 No response body
Retrieve insights funnel
Required API key scopes
insight:readPath parameters
- project_idstring
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
Query parameters
- formatstringOne of:
"csv""json"
Request
GET /api /projects /:project_id /insights /funnelexport POSTHOG_PERSONAL_API_KEY=[your personal api key]curl \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \<ph_app_host>/api/projects/:project_id/insights/funnel/
Response
Status 200 No response body
Create funnels
Required API key scopes
insight:readPath parameters
- project_idstring
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
Query parameters
- formatstringOne of:
"csv""json"
Request parameters
- eventsarray
Events to filter on. One of
eventsoractionsis required. - actionsarray
Actions to filter on. One of
eventsoractionsis required. - properties
Filter events by event property, person property, cohort, groups and more.
- filter_test_accountsboolean
Whether to filter out internal and test accounts. See "project settings" in your PostHog account for the filters.
- date_fromstringDefault:
-7dWhat date to filter the results from. Can either be a date
2021-01-01, or a relative date, like-7dfor last seven days,-1mfor last month,mStartfor start of the month oryStartfor the start of the year. - date_tostringDefault:
-7dWhat date to filter the results to. Can either be a date
2021-01-01, or a relative date, like-7dfor last seven days,-1mfor last month,mStartfor start of the month oryStartfor the start of the year. - breakdownstring
A property or cohort to break down on. You can select the type of the property with breakdown_type.
event(default): a property keyperson: a person property keycohort: an array of cohort IDs (ie[9581,5812])
- breakdown_typeDefault:
eventType of property to break down on.
event- eventperson- personcohort- cohortgroup- groupsession- sessionhogql- hogql
- funnel_window_intervalintegerDefault:
14Funnel window size. Set in combination with funnel_window_interval, so defaults to 'days'.
- funnel_window_interval_typeDefault:
daysThe type of interval. Used in combination with
funnel_window_intervals.DAY- DAYSECOND- SECONDMINUTE- MINUTEHOUR- HOURWEEK- WEEKMONTH- MONTH
- funnel_viz_typeDefault:
stepsThe visualisation type.
stepsTrack instances progress between steps of the funneltrendsTrack how this funnel's conversion rate is trending over time.time_to_convertTrack how long it takes for instances to convert
trends- trendstime_to_convert- time_to_convertsteps- steps
- funnel_order_typeDefault:
orderedordered- Step B must happen after Step A, but any number events can happen between A and B.strict- Step B must happen directly after Step A without any events in between.unordered- Steps can be completed in any sequence.
strict- strictunordered- unorderedordered- ordered
- exclusionsarray
Exclude users/groups that completed the specified event between two specific steps. Note that these users/groups will be completely excluded from the entire funnel.
- aggregation_group_type_indexinteger0
Aggregate by users or by groups.
0means user,>0means a group. See interface for the corresponding ID of the group. - breakdown_limitintegerDefault:
10 - funnel_window_daysintegerDefault:
14(DEPRECATED) Funnel window size in days. Use
funnel_window_intervalandfunnel_window_interval_type
Response
Request
POST /api /projects /:project_id /insights /funnelexport 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/funnel/\-d events=[{"id":"$pageview"}]
Response
Status 200 Note, if funnel_viz_type is set the response will be different.
{"is_cached": true,"last_refresh": "2019-08-24T14:15:22Z","timezone": "UTC","result": [{"count": 0,"action_id": "string","average_conversion_time": 0,"median_conversion_time": 0,"converted_people_url": "string","dropped_people_url": "string","order": "string"}]}
Retrieve insights funnel correlation
Path parameters
- project_idstring
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
Query parameters
- formatstringOne of:
"csv""json"
Request
GET /api /projects /:project_id /insights /funnel /correlationexport POSTHOG_PERSONAL_API_KEY=[your personal api key]curl \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \<ph_app_host>/api/projects/:project_id/insights/funnel/correlation/
Response
Status 200 No response body
Create insights funnel correlation
Path parameters
- project_idstring
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
Query parameters
- formatstringOne of:
"csv""json"
Request parameters
- namestring
- derived_namestring
- filters
- query
Query node JSON string
- orderinteger
- deletedboolean
- dashboardsarray
DEPRECATED. Will be removed in a future release. Use dashboard_tiles instead. A dashboard ID for each of the dashboards that this insight is displayed on. - descriptionstring
- tagsarray
- favoritedboolean
- savedboolean
Request
POST /api /projects /:project_id /insights /funnel /correlationexport 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/funnel/correlation/\-d name="string"
Response
Status 200 No response body
Retrieve insights my last viewed
Returns basic details about the last 5 insights viewed by this user. Most recently viewed first.
Path parameters
- project_idstring
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
Query parameters
- formatstringOne of:
"csv""json"
Request
GET /api /projects /:project_id /insights /my_last_viewedexport POSTHOG_PERSONAL_API_KEY=[your personal api key]curl \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \<ph_app_host>/api/projects/:project_id/insights/my_last_viewed/
Response
Status 200 No response body
Retrieve insights path
Required API key scopes
insight:readPath parameters
- project_idstring
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
Query parameters
- formatstringOne of:
"csv""json"
Request
GET /api /projects /:project_id /insights /pathexport POSTHOG_PERSONAL_API_KEY=[your personal api key]curl \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \<ph_app_host>/api/projects/:project_id/insights/path/
Response
Status 200 No response body
Create insights path
Required API key scopes
insight:readPath parameters
- project_idstring
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
Query parameters
- formatstringOne of:
"csv""json"
Request parameters
- namestring
- derived_namestring
- filters
- query
Query node JSON string
- orderinteger
- deletedboolean
- dashboardsarray
DEPRECATED. Will be removed in a future release. Use dashboard_tiles instead. A dashboard ID for each of the dashboards that this insight is displayed on. - descriptionstring
- tagsarray
- favoritedboolean
- savedboolean
Request
POST /api /projects /:project_id /insights /pathexport 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/path/\-d name="string"
Response
Status 200 No response body
Retrieve insights retention
Required API key scopes
insight:readPath parameters
- project_idstring
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
Query parameters
- formatstringOne of:
"csv""json"
Request
GET /api /projects /:project_id /insights /retentionexport POSTHOG_PERSONAL_API_KEY=[your personal api key]curl \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \<ph_app_host>/api/projects/:project_id/insights/retention/
Response
Status 200 No response body
Create insights retention
Required API key scopes
insight:readPath parameters
- project_idstring
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
Query parameters
- formatstringOne of:
"csv""json"
Request parameters
- namestring
- derived_namestring
- filters
- query
Query node JSON string
- orderinteger
- deletedboolean
- dashboardsarray
DEPRECATED. Will be removed in a future release. Use dashboard_tiles instead. A dashboard ID for each of the dashboards that this insight is displayed on. - descriptionstring
- tagsarray
- favoritedboolean
- savedboolean
Request
POST /api /projects /:project_id /insights /retentionexport 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/retention/\-d name="string"