# Protocol reference (https://www.getfounderhq.com/docs/analytics/protocol-reference)

Every FounderHQ SDK speaks one capture protocol. This section documents
it, so you can build your own client, debug a payload, or hand the
contract to an AI agent.

<Callout title="Most people skip this section">
  If you install an SDK, the protocol is already handled. Go to
  [Getting started](/analytics/getting-started) instead.
</Callout>

## Pages

| Page | Read it to |
| --- | --- |
| [Wire protocol](/analytics/protocol-reference/envelope) | See the exact request, the exact response, and what each result status means. |
| [Event taxonomy](/analytics/protocol-reference/event-taxonomy) | Look up the reserved `$` names FounderHQ owns, so your own names never collide. |
| [JSON Schema](/analytics/protocol-reference/json-schema) | Download the schema and validate a payload before you send it. |
| [Conformance suite](/analytics/protocol-reference/conformance) | Understand why all five SDKs produce the same numbers. |

## The short version

- One endpoint: `POST /i/v2/e`.
- One credential: your publishable key, as `Authorization: Bearer`.
- One body shape: `{ "sent_at": "...", "batch": [...] }`, up to 100 events.
- One result per event UUID: `ok`, `warning`, `drop`, or `retry`.
- One property namespace. There is no `context` object.

Server-side capture is a different surface. It uses a secret key and the
[API reference](/analytics/api-reference) endpoints.
