How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

PostHog persons API

The persons API from PostHog — 40 operation(s) for persons.

PostHog persons API is one of 139 APIs that PostHog publishes on the APIs.io network, described by a machine-readable OpenAPI specification and an AsyncAPI event-driven specification.

Tagged areas include Persons. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, a getting-started guide, authentication docs, and an AsyncAPI specification.

This API exposes 48 operations across 40 paths, and defines 19 schemas. It is described by OpenAPI 3.2.0, at version 1.0.0.

Requests are made against a single base URL, https://app.posthog.com/api.

48 operations 40 paths 19 schemas 26 GET2 PATCH18 POST2 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.2.0
API Version
1.0.0
Base URL
https://app.posthog.com/api
Authentication
HTTP Bearer
Resource Areas
1

Authentication & Security 1

PostHog persons API declares 1 security scheme for authenticating requests. It accepts HTTP bearer tokens (PersonalAPIKeyAuth).

Paths & Operations 48

Across 40 paths, the API surfaces 48 operations — 26 GET, 2 PATCH, 18 POST, 2 PUT. Each is listed below with its method, path, parameters, and response codes.

persons 48
GET
/api/environments/{environment_id}/persons/deprecated
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
environments_persons_list 8 params → 200
GET
/api/environments/{environment_id}/persons/{id}/deprecated
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
environments_persons_retrieve 3 params → 200
PUT
/api/environments/{environment_id}/persons/{id}/deprecated
Only for setting properties on the person. "properties" from the request data will be updated via a "$set" event. This means that only the properties listed will be updated, but other properties won'…
environments_persons_update 3 params body → 200
PATCH
/api/environments/{environment_id}/persons/{id}/deprecated
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
environments_persons_partial_update 3 params body → 200
GET
/api/environments/{environment_id}/persons/{id}/activity/deprecated
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
environments_persons_activity_retrieve 3 params → 200
POST
/api/environments/{environment_id}/persons/{id}/delete_property/deprecated
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
environments_persons_delete_property_create 3 params body → 200
GET
/api/environments/{environment_id}/persons/{id}/properties_timeline/deprecated
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
environments_persons_properties_timeline_retrieve 3 params → 200
POST
/api/environments/{environment_id}/persons/{id}/split/deprecated
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
environments_persons_split_create 3 params body → 200
POST
/api/environments/{environment_id}/persons/{id}/update_property/deprecated
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
environments_persons_update_property_create 3 params body → 200
GET
/api/environments/{environment_id}/persons/activity/deprecated
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
environments_persons_all_activity_retrieve 2 params → 200
POST
/api/environments/{environment_id}/persons/batch_by_distinct_ids/deprecated
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
environments_persons_batch_by_distinct_ids_create 2 params body → 200
POST
/api/environments/{environment_id}/persons/batch_by_uuids/deprecated
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
environments_persons_batch_by_uuids_create 2 params body → 200
POST
/api/environments/{environment_id}/persons/bulk_delete/deprecated
This endpoint allows you to bulk delete persons, either by the PostHog person IDs or by distinct IDs. You can pass in a maximum of 1000 IDs per call. Only events captured before the request will be d…
environments_persons_bulk_delete_create 2 params body → 202
GET
/api/environments/{environment_id}/persons/cohorts/deprecated
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
environments_persons_cohorts_retrieve 3 params → 200
GET
/api/environments/{environment_id}/persons/deletion_status/deprecated
List the status of queued event deletions for persons. When you delete a person with deleteevents=true, an async deletion is queued. Use this endpoint to check whether those deletions are still pendi…
environments_persons_deletion_status_list 6 params → 200
GET
/api/environments/{environment_id}/persons/funnel/deprecated
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
environments_persons_funnel_retrieve 2 params → 200
POST
/api/environments/{environment_id}/persons/funnel/deprecated
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
environments_persons_funnel_create 2 params body → 200
GET
/api/environments/{environment_id}/persons/funnel/correlation/deprecated
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
environments_persons_funnel_correlation_retrieve 2 params → 200
POST
/api/environments/{environment_id}/persons/funnel/correlation/deprecated
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
environments_persons_funnel_correlation_create 2 params body → 200
GET
/api/environments/{environment_id}/persons/lifecycle/deprecated
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
environments_persons_lifecycle_retrieve 2 params → 200
GET
/api/environments/{environment_id}/persons/properties_at_time/deprecated
Get person properties as they existed at a specific point in time. This endpoint reconstructs person properties by querying ClickHouse events for $set and $setonce operations up to the specified time…
environments_persons_properties_at_time_retrieve 7 params → 200400404500
POST
/api/environments/{environment_id}/persons/reset_person_distinct_id/deprecated
Reset a distinctid for a deleted person. This allows the distinctid to be used again.
environments_persons_reset_person_distinct_id_create 2 params body → 200
GET
/api/environments/{environment_id}/persons/trends/deprecated
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
environments_persons_trends_retrieve 2 params → 200
GET
/api/environments/{environment_id}/persons/values/deprecated
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
environments_persons_values_retrieve 4 params → 200
GET
/api/projects/{project_id}/persons/
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
persons_list 8 params → 200
GET
/api/projects/{project_id}/persons/{id}/
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
persons_retrieve 3 params → 200
PUT
/api/projects/{project_id}/persons/{id}/
Only for setting properties on the person. "properties" from the request data will be updated via a "$set" event. This means that only the properties listed will be updated, but other properties won'…
persons_update 3 params body → 200
PATCH
/api/projects/{project_id}/persons/{id}/
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
persons_partial_update 3 params body → 200
GET
/api/projects/{project_id}/persons/{id}/activity/
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
persons_activity_retrieve 3 params → 200
POST
/api/projects/{project_id}/persons/{id}/delete_property/
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
persons_delete_property_create 3 params body → 200
GET
/api/projects/{project_id}/persons/{id}/properties_timeline/
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
persons_properties_timeline_retrieve 3 params → 200
POST
/api/projects/{project_id}/persons/{id}/split/
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
persons_split_create 3 params body → 200
POST
/api/projects/{project_id}/persons/{id}/update_property/
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
persons_update_property_create 3 params body → 200
GET
/api/projects/{project_id}/persons/activity/
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
persons_all_activity_retrieve 2 params → 200
POST
/api/projects/{project_id}/persons/batch_by_distinct_ids/
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
persons_batch_by_distinct_ids_create 2 params body → 200
POST
/api/projects/{project_id}/persons/batch_by_uuids/
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
persons_batch_by_uuids_create 2 params body → 200
POST
/api/projects/{project_id}/persons/bulk_delete/
This endpoint allows you to bulk delete persons, either by the PostHog person IDs or by distinct IDs. You can pass in a maximum of 1000 IDs per call. Only events captured before the request will be d…
persons_bulk_delete_create 2 params body → 202
GET
/api/projects/{project_id}/persons/cohorts/
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
persons_cohorts_retrieve 3 params → 200
GET
/api/projects/{project_id}/persons/deletion_status/
List the status of queued event deletions for persons. When you delete a person with deleteevents=true, an async deletion is queued. Use this endpoint to check whether those deletions are still pendi…
persons_deletion_status_list 6 params → 200
GET
/api/projects/{project_id}/persons/funnel/
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
persons_funnel_retrieve 2 params → 200
POST
/api/projects/{project_id}/persons/funnel/
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
persons_funnel_create 2 params body → 200
GET
/api/projects/{project_id}/persons/funnel/correlation/
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
persons_funnel_correlation_retrieve 2 params → 200
POST
/api/projects/{project_id}/persons/funnel/correlation/
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
persons_funnel_correlation_create 2 params body → 200
GET
/api/projects/{project_id}/persons/lifecycle/
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
persons_lifecycle_retrieve 2 params → 200
GET
/api/projects/{project_id}/persons/properties_at_time/
Get person properties as they existed at a specific point in time. This endpoint reconstructs person properties by querying ClickHouse events for $set and $setonce operations up to the specified time…
persons_properties_at_time_retrieve 7 params → 200400404500
POST
/api/projects/{project_id}/persons/reset_person_distinct_id/
Reset a distinctid for a deleted person. This allows the distinctid to be used again.
persons_reset_person_distinct_id_create 2 params body → 200
GET
/api/projects/{project_id}/persons/trends/
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
persons_trends_retrieve 2 params → 200
GET
/api/projects/{project_id}/persons/values/
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the $set and $unset [properties](http…
persons_values_retrieve 4 params → 200

Schemas 19

The contract defines 19 schemas that model the data the API accepts and returns. The most detailed are PersonPropertiesAtTimeResponse (9 properties), PatchedPersonRecord (7 properties), PersonPropertiesAtTimeMetadata (7 properties), PersonRecord (7 properties). Each schema is shown below with its type and property counts.

PropertyGroupOperator
string
NullEnum
PersonPropertiesAtTimeMetadata
object
Serializer for the point-in-time query metadata.
7 properties 7 required
PersonDeletePropertyRequest
object
1 property 1 required
AsyncDeletionStatus
object
4 properties 4 required
PersonPropertiesAtTimeDebug
object
Serializer for the debug information (only available to staff users).
5 properties 4 required
PropertyItem
object
4 properties 2 required
PersonBulkDeleteRequest
object
5 properties
PersonUpdatePropertyRequest
object
2 properties 2 required
PropertyItemOperatorEnum
string
exact - exact isnot - isnot icontains - icontains noticontains - noticontains regex - regex notregex - notregex gt - gt lt - lt gte - gte lte - lte isset - iss…
Property
object
2 properties 1 required
PersonBulkDeleteResponse
object
5 properties 4 required
PersonPropertiesAtTimeResponse
object
Serializer for the point-in-time person properties response.
9 properties 8 required
PaginatedPersonRecordList
object
4 properties
PropertyFilterTypeEnum
string
event - event eventmetadata - eventmetadata feature - feature person - person cohort - cohort element - element static-cohort - static-cohort dynamic-cohort -…
BlankEnum
PaginatedAsyncDeletionStatusList
object
4 properties
PatchedPersonRecord
object
7 properties
PersonRecord
object
7 properties 6 required

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

posthog-persons-api-openapi.yml Raw ↑

Other APIs PostHog publishes across the network.

PostHog Capture API
PostHog Query API
PostHog Persons API
PostHog Feature Flags API
PostHog Experiments API
PostHog Insights API
PostHog Cohorts API
PostHog Annotations API
PostHog actions API
PostHog activity_log API
PostHog activity_logs API
PostHog advanced_activity_logs API
Where this information came from

This is an independent, third-party profile of PostHog persons API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.