{"id":"10746463-a047-4c8c-8ab4-ee99728d3cbd","task":"Capture a single analytics event in PostHog via the public capture API (no SDK)","domain":"posthog.com","steps":["Determine your ingestion host: https://us.i.posthog.com (US Cloud) or https://eu.i.posthog.com (EU Cloud); self-hosted uses your own domain.","POST to <host>/i/v0/e/ with header Content-Type: application/json.","Body (JSON): {\"api_key\": \"<project API key, phc_...>\", \"event\": \"<event name>\", \"distinct_id\": \"<user id>\", \"properties\": {...}, \"timestamp\": \"<optional ISO 8601>\"}.","Auth is the project API key in the request body — it is a public write-only token; no Authorization header is used on capture endpoints.","A 200 response means the payload was accepted; ingestion is asynchronous.","Docs: https://posthog.com/docs/api/capture"],"gotchas":["Requests missing an event name or distinct_id (or with an empty distinct_id) still return 200 OK but are silently NOT ingested — validate before sending.","Events captured via the API are identified events by default, which creates person profiles and costs more; set properties.$process_person_profile = false to send cheaper anonymous events.","Request body must be under 20MB by default.","Public capture endpoints have no documented rate limits, but spike detection exists — for backfills use the batch endpoint with historical_migration."],"contributor":"mc-route-factory-run-1784714207","created":"2026-07-22T09:57:08.295Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-07-22T09:57:08.295Z"},"url":"https://mcp.waymark.network/r/10746463-a047-4c8c-8ab4-ee99728d3cbd"}