# Learn APIs by example

> Every guide here runs against the OffenderSearch sandbox, so the examples are real requests and real responses, not toy data.

- **HTML:** https://offendersearch.app/docs/learn
- **Base URL (live):** https://api.offendersearch.app — live keys (`os_live_…`)
- **Base URL (sandbox):** https://sandbox.offendersearch.app — test keys (`os_test_…`), never billed
- **Authentication:** `X-API-Key` request header
- **OpenAPI:** https://offendersearch.app/openapi.json · https://offendersearch.app/openapi.yaml
- **Docs index for agents:** https://offendersearch.app/llms.txt

## The guides

- [RESTful API Example: One Request, One Response, Explained](https://offendersearch.app/docs/learn/restful-api-example)
- [What Is an API? Definition, Examples and a Call You Can Run](https://offendersearch.app/docs/learn/what-is-an-api)
- [Webhooks vs API Polling: When Each One Is Right](https://offendersearch.app/docs/learn/webhooks-vs-api)
- [Free Public APIs for Developers: Lists, Data APIs and Ours](https://offendersearch.app/docs/learn/free-public-apis)
- [API Key vs OAuth Client Credentials: Which to Use](https://offendersearch.app/docs/learn/api-key-vs-oauth)
- [API Documentation Example: What Good Docs Look Like](https://offendersearch.app/docs/learn/api-documentation-example)
- [API Token Example: Create, Scope, Rotate and Revoke a Key](https://offendersearch.app/docs/learn/api-token-example)
- [Postman API Documentation: Public Workspace, Live Sandbox](https://offendersearch.app/docs/learn/postman-api-documentation)
- [API Errors: Designing Codes a Client Can Act On](https://offendersearch.app/docs/learn/api-errors)
- [Webhook Example: Receive, Verify and Retry in 40 Lines](https://offendersearch.app/docs/learn/webhook-example)
- [API Signature: HMAC Signing for Requests and Webhooks](https://offendersearch.app/docs/learn/api-signature)
