/v1 and protected by x402 for pay-per-use billing.
Base URLs
| Environment | Base URL |
|---|---|
| Production | https://api.horizon.new/v1 |
| Staging | https://staging.api.horizon.new/v1 |
Request flow
Horizon endpoints do not require static API keys. Send your request directly to the desired endpoint; if payment is required, the service responds with402 Payment Required. Use Coinbase’s x402 helpers to settle the invoice and replay the original payload without modifying it.
Payment flow (x402)
Paid operations respond with402 Payment Required when no active proof is supplied. The response body follows Coinbase’s PaymentRequiredResponse schema. Work with your facilitator to settle the charge and replay the request with the Base64 payload in the X-PAYMENT header. The facilitator setup is outlined in Coinbase’s Quickstart for sellers, while client applications should follow the Quickstart for buyers to obtain and forward invoices. See each endpoint page for concrete examples.
Rate limits
| Plan | Requests / minute | Concurrency |
|---|---|---|
| Studio | 600 | 10 |
| Production | 2,400 | 30 |
| Enterprise | Custom | Custom |
429 Too Many Requests and includes Retry-After headers.
Async jobs
Generation and crawl requests are asynchronous. Each accepted job returns astatusUrl (an alias for GET /jobs/{jobId}) that you can poll. Optionally pass a webhookUrl in the request body to receive signed callbacks when processing completes or fails. You can also manage reusable webhooks via POST /webhooks (account-level) or attach an ad-hoc listener with POST /jobs/{jobId}/webhooks.