You can also use the query endpoint to retrieve persons. It enables you to use SQL to query the persons
table.
Persons
For instructions on how to authenticate to use this endpoint, see API overview.
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the capture API, the $set
and $unset
properties, or one of our SDKs.
Endpoints
List all persons
Required API key scopes
person: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
- distinct_idstring
Filter list by distinct id.
- emailstring
Filter persons by email (exact match)
- formatstringOne of:
"csv"
"json"
- limitinteger
Number of results to return per page.
- offsetinteger
The initial index from which to return the results.
- propertiesarray
Filter Persons by person properties.
- searchstring
Search persons, either by email (full text search) or distinct_id (exact match).
Response
Request
GET
/api /projects /:project_id /persons
export POSTHOG_PERSONAL_API_KEY=[your personal api key]curl \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \https://app.posthog.com/api/projects/:project_id/persons/
Response
Status 200
{"next": "https://app.posthog.com/api/projects/{project_id}/accounts/?offset=400&limit=100","previous": "https://app.posthog.com/api/projects/{project_id}/accounts/?offset=400&limit=100","count": 400,"results": [{"id": 0,"name": "string","distinct_ids": ["string"],"properties": null,"created_at": "2019-08-24T14:15:22Z","uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f"}]}
Retrieve persons
Required API key scopes
person:read
Path parameters
- idinteger
A unique integer value identifying this person.
- 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"
Response
Request
GET
/api /projects /:project_id /persons /:id
export POSTHOG_PERSONAL_API_KEY=[your personal api key]curl \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \https://app.posthog.com/api/projects/:project_id/persons/:id/
Response
Status 200
{"id": 0,"name": "string","distinct_ids": ["string"],"properties": null,"created_at": "2019-08-24T14:15:22Z","uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f"}
Update persons
It is better to use the capture API to update person properties.
This endpoint functionally captures a $set
event with a $set
property key along with the property values you want to update.
Required API key scopes
person:write
Path parameters
- idinteger
A unique integer value identifying this person.
- 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
- properties
Response
Request
PATCH
/api /projects /:project_id /persons /:id
export POSTHOG_PERSONAL_API_KEY=[your personal api key]curl -X PATCH \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \https://app.posthog.com/api/projects/:project_id/persons/:id/\-d name="string"
Response
Status 200
{"id": 0,"name": "string","distinct_ids": ["string"],"properties": null,"created_at": "2019-08-24T14:15:22Z","uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f"}
Delete persons
This is the main way to delete data in PostHog.
To learn more, see our data deletion docs.
Required API key scopes
person:write
Path parameters
- idinteger
A unique integer value identifying this person.
- 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
- delete_eventsboolean
If true, a task to delete all events associated with this person will be created and queued. The task does not run immediately and instead is batched together and at 5AM UTC every Sunday (controlled by environment variable CLEAR_CLICKHOUSE_REMOVED_DATA_SCHEDULE_CRON)
- formatstringOne of:
"csv"
"json"
Request
DELETE
/api /projects /:project_id /persons /:id
export POSTHOG_PERSONAL_API_KEY=[your personal api key]curl -X DELETE \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \https://app.posthog.com/api/projects/:project_id/persons/:id/
Response
Status 204 No response body
Retrieve persons activity retrieve
Required API key scopes
activity_log:read
Path parameters
- idinteger
A unique integer value identifying this person.
- 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"
Response
Request
GET
/api /projects /:project_id /persons /:id /activity
export POSTHOG_PERSONAL_API_KEY=[your personal api key]curl \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \https://app.posthog.com/api/projects/:project_id/persons/:id/activity/
Response
Status 200
{"id": 0,"name": "string","distinct_ids": ["string"],"properties": null,"created_at": "2019-08-24T14:15:22Z","uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f"}
Create persons delete property
It is better to use the capture API to change person properties.
This endpoint functionally captures a $delete_person_property
event with an $unset
property key along with the property value you want to delete.
Path parameters
- idinteger
A unique integer value identifying this person.
- 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
- $unsetstring
Specify the property key to delete
- formatstringOne of:
"csv"
"json"
Request parameters
- properties
Response
Request
POST
/api /projects /:project_id /persons /:id /delete_property
export POSTHOG_PERSONAL_API_KEY=[your personal api key]curl-H 'Content-Type: application/json'\-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \https://app.posthog.com/api/projects/:project_id/persons/:id/delete_property/\-d name="string"
Response
Status 200
{"id": 0,"name": "string","distinct_ids": ["string"],"properties": null,"created_at": "2019-08-24T14:15:22Z","uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f"}
Retrieve persons properties timeline
Path parameters
- idinteger
A unique integer value identifying this person.
- 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"
Response
Request
GET
/api /projects /:project_id /persons /:id /properties_timeline
export POSTHOG_PERSONAL_API_KEY=[your personal api key]curl \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \https://app.posthog.com/api/projects/:project_id/persons/:id/properties_timeline/
Response
Status 200
{"id": 0,"name": "string","distinct_ids": ["string"],"properties": null,"created_at": "2019-08-24T14:15:22Z","uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f"}
Create persons split
Path parameters
- idinteger
A unique integer value identifying this person.
- 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
- properties
Response
Request
POST
/api /projects /:project_id /persons /:id /split
export POSTHOG_PERSONAL_API_KEY=[your personal api key]curl-H 'Content-Type: application/json'\-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \https://app.posthog.com/api/projects/:project_id/persons/:id/split/\-d name="string"
Response
Status 200
{"id": 0,"name": "string","distinct_ids": ["string"],"properties": null,"created_at": "2019-08-24T14:15:22Z","uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f"}
Create persons update property
It is better to use the capture API to update person properties.
This endpoint functionally captures a $set
event with a $set
property key along with the property value you want to update.
Path parameters
- idinteger
A unique integer value identifying this person.
- 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"
- keystring
Specify the property key
- value
Specify the property value
Request parameters
- properties
Response
Request
POST
/api /projects /:project_id /persons /:id /update_property
export POSTHOG_PERSONAL_API_KEY=[your personal api key]curl-H 'Content-Type: application/json'\-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \https://app.posthog.com/api/projects/:project_id/persons/:id/update_property/\-d name="string"
Response
Status 200
{"id": 0,"name": "string","distinct_ids": ["string"],"properties": null,"created_at": "2019-08-24T14:15:22Z","uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f"}
Retrieve persons activity
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"
Response
Request
GET
/api /projects /:project_id /persons /activity
export POSTHOG_PERSONAL_API_KEY=[your personal api key]curl \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \https://app.posthog.com/api/projects/:project_id/persons/activity/
Response
Status 200
{"id": 0,"name": "string","distinct_ids": ["string"],"properties": null,"created_at": "2019-08-24T14:15:22Z","uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f"}
Retrieve persons cohorts
Required API key scopes
person:read
cohort: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"
Response
Request
GET
/api /projects /:project_id /persons /cohorts
export POSTHOG_PERSONAL_API_KEY=[your personal api key]curl \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \https://app.posthog.com/api/projects/:project_id/persons/cohorts/
Response
Status 200
{"id": 0,"name": "string","distinct_ids": ["string"],"properties": null,"created_at": "2019-08-24T14:15:22Z","uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f"}
Retrieve persons funnel
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"
Response
Request
GET
/api /projects /:project_id /persons /funnel
export POSTHOG_PERSONAL_API_KEY=[your personal api key]curl \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \https://app.posthog.com/api/projects/:project_id/persons/funnel/
Response
Status 200
{"id": 0,"name": "string","distinct_ids": ["string"],"properties": null,"created_at": "2019-08-24T14:15:22Z","uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f"}
Create persons funnel
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
- properties
Response
Request
POST
/api /projects /:project_id /persons /funnel
export POSTHOG_PERSONAL_API_KEY=[your personal api key]curl-H 'Content-Type: application/json'\-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \https://app.posthog.com/api/projects/:project_id/persons/funnel/\-d name="string"
Response
Status 200
{"id": 0,"name": "string","distinct_ids": ["string"],"properties": null,"created_at": "2019-08-24T14:15:22Z","uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f"}
Retrieve persons 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"
Response
Request
GET
/api /projects /:project_id /persons /funnel /correlation
export POSTHOG_PERSONAL_API_KEY=[your personal api key]curl \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \https://app.posthog.com/api/projects/:project_id/persons/funnel/correlation/
Response
Status 200
{"id": 0,"name": "string","distinct_ids": ["string"],"properties": null,"created_at": "2019-08-24T14:15:22Z","uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f"}
Create persons 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
- properties
Response
Request
POST
/api /projects /:project_id /persons /funnel /correlation
export POSTHOG_PERSONAL_API_KEY=[your personal api key]curl-H 'Content-Type: application/json'\-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \https://app.posthog.com/api/projects/:project_id/persons/funnel/correlation/\-d name="string"
Response
Status 200
{"id": 0,"name": "string","distinct_ids": ["string"],"properties": null,"created_at": "2019-08-24T14:15:22Z","uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f"}
Retrieve persons lifecycle
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"
Response
Request
GET
/api /projects /:project_id /persons /lifecycle
export POSTHOG_PERSONAL_API_KEY=[your personal api key]curl \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \https://app.posthog.com/api/projects/:project_id/persons/lifecycle/
Response
Status 200
{"id": 0,"name": "string","distinct_ids": ["string"],"properties": null,"created_at": "2019-08-24T14:15:22Z","uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f"}
Retrieve persons path
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"
Response
Request
GET
/api /projects /:project_id /persons /path
export POSTHOG_PERSONAL_API_KEY=[your personal api key]curl \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \https://app.posthog.com/api/projects/:project_id/persons/path/
Response
Status 200
{"id": 0,"name": "string","distinct_ids": ["string"],"properties": null,"created_at": "2019-08-24T14:15:22Z","uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f"}
Create persons path
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
- properties
Response
Request
POST
/api /projects /:project_id /persons /path
export POSTHOG_PERSONAL_API_KEY=[your personal api key]curl-H 'Content-Type: application/json'\-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \https://app.posthog.com/api/projects/:project_id/persons/path/\-d name="string"
Response
Status 200
{"id": 0,"name": "string","distinct_ids": ["string"],"properties": null,"created_at": "2019-08-24T14:15:22Z","uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f"}
Retrieve persons retention
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"
Response
Request
GET
/api /projects /:project_id /persons /retention
export POSTHOG_PERSONAL_API_KEY=[your personal api key]curl \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \https://app.posthog.com/api/projects/:project_id/persons/retention/
Response
Status 200
{"id": 0,"name": "string","distinct_ids": ["string"],"properties": null,"created_at": "2019-08-24T14:15:22Z","uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f"}
Retrieve persons stickiness
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"
Response
Request
GET
/api /projects /:project_id /persons /stickiness
export POSTHOG_PERSONAL_API_KEY=[your personal api key]curl \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \https://app.posthog.com/api/projects/:project_id/persons/stickiness/
Response
Status 200
{"id": 0,"name": "string","distinct_ids": ["string"],"properties": null,"created_at": "2019-08-24T14:15:22Z","uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f"}
Retrieve persons trends
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"
Response
Request
GET
/api /projects /:project_id /persons /trends
export POSTHOG_PERSONAL_API_KEY=[your personal api key]curl \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \https://app.posthog.com/api/projects/:project_id/persons/trends/
Response
Status 200
{"id": 0,"name": "string","distinct_ids": ["string"],"properties": null,"created_at": "2019-08-24T14:15:22Z","uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f"}
Retrieve persons values
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"
Response
Request
GET
/api /projects /:project_id /persons /values
export POSTHOG_PERSONAL_API_KEY=[your personal api key]curl \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \https://app.posthog.com/api/projects/:project_id/persons/values/
Response
Status 200
{"id": 0,"name": "string","distinct_ids": ["string"],"properties": null,"created_at": "2019-08-24T14:15:22Z","uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f"}