PostHog
Platform Summary
PostHog capture and person property contracts.
Scope
Primary execution surface: server.
Developer Source Map
| Source | Reason |
|---|---|
| PostHog Capture API | Event Contracts; Transport / Payload Rules; User Data Contracts; events, payload, transport |
| PostHog Person Properties | User Data Contracts; user updates, person profile semantics |
RudderStack Cross-Check
RudderStack is used here only as secondary engineering evidence for discovery and cross-check.
| Destination | Type | Link |
|---|---|---|
posthog | Discovery lead | source |
Verified Contracts
Event Contracts
| Object / Event | Field | Applies To | Type | Requirement | Exact Format | Normalization | Hashing | Examples | Caveat | Primary Source | Status | Confidence |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
capture | \$identify | server | string | Conditional | Special identify event for person-property updates. | Not clearly specified | Not clearly specified | - | $identify semantics are documented by PostHog. | PostHog Capture API | Verified | Medium |
capture | \$process_person_profile | server | boolean | Conditional | Set false to keep events anonymous and skip person profile processing. | Not clearly specified | Not clearly specified | - | Documented capture behavior for anonymous events. | PostHog Capture API | Verified | High |
capture | event | server | string | Required | Event name string. | Not clearly specified | Not clearly specified | Purchase | Capture API requires event. | PostHog Capture API | Verified | High |
User Data Contracts
| Object / Event | Field | Applies To | Type | Requirement | Exact Format | Normalization | Hashing | Examples | Caveat | Primary Source | Status | Confidence |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
capture | distinct_id | server | string | Required | Distinct user identifier for event ingestion. | Not clearly specified | Not clearly specified | - | Capture API requires distinct_id. | PostHog Capture API | Verified | High |
person_properties | \$set | server | object | Conditional | Sets or overwrites person properties. | Not clearly specified | Not clearly specified | - | Person properties operation key. | PostHog Person Properties | Verified | High |
person_properties | \$set_once | server | object | Conditional | Sets person properties only if missing. | Not clearly specified | Not clearly specified | - | Person properties operation key. | PostHog Person Properties | Verified | High |
person_properties | \$unset | server | array<string> | Conditional | Unsets listed person property keys. | Not clearly specified | Not clearly specified | - | Person properties operation key. | PostHog Person Properties | Verified | High |
Transport / Payload Rules
| Object / Event | Field | Applies To | Type | Requirement | Exact Format | Normalization | Hashing | Examples | Caveat | Primary Source | Status | Confidence |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
capture | api_key | server | string | Required | Project API key in request body. | Not clearly specified | Not clearly specified | - | Capture API requires api_key. | PostHog Capture API | Verified | High |
capture | batch_endpoint | server | string | Required | Batch ingestion endpoint. | Not clearly specified | Not clearly specified | - | PostHog batch endpoint contract. | PostHog Capture API | Verified | High |
capture | endpoint | server | string | Required | Single-event ingestion endpoint. | Not clearly specified | Not clearly specified | - | PostHog capture endpoint contract. | PostHog Capture API | Verified | High |
Candidate / Needs Review Items
No candidate rows currently tracked.
Excluded Items
No excluded rows in this revision.
Last Reviewed
2026-03-31