Published 2026-09-22 · Tested 2026-09-22
PostHog
D-PostHog received 6 PASS votes and passed 3 of five agent surface checks. The clearest finding came from the find the exact limits task.
Three AI models, GPT 5.6 Sol, Claude Opus 5, and DeepSeek v4 Flash, each read PostHog’s public documentation independently and attempted five first-hour developer jobs: capture the first event, find the exact limits, recover from a 429, verify a webhook, use the JavaScript Web SDK.
No accounts, API calls, or code execution were used. Every verdict came from public pages and every published quotation passed a live verification check.
Freshness
How rechecks work- Category
- Observability & analytics
- Tested
- Quotes verified
- Surface rechecked
- Not yet rechecked
60.0% · 48/80 · AI Agent Readiness Score · reading 30 pts · surface 50 pts
Agent surface checks · 30/50
The Reading Test
| Task | GPT 5.6 Sol | Opus 5 | DeepSeek v4F | Consensus |
|---|---|---|---|---|
| Capture the first event | PASS | PASS | PASS | PASS |
| Find the exact limits | PARTIAL | PARTIAL | PARTIAL | PARTIAL |
| Recover from a 429 | FAIL | PARTIAL | FAIL | FAIL |
| Verify a webhook | PARTIAL | PARTIAL | FAIL | PARTIAL |
| Use the JavaScript Web SDK | PASS | PASS | PASS | PASS |
docs platform: Gatsby (unscored) · verified 2026-09-22
What to fix first
These 5 fixes could add up to 32 points to the AI Agent Readiness Score. The list ranks each fix by the points it would add. How the ranking works
- 1 +10 points llms-full.txt check failed
Found: HTTP 404 returning an HTML shell at both the site root and the documentation root.
Fix: Publish llms-full.txt at the docs root with the full text of every docs page in one plain-text file.
- 2 +10 points Docs AI check failed
Found: The hydrated docs home offers only a Search docs control whose modal returns keyword results, and no assistant control or assistant provider script loads.
Fix: Add an assistant to the docs site that answers questions from the docs and links to its sources.
- 3
Found: The API overview lists status codes 200, 400, 401 and 503 but never 429, so an agent holding a 429 cannot tell which limit it hit.
Fix: Add 429 to the API overview status codes with the error code, the Retry-After header, and the wait-and-retry steps for each rate limit family.
- 4
Found: The webhook destination page documents creation and testing but offers only six egress IP addresses for authenticity, with no signature or signing secret for outgoing requests.
Fix: On the destination page, document the signing_secret field the webhook template supports, and add receiver-side steps to verify a delivered request came from PostHog.
Evidence: posthog.com/
docs/ cdp/ destinations/ webhook (opens in a new tab) - 5
Found: The API overview states the query allowance as monthly with no amount, and the billing pages replace most product quotas with the phrase generous free tier.
Fix: State the query allowance amount and its period on the API overview, and list the free tier number for each product on the billing pages.
What the docs get right
- Capture the first event: 3 PASS votes. The JavaScript Web page gives installation and initialization, then directly links its usage page for the custom capture call.
- Use the JavaScript Web SDK: 3 PASS votes. The official posthog-js pages show capture(event, properties), matching the two-argument custom-event form in the general event guide.
- 3 of 5 agent surface checks. Present: llms.txt, markdown mirrors, an MCP server. Missing: llms-full.txt, docs AI.
Capture the first event
PASSPASS consensus from 3 PASS.
The JavaScript Web page gives installation and initialization, then directly links its usage page for the custom capture call. The install page gives a copy-paste snippet with posthog.init('<ph_project_token>', { api_host: 'https://us.i.posthog.com', defaults: '2026-05-30' }), the JavaScript web page says the project token is found in project settings, and autocapture fires the first event on init with no extra code. Two clear install paths (snippet or npm), each using the project token from project settings; autocapture starts immediately on init, and the usage page documents posthog.capture('my event', {property: 'value'}) for custom events.
Find the exact limits
PARTIALPARTIAL consensus from 3 PARTIAL.
The numeric rate and pricing tables agree, but the linked monthly query allowance has no amount or matching section on the query page. API rate limits are stated as exact numbers, but the plan quotas that cap ingestion and billing are not in the docs at all, the billing pages say only "generous free tier" and link out to the marketing pricing page for the numbers, and the API overview and the query API page describe the same query read allowance as monthly and hourly respectively. API rate limits are exact per endpoint class (analytics 240/min, CRUD 480/min, query 2400/hour, etc.), but the billing pages only enumerate one exact quota ('1M events free') and use 'generous free tier' without numbers for session replay, feature flags, and other products.
Recover from a 429
FAILFAIL consensus from 1 PARTIAL, 2 FAIL.
The API response reference gives no 429 recovery path, and the public schema fetch failed because its response exceeded the fetch tool's 8 MB limit. This is the only documented 429 in the docs: the API overview's Responses section lists 200, 400, 401 and 503 but never 429, and none of the six other rate-limit families it names document a status code, error code, or response header, so an agent holding a 429 from the persons or insights API cannot tell which limit it hit. The main API docs page lists status codes 200, 400, 401, and 503 but omits 429 entirely. Rate limits are listed but no HTTP response code is named for exceeding them. The only 429 documentation is on the /query page for the hourly read budget (api_queries_budget_exceeded), not for the general API rate limits.
Verify a webhook
PARTIALPARTIAL consensus from 2 PARTIAL, 1 FAIL.
The guide covers creation, testing, and IP allowlisting, while the linked source exposes signing without receiver-side verification instructions. Creating the destination, pointing it at your endpoint, and receiving a test POST are documented step by step, but no signature, signing secret, or verification header is documented anywhere for outgoing webhooks, the only authenticity signal offered is a list of six PostHog egress IP addresses given as a firewall allowlist, and the Authorization-header check documented at /docs/cdp/source_webhooks/source-webhook applies to incoming webhooks, the opposite direction. The webhook docs cover create, configure, test, and customize but never document how to verify the request came from PostHog. The source code template supports a signing_secret field (Standard Webhooks spec), but this is absent from the public docs page.
Use the JavaScript Web SDK
PASSPASS consensus from 3 PASS.
The official posthog-js pages show capture(event, properties), matching the two-argument custom-event form in the general event guide. The posthog-js install, the send-events guide, and the usage reference all show the identical posthog.capture(name, properties) form, and the library page links the GitHub repo and the npm, Yarn, pnpm, and Bun install commands. The official SDK is posthog-js (confirmed on npm and GitHub). The docs show a complete init-to-capture path: npm install posthog-js, import, init with project token, and posthog.capture('my event', {property: 'value'}). The capture API form is consistent across the install and usage pages.
The receipt
Organizations without a paid plan also have a monthly data-read allowance for queries.
The numeric rate and pricing tables agree, but the linked monthly query allowance has no amount or matching section on the query page.
Agent surface notes
Initialize returned HTTP 401 with a Bearer OAuth challenge naming resource metadata at mcp.posthog.com/.well-known/oauth-protected-resource/mcp.
The hydrated docs home offers only a Search docs control whose modal returns keyword results, and no assistant control or assistant provider script loads.
Show the score
Paste this into a readme:
[](https://docsforagents.com/reports/posthog-docs-ai-agent-readiness/) Method note
This is a reading test of public documentation, not an execution test. No accounts were created and no API calls were run. The AI Agent Readiness Score counts fifteen reading votes at PASS 2, PARTIAL 1, and FAIL 0, for 30 possible points. Five agent surface checks add 10 points each. The total is 80. Consensus chips show each row majority and do not affect scoring. The panel split on 2 of five tasks. Quotes shown here were re-fetched and confirmed verbatim on 2026-09-22.
Put another docs site through the battery.
Nominate a docs site