Insights
For instructions on how to authenticate to use this endpoint, see API overview.
Endpoints
List all insights
Required API key scopes
insight:read
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
- 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_cache
One 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_status
response field.
- short_idstring
Response
Request
GET
/api /projects /:project_id /insights
export 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:write
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
Response
Request
POST
/api /projects /:project_id /insights
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/\-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:read
Path 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 /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/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:read
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"
- 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_cache
One 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_status
response field.
Response
Request
GET
/api /projects /:project_id /insights /: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/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:write
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
Response
Request
PATCH
/api /projects /:project_id /insights /: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/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:write
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
DELETE
/api /projects /:project_id /insights /: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/insights/:id/
Response
Status 405 No response body
Retrieve insights activity retrieve
Required API key scopes
activity_log:read
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
GET
/api /projects /:project_id /insights /: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/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 /viewed
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/:id/viewed/\-d name="string"
Response
Status 200 No response body
Retrieve insights activity
Required API key scopes
activity_log:read
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 /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/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 /cancel
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/cancel/\-d name="string"
Response
Status 200 No response body
Retrieve insights funnel
Required API key scopes
insight:read
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
export 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:read
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
- eventsarray
Events to filter on. One of
events
oractions
is required. - actionsarray
Actions to filter on. One of
events
oractions
is 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:
-7d
What date to filter the results from. Can either be a date
2021-01-01
, or a relative date, like-7d
for last seven days,-1m
for last month,mStart
for start of the month oryStart
for the start of the year. - date_tostringDefault:
-7d
What date to filter the results to. Can either be a date
2021-01-01
, or a relative date, like-7d
for last seven days,-1m
for last month,mStart
for start of the month oryStart
for 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:
event
Type of property to break down on.
event
- eventperson
- personcohort
- cohortgroup
- groupsession
- sessionhogql
- hogql
- funnel_window_intervalintegerDefault:
14
Funnel window size. Set in combination with funnel_window_interval, so defaults to 'days'.
- funnel_window_interval_typeDefault:
days
The type of interval. Used in combination with
funnel_window_intervals
.DAY
- DAYSECOND
- SECONDMINUTE
- MINUTEHOUR
- HOURWEEK
- WEEKMONTH
- MONTH
- funnel_viz_typeDefault:
steps
The visualisation type.
steps
Track instances progress between steps of the funneltrends
Track how this funnel's conversion rate is trending over time.time_to_convert
Track how long it takes for instances to convert
trends
- trendstime_to_convert
- time_to_convertsteps
- steps
- funnel_order_typeDefault:
ordered
ordered
- 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.
0
means user,>0
means 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_interval
andfunnel_window_interval_type
Response
Request
POST
/api /projects /:project_id /insights /funnel
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/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 /correlation
export 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 /correlation
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/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_viewed
export 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:read
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 /path
export 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:read
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 /path
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/path/\-d name="string"
Response
Status 200 No response body
Retrieve insights retention
Required API key scopes
insight:read
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 /retention
export 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:read
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 /retention
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/retention/\-d name="string"