# Serialized Audit > Instant smart-contract risk verdicts over a single REST endpoint. ## Docs - [Introduction](https://docs.serializedaudit.io/introduction.md): Instant smart-contract risk verdicts over a single REST endpoint. - [Quickstart](https://docs.serializedaudit.io/quickstart.md): Run your first audit in under two minutes. - [How to integrate](https://docs.serializedaudit.io/integration-guide.md): The recommended integration: fire-and-subscribe, one SSE stream, no polling, no TTL. - [Authentication](https://docs.serializedaudit.io/authentication.md): Authenticate every request with your secret API key. - [Audit a Contract](https://docs.serializedaudit.io/api-reference/audit-contract.md): The single endpoint: send a contract, get a verdict. - [SSE & Webhooks](https://docs.serializedaudit.io/sse-and-webhooks.md): Subscribe a token once, get pushed every verdict change. No polling. - [Understanding Results](https://docs.serializedaudit.io/understanding-results.md): Every field in the response and what it represents. - [Risks](https://docs.serializedaudit.io/risk-categories.md): The shape of each detected risk, and the full set of categories. - [Errors & Status Codes](https://docs.serializedaudit.io/errors.md): What each status means and how to handle it. - [Audit a contract](https://docs.serializedaudit.io/api-reference/audit-a-contract.md): Returns a safety verdict, a human-readable summary, identity, and the detected risks for the given contract. Results are returned in milliseconds when the contract has been audited before; a first-time audit may take a few seconds. - [Get webhook config + 24h delivery health](https://docs.serializedaudit.io/api-reference/get-webhook-config-+-24h-delivery-health.md): Returns the current delivery URL (never the secret), whether a secret is set, a per-status delivery count over the last 24h, and the active subscription count. - [Set the delivery endpoint (push webhook)](https://docs.serializedaudit.io/api-reference/set-the-delivery-endpoint-push-webhook.md): Register the HTTPS URL that audit-change events are POSTed to, and get an HMAC signing secret (returned ONCE). Updating the URL keeps the existing secret; pass `rotate: true` to force a new one. Subscribing does NOT require a webhook; it only controls push delivery. See SSE & Webhooks. - [Send a signed test ping](https://docs.serializedaudit.io/api-reference/send-a-signed-test-ping.md): POSTs a signed `{ "type": "ping" }` to your configured URL so you can validate wiring + signature verification. The ping is NOT an `audit.changed` event and carries a non-UUID event id / `x-serialized-event: ping`. - [List active subscriptions](https://docs.serializedaudit.io/api-reference/list-active-subscriptions.md) - [Subscribe one or many tokens](https://docs.serializedaudit.io/api-reference/subscribe-one-or-many-tokens.md): Subscribe a token (or up to 5000 in one call) to push/webhook updates. Idempotent: only genuinely-new tokens are charged (2 credits each). A bulk cost that would cross your cap is denied 402/429 (`action: raise_cap`) before anything is subscribed. - [Unsubscribe all tokens](https://docs.serializedaudit.io/api-reference/unsubscribe-all-tokens.md) - [Unsubscribe one token](https://docs.serializedaudit.io/api-reference/unsubscribe-one-token.md) - [Bulk-subscribe from your 15-day call history](https://docs.serializedaudit.io/api-reference/bulk-subscribe-from-your-15-day-call-history.md): Subscribe every token you've called in the last 15 days whose audit is already at the current prompt version (old-version tokens are skipped so no re-audit wave is triggered). Two-step: a bare POST is a DRY-RUN quote (creates/charges nothing); re-POST with `?confirm=true` to subscribe and be charged… - [Replay audit-change events (webhook catch-up)](https://docs.serializedaudit.io/api-reference/replay-audit-change-events-webhook-catch-up.md): The durable catch-up path: replay the `audit.changed` events for your currently-active subscriptions since a cursor. Page with `since=cursor` until `events` is empty. Scoped to active subscriptions; unsubscribing a token also hides its past events. Each event is projected to your response profile, e… - [Live push over Server-Sent Events (no inbound port)](https://docs.serializedaudit.io/api-reference/live-push-over-server-sent-events-no-inbound-port.md): Hold this GET open to receive `audit.changed` events as they happen: a no-inbound-port way to receive pushes. No setup: it's a plain authenticated endpoint (your API key is all it needs). Each SSE frame is `event: audit.changed` with the SAME payload as a webhook and `id: `. Resume after a… - [Supported Chains](https://docs.serializedaudit.io/supported-chains.md): The 23 EVM chains you can audit, and the chain symbol to pass. - [Credits & Billing](https://docs.serializedaudit.io/credits.md): What a call costs and how billing works. - [Re-audits & labeling](https://docs.serializedaudit.io/programs.md): Work with our team beyond the automated audit: a human deep-dive re-audit, or the launchpad labeling program. - [Support](https://docs.serializedaudit.io/support.md): Talk to the team. ## OpenAPI Specs - [openapi](https://docs.serializedaudit.io/api-reference/openapi.json)