# HTTP API overview Build the discover → inspect → run → retrieve flow into your own application. ## Connection and authentication Send an API key in the Authorization header. JSON request bodies use Content-Type: application/json. Account management remains in the signed-in console; a tool API key is not a website session. ``` https://api.purrkey.app ``` - [First API call](/docs/quickstart/api): Follow an end-to-end request using curl. ## Shared conventions | Convention | Rule | | --- | --- | | Money | Decimal integer strings in micro-units. 1000000 = 1 USD for account balance. | | Dates | UTC RFC3339 timestamps. | | Pagination | Opaque cursor and bounded limit; nextCursor is null on the last page. | | Tool inputs | Use the selected tool's inspect inputSchema; it is not a platform-wide input shape. | | Retries | Preserve the original idempotency key and effective request after uncertain submission. | | Results | Check result.status and billing independently from HTTP and execution status. | ## Tool API endpoints - [List tools](/docs/api/tools): GET /v1/tools - [Discover tools](/docs/api/discover): POST /v1/discover - [Inspect a tool](/docs/api/inspect): POST /v1/inspect - [Create a Run](/docs/api/run): POST /v1/runs - [List Runs](/docs/api/list-runs): GET /v1/runs - [Retrieve a Run](/docs/api/get-run): GET /v1/runs/{runId} - [Cancel a Run](/docs/api/cancel-run): POST /v1/runs/{runId}/cancel - [Read your balance](/docs/api/balance): GET /v1/balance ## OpenAPI contract These reference fields are generated from HTTP contract 0.4.3. The download includes nested schemas and additional account and payment endpoints; those endpoints have their own authentication and deployment requirements. - [Download OpenAPI](/docs/openapi.yaml): Use the YAML contract in your API tooling.