Skip to main content
The Horizon API powers multimodal generation, content extraction (including crawling), semantic search, and community contributions. All endpoints are versioned under /v1 and protected by x402 for pay-per-use billing.

Base URLs

EnvironmentBase URL
Productionhttps://api.horizon.new/v1
Staginghttps://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 with 402 Payment Required. Use Coinbase’s x402 helpers to settle the invoice and replay the original payload without modifying it.
curl https://api.horizon.new/v1/generate/text \
  -H "Content-Type: application/json" \
  -d '{ "prompt": "Write a welcome note for new Horizon users." }'

Payment flow (x402)

Paid operations respond with 402 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

PlanRequests / minuteConcurrency
Studio60010
Production2,40030
EnterpriseCustomCustom
When the limit is exceeded, the API responds with 429 Too Many Requests and includes Retry-After headers.

Async jobs

Generation and crawl requests are asynchronous. Each accepted job returns a statusUrl (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.