Compare asynchronous LLM batch contracts and fixed-job economics
LLM Batch APIs Compared — OpenAI, Anthropic, Gemini, and More
Batch APIs are asynchronous contracts, not automatic discounts or unlimited queues. Compare upload and result format, eligible endpoint and model, request and queue limits, completion or expiry, cancellation, result ordering, failures, and usage reconciliation for the exact job. A cost result is Unavailable when rates, usage, or request-result identity do not join. Verified 2026-09-02.
Compare asynchronous batch formats, eligibility, limits, completion, cancellation, result identity, and fixed-job economics. Qualitative demand: dedicated cross-provider batch API comparisons were reviewed 2026-09-02; exact US monthly volume is unavailable.
Batch 58 · server-rendered evidence boards · verified 2026-09-02
Intent answer: Batch APIs are asynchronous contracts, not automatic discounts or unlimited queues. Compare upload and result format, eligible endpoint and model, request and queue limits, completion or expiry, cancellation, result ordering, failures, and usage reconciliation for the exact job. A cost result is Unavailable when rates, usage, or request-result identity do not join. Verified 2026-09-02.
Demand evidence: Qualitative demand: dedicated cross-provider batch API comparisons were reviewed 2026-09-02; exact US monthly volume is unavailable.
Scope boundary: Compare asynchronous batch formats, eligibility, limits, completion, cancellation, result identity, and fixed-job economics. Exact provider, seller, serving host, account/tier, endpoint, model/snapshot, region, feature, and evidence identity are required; unresolved joins render Unavailable.
Batch-contract normalizer
Deterministic formula / rule: batch eligible = exact provider/host/model/endpoint + accepted payload + limits + completion/expiry + result identity; undocumented fields stay unavailable.
Boundary: Owns asynchronous cross-provider contracts; syntax, provider rates, and generic adoption strategy remain with their owners.
| Frozen scenario / field ID | Exact identity and evidence fields | Result | State |
|---|---|---|---|
batch58-batch-api-m1-r1JSONL upload | route=/compare/llm-batch-api; owner=batch-api; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=batch-api; scenario=JSONL upload; provider/host/model/endpoint; submission/result format; request/byte/token/queue limits; completion/expiry; cancellation; ordering; prerequisite; source/date; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02 | Unavailable — frozen batch-api fixture requires an exact source, identity, and result receipt | UNTESTED — module 1 rule is reproducible but no production observation is claimed |
batch58-batch-api-m1-r2inline request list | route=/compare/llm-batch-api; owner=batch-api; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=batch-api; scenario=inline request list; provider/host/model/endpoint; submission/result format; request/byte/token/queue limits; completion/expiry; cancellation; ordering; prerequisite; source/date; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02 | Unavailable — frozen batch-api fixture requires an exact source, identity, and result receipt | UNTESTED — module 1 rule is reproducible but no production observation is claimed |
batch58-batch-api-m1-r3file-backed job | route=/compare/llm-batch-api; owner=batch-api; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=batch-api; scenario=file-backed job; provider/host/model/endpoint; submission/result format; request/byte/token/queue limits; completion/expiry; cancellation; ordering; prerequisite; source/date; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02 | Unavailable — frozen batch-api fixture requires an exact source, identity, and result receipt | UNTESTED — module 1 rule is reproducible but no production observation is claimed |
batch58-batch-api-m1-r4unsupported endpoint | route=/compare/llm-batch-api; owner=batch-api; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=batch-api; scenario=unsupported endpoint; provider/host/model/endpoint; submission/result format; request/byte/token/queue limits; completion/expiry; cancellation; ordering; prerequisite; source/date; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02 | Unavailable — exact batch-api evidence join is not closed for “unsupported endpoint” | FAIL CLOSED — manual, probe, or source evidence required |
batch58-batch-api-m1-r5oversized job | route=/compare/llm-batch-api; owner=batch-api; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=batch-api; scenario=oversized job; provider/host/model/endpoint; submission/result format; request/byte/token/queue limits; completion/expiry; cancellation; ordering; prerequisite; source/date; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02 | Unavailable — frozen batch-api fixture requires an exact source, identity, and result receipt | UNTESTED — module 1 rule is reproducible but no production observation is claimed |
batch58-batch-api-m1-r6duplicate custom-ID | route=/compare/llm-batch-api; owner=batch-api; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=batch-api; scenario=duplicate custom-ID; provider/host/model/endpoint; submission/result format; request/byte/token/queue limits; completion/expiry; cancellation; ordering; prerequisite; source/date; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02 | Unavailable — exact batch-api evidence join is not closed for “duplicate custom-ID” | FAIL CLOSED — manual, probe, or source evidence required |
First-party citation: OpenAI Batch API guide. Verified 2026-09-02; missing or conflicting joins fail closed.
Fixed batch-job eligibility and cost receipt
Deterministic formula / rule: total = Σ(input units × input rate + output units × output rate) for each eligible request; batch total is shown only with documented batch rates.
Boundary: Owns the six frozen jobs and fixed-job arithmetic, not cheapest-provider or arbitrary forecast claims.
| Frozen scenario / field ID | Exact identity and evidence fields | Result | State |
|---|---|---|---|
batch58-batch-api-m2-r110K short classifications | route=/compare/llm-batch-api; owner=batch-api; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=batch-api; scenario=10K short classifications; units; request/input/output shape; endpoint/model eligibility; standard/batch rate versions; formula; sync/batch total or Unavailable; turnaround; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02 | Unavailable — frozen batch-api fixture requires an exact source, identity, and result receipt | UNTESTED — module 2 rule is reproducible but no production observation is claimed |
batch58-batch-api-m2-r21K long summaries | route=/compare/llm-batch-api; owner=batch-api; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=batch-api; scenario=1K long summaries; units; request/input/output shape; endpoint/model eligibility; standard/batch rate versions; formula; sync/batch total or Unavailable; turnaround; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02 | Unavailable — frozen batch-api fixture requires an exact source, identity, and result receipt | UNTESTED — module 2 rule is reproducible but no production observation is claimed |
batch58-batch-api-m2-r3500 structured extractions | route=/compare/llm-batch-api; owner=batch-api; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=batch-api; scenario=500 structured extractions; units; request/input/output shape; endpoint/model eligibility; standard/batch rate versions; formula; sync/batch total or Unavailable; turnaround; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02 | Unavailable — frozen batch-api fixture requires an exact source, identity, and result receipt | UNTESTED — module 2 rule is reproducible but no production observation is claimed |
batch58-batch-api-m2-r4100 image requests | route=/compare/llm-batch-api; owner=batch-api; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=batch-api; scenario=100 image requests; units; request/input/output shape; endpoint/model eligibility; standard/batch rate versions; formula; sync/batch total or Unavailable; turnaround; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02 | Unavailable — frozen batch-api fixture requires an exact source, identity, and result receipt | UNTESTED — module 2 rule is reproducible but no production observation is claimed |
batch58-batch-api-m2-r5100 five-tool requests | route=/compare/llm-batch-api; owner=batch-api; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=batch-api; scenario=100 five-tool requests; units; request/input/output shape; endpoint/model eligibility; standard/batch rate versions; formula; sync/batch total or Unavailable; turnaround; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02 | Unavailable — frozen batch-api fixture requires an exact source, identity, and result receipt | UNTESTED — module 2 rule is reproducible but no production observation is claimed |
batch58-batch-api-m2-r6mixed-model job | route=/compare/llm-batch-api; owner=batch-api; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=batch-api; scenario=mixed-model job; units; request/input/output shape; endpoint/model eligibility; standard/batch rate versions; formula; sync/batch total or Unavailable; turnaround; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02 | Unavailable — frozen batch-api fixture requires an exact source, identity, and result receipt | UNTESTED — module 2 rule is reproducible but no production observation is claimed |
First-party citation: Google Gemini batch API. Verified 2026-09-02; missing or conflicting joins fail closed.
Completion, failure, and reconciliation board
Deterministic formula / rule: reconciled = submitted IDs joined exactly once to result and usage state; missing, duplicate, or unbilled rows => hold/rebuild.
Boundary: Owns result-set integrity; billing and reliability claims require a closed joined receipt.
| Frozen scenario / field ID | Exact identity and evidence fields | Result | State |
|---|---|---|---|
batch58-batch-api-m3-r1all-success | route=/compare/llm-batch-api; owner=batch-api; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=batch-api; scenario=all-success; submitted/completed/failed/expired/cancelled counts; request-result identity; retry eligibility; duplicate protection; usage/billing state; action; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02 | Unavailable — frozen batch-api fixture requires an exact source, identity, and result receipt | UNTESTED — module 3 rule is reproducible but no production observation is claimed |
batch58-batch-api-m3-r2mixed validation errors | route=/compare/llm-batch-api; owner=batch-api; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=batch-api; scenario=mixed validation errors; submitted/completed/failed/expired/cancelled counts; request-result identity; retry eligibility; duplicate protection; usage/billing state; action; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02 | Unavailable — frozen batch-api fixture requires an exact source, identity, and result receipt | UNTESTED — module 3 rule is reproducible but no production observation is claimed |
batch58-batch-api-m3-r3provider failures | route=/compare/llm-batch-api; owner=batch-api; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=batch-api; scenario=provider failures; submitted/completed/failed/expired/cancelled counts; request-result identity; retry eligibility; duplicate protection; usage/billing state; action; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02 | Unavailable — exact batch-api evidence join is not closed for “provider failures” | FAIL CLOSED — manual, probe, or source evidence required |
batch58-batch-api-m3-r4expired job | route=/compare/llm-batch-api; owner=batch-api; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=batch-api; scenario=expired job; submitted/completed/failed/expired/cancelled counts; request-result identity; retry eligibility; duplicate protection; usage/billing state; action; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02 | Unavailable — exact batch-api evidence join is not closed for “expired job” | FAIL CLOSED — manual, probe, or source evidence required |
batch58-batch-api-m3-r5cancelled job | route=/compare/llm-batch-api; owner=batch-api; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=batch-api; scenario=cancelled job; submitted/completed/failed/expired/cancelled counts; request-result identity; retry eligibility; duplicate protection; usage/billing state; action; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02 | Unavailable — exact batch-api evidence join is not closed for “cancelled job” | FAIL CLOSED — manual, probe, or source evidence required |
batch58-batch-api-m3-r6missing result | route=/compare/llm-batch-api; owner=batch-api; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=batch-api; scenario=missing result; submitted/completed/failed/expired/cancelled counts; request-result identity; retry eligibility; duplicate protection; usage/billing state; action; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02 | Unavailable — exact batch-api evidence join is not closed for “missing result” | FAIL CLOSED — manual, probe, or source evidence required |
batch58-batch-api-m3-r7duplicate ID | route=/compare/llm-batch-api; owner=batch-api; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=batch-api; scenario=duplicate ID; submitted/completed/failed/expired/cancelled counts; request-result identity; retry eligibility; duplicate protection; usage/billing state; action; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02 | Unavailable — exact batch-api evidence join is not closed for “duplicate ID” | FAIL CLOSED — manual, probe, or source evidence required |
batch58-batch-api-m3-r8missing usage | route=/compare/llm-batch-api; owner=batch-api; provider/seller/host/account/tier/endpoint/model/snapshot/region/feature/request=batch-api; scenario=missing usage; submitted/completed/failed/expired/cancelled counts; request-result identity; retry eligibility; duplicate protection; usage/billing state; action; observed versus documented versus assumed inputs are labeled; artifact/schema/tool/job/result hashes and verification date=2026-09-02 | Unavailable — exact batch-api evidence join is not closed for “missing usage” | FAIL CLOSED — manual, probe, or source evidence required |
First-party citation: Anthropic Message Batches API. Verified 2026-09-02; missing or conflicting joins fail closed.
Method and limitations: this board exposes deterministic rules, first-party citations, and dated evidence identities. It does not invent volume, coverage, entitlement, retention, residency, quota, capacity, feature support, quality, price, reliability, or legal conclusions. Run the batch-api evidence flow →
