Quickstart

Send your first batch

A fast path from sign-up to a delivered batch. For the full step-by-step guides and API reference, head to the docs.

BatchRouter is a batch-AI routing platform: submit a batch once and it routes across providers on SLA-aware lanes, with quotes you can read back and receipts for every routing decision. It speaks the OpenAI-Batch format, so most clients work with a base-URL swap.

Three ways in

  • Direct chat completions

    POST /v1/chat/completions

    The standard OpenAI request body, answered right away. Set "stream": true to get the reply as server-sent events.

  • One request, queued as a batch

    POST /v1/chat/completions with "batch": true

    The same request, run as a one-item batch. You get 202 and a job id right away, then read the result from GET /v1/chat/completions/{id} or a webhook.

  • Bulk batches

    POST /v1/batches, or /v1/openai/v1 for OpenAI Batch clients

    Many requests at once, from the native API or a JSONL file. An existing OpenAI Batch client works with a base-URL swap.

The steps below are the bulk path. The two chat-completions calls look like this:

curl https://api.batchrouter.com/v1/chat/completions \
  -H "Authorization: Bearer $BATCHROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-5-4-mini","stream":true,"messages":[{"role":"user","content":"Say hello."}]}'
curl https://api.batchrouter.com/v1/chat/completions \
  -H "Authorization: Bearer $BATCHROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-5-4-mini","batch":true,"messages":[{"role":"user","content":"Say hello."}]}'
# 202 {"id":"chatjob_...","object":"chat.completion.job","status":"queued",...}
# then: GET https://api.batchrouter.com/v1/chat/completions/chatjob_...
~10 min
4 steps
quote · submit · receive
  1. 1
    step 1 / 4

    Create an API key

    Sign up, confirm the verification email, then create a key under Account → API keys (keys start with br_live_ and are shown once). Until the email is confirmed the account and its keys are read-only: every write returns 403 email_verification_required. Agents can self-register with POST /v1/auth/agent-register (email and password required), and a person confirms the emailed link. Store the key as BATCHROUTER_API_KEY.

  2. 2
    step 2 / 4

    Get a free quote

    Price a batch with POST /v1/quotes/model. Quotes are free and return a quote_id you pass to create — credits are only reserved when the batch is created.

    shell
    curl https://api.batchrouter.com/v1/quotes/model \
      -H "Authorization: Bearer $BATCHROUTER_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"items":[{"customer_item_id":"item-1","operation":"responses","model":"gpt-5-4-mini","input":{"messages":[{"role":"user","content":"Summarize: BatchRouter routes batch-AI workloads across providers."}]}}]}'
  3. 3
    step 3 / 4

    Submit the batch

    Create the batch with the quote_id and an Idempotency-Key header for safe retries. BatchRouter routes across provider lanes and returns a batch id (bat_…).

    shell
    curl https://api.batchrouter.com/v1/batches \
      -H "Authorization: Bearer $BATCHROUTER_API_KEY" \
      -H "Idempotency-Key: $(uuidgen)" \
      -H "Content-Type: application/json" \
      -d '{"quote_id":"qlock_...","items":[ ... ]}'
  4. 4
    step 4 / 4

    Poll or receive results

    Poll GET /v1/batches/{id} until completed, then fetch GET /v1/batches/{id}/results (or an /artifact-url for large batches). Prefer a webhook to skip polling — set webhook.url on create and verify the X-BatchRouter-Signature.

OpenAI-Batch compatible

Point your existing OpenAI batch client at BatchRouter and keep your JSONL format.

Transparent pricing

Every quote itemizes provider cost, BatchRouter fee, and discount. Unselected lanes return rejection reasons.

SLA-aware lanes

Choose standard (24h), flex, or priority — BatchRouter routes to lanes that meet your deadline.

Read the full documentation

Step-by-step guides for authentication, submitting batches, the JSONL format, quotes & pricing, polling & results, webhooks, OpenAI compatibility, SLA-aware routing, and the complete API reference — at docs.batchrouter.com.