Skip to main content
Technical Deep DiveAPI Design

Batch APIs and Agent Readiness: Why Bulk Operations Score Higher Than One-at-a-Time Endpoints

An agent needs to update 1,000 product prices. With a single-item endpoint, that is 1,000 API calls, 1,000 potential failures, and 3+ minutes of wall time. With a batch endpoint, it is 1 call, 1 response, under 5 seconds. Batch API support directly lifts three dimensions of the Agent Readiness Score: Reliability, Agent Experience, and API Quality.

AH
AgentHermes Research
April 15, 202611 min read

The Math: Single-Item vs Batch

The difference between single-item and batch endpoints is not marginal — it is orders of magnitude. When agents operate at scale, every API design decision compounds. Here is what happens when an agent needs to process 1,000 items through your API.

Metric
Single-Item Endpoint
Batch Endpoint
API calls for 1000 items
1,000 calls
1 call
Time (at 200ms/call)
200 seconds (3.3 min)
1-5 seconds
Probability all succeed (99.5% per call)
0.67%
99.5%
Rate limit consumption
1,000 of your quota
1 of your quota
Error handling complexity
Track 1000 individual results, retry each failure
Parse one response, retry only failed items
Agent tool calls
1,000+ (call + check + retry)
1-2 (call + optional retry)

The reliability math is stark: If each API call has a 99.5% success rate (which is good), 1,000 sequential calls give you only a 0.67% chance that all 1,000 succeed. That means 99.3% of the time, the agent hits at least one failure and needs retry logic. One batch call with the same 99.5% reliability means the agent succeeds 99.5% of the time with zero retry logic needed.

Three Dimensions Batch Endpoints Lift

Batch support is not a single-dimension improvement. It lifts three of the nine Agent Readiness dimensions simultaneously, making it one of the highest-ROI changes you can make to your API.

D8 Reliability

Weight: 13% of total score

Reliability measures whether an API consistently returns correct results without errors. A batch of 1000 items through a single-item endpoint means 1000 independent network requests, each of which can fail, timeout, or return an error. Statistically, if each request has a 99.5% success rate, 1000 requests gives you only a 0.67% chance of all succeeding. One batch call with 1000 items has a 99.5% success rate. Batch endpoints dramatically reduce partial failure scenarios.

Estimated score lift: +8-12 points

D9 Agent Experience

Weight: 10% of total score

Agent Experience scores how easy it is for an agent to accomplish workflows. Batch endpoints reduce the number of tool calls an agent needs to make, simplify error handling (one response to parse instead of 1000), and eliminate the need for retry logic and progress tracking across hundreds of individual calls. An agent using a batch endpoint finishes in one step what would otherwise require a complex orchestration loop.

Estimated score lift: +5-8 points

D2 API Quality

Weight: 15% of total score

API Quality evaluates the design, consistency, and maturity of your endpoints. Batch support is a signal of API maturity — it shows the API was designed for programmatic use at scale, not just for one-off UI interactions. APIs with batch endpoints also tend to have better error schemas (returning per-item results), cleaner pagination, and more thoughtful rate limiting. These are all positive signals in the D2 score.

Estimated score lift: +3-6 points

Combined, adding batch support to your core endpoints can lift your total Agent Readiness Score by 16-26 points. That is enough to move a Bronze-tier API (40-59) into Silver (60-74) or a Silver into Gold (75-89). Learn more about how Agent Experience is scored.

Four Batch Patterns Every Agent-Ready API Needs

Not all batch implementations are equal. Here are the four patterns that maximize your Agent Readiness Score, ordered from simplest to most impactful.

Array-accepting endpoint

The simplest batch pattern. Instead of POST /items accepting one item, it accepts an array of items. Response returns an array of results in the same order. Used by Stripe for creating multiple prices, Supabase for bulk inserts.

POST /api/items/batch
{ "items": [{ "name": "A" }, { "name": "B" }, ...] }
Pros: Simple to implement. Preserves order. Easy for agents to construct.
Cons: Payload size limits. All-or-nothing without partial failure handling.

Bulk status checks

Instead of checking status of each item individually, accept an array of IDs and return all statuses in one response. Critical for agents monitoring large workflows like order fulfillment, batch processing jobs, or multi-item inventory checks.

POST /api/items/status
{ "ids": ["id-1", "id-2", ..., "id-1000"] }
Pros: Massive reduction in API calls for monitoring workflows. Easy to cache.
Cons: Response can be large. Need to handle mix of found/not-found IDs.

Aggregate responses

Return summary statistics alongside individual results. When an agent processes 1000 items, it often needs both the per-item results and aggregate metrics (success count, failure count, total processed). Include these in the response instead of forcing the agent to compute them.

{ "results": [...], "summary": { "total": 1000, "success": 987, "failed": 13 } }
Pros: Agent gets actionable summary immediately. Reduces post-processing.
Cons: Slightly larger response payload. Need to define summary schema.

Partial failure handling

The most important pattern for agent reliability. When a batch of 1000 items has 13 failures, return results for the 987 that succeeded AND structured error details for the 13 that failed, including the reason and the original input so the agent can retry only the failures.

{ "succeeded": [...], "failed": [{ "index": 42, "input": {...}, "error": "..." }] }
Pros: Agents can retry only failures. No data loss. Full auditability.
Cons: More complex to implement. Response schema must handle both success and failure.

Who Does Batch Well (and Who Does Not)

The correlation between batch API support and Agent Readiness Score is clear in our scan data. Companies with mature batch endpoints consistently score higher. Companies without them cluster in the Bronze and Not Scored tiers.

Company
Batch Support
Score
Tier
Stripe
Batch charge creation, bulk subscription updates, mass invoice generation
68
Silver
Shopify
Bulk product updates, batch inventory adjustments, GraphQL bulk operations
52
Bronze
Supabase
Bulk insert via .insert([...]), batch upsert, array filters
69
Silver
Most SaaS APIs
Single-item CRUD only. No batch endpoints. No bulk operations.
35
Not Scored

The pattern is consistent: APIs designed for programmatic use at scale — with batch endpoints, proper pagination, and thoughtful rate limiting — score higher than APIs that only support one-item-at-a-time operations. Batch support is not optional for agent readiness. It is a prerequisite for any API that agents will use at scale.

Adding Batch Support: The Priority Order

You do not need to batch-enable every endpoint at once. Start with the endpoints agents will call most frequently and at the highest volume.

1

CRUD operations (create, update, delete)

Product creation, price updates, inventory adjustments, user imports. These are the operations agents perform at scale most often. Accept arrays on your existing POST/PUT/DELETE endpoints.

2

Status and lookup endpoints

Order status, payment status, shipment tracking. Agents monitoring workflows need to check dozens or hundreds of items. Accept arrays of IDs and return all statuses in one response.

3

Search and filter operations

Multi-filter queries, bulk search by ID list, faceted search. When agents need to find items matching complex criteria, batch-capable search endpoints reduce round trips.

4

Async job endpoints for large batches

For operations over 1000 items, add async batch endpoints that accept the full payload, return a job ID, and provide a status polling endpoint. This handles the long tail of large-scale agent operations.

Frequently Asked Questions

How big should batch sizes be?

Start with a maximum of 100-1000 items per batch call. Stripe allows up to 100 items per batch creation. Supabase handles thousands of rows in a single insert. The right limit depends on your payload size and processing time. Document the maximum clearly in your API spec so agents know the constraint without guessing. If an agent needs to process 10,000 items, it should be able to read the limit and automatically chunk into batches.

Should batch endpoints be synchronous or asynchronous?

For batches under 100 items and processing times under 30 seconds, synchronous is fine — the agent calls the endpoint and gets results immediately. For larger batches, use asynchronous processing: accept the batch, return a job ID, and let the agent poll for status. The key is to include a status endpoint that accepts the job ID and returns progress, results, and errors. Never force an agent to wait minutes on an open HTTP connection.

Do batch endpoints affect rate limiting?

Yes, and this is a major benefit. If your rate limit is 100 requests per minute and an agent needs to process 1000 items, single-item endpoints require 10 minutes of rate-limited calls. A batch endpoint processes all 1000 in one request, consuming one unit of rate limit quota. When designing rate limits for batch endpoints, consider counting by items processed rather than API calls made. This gives agents predictable throughput.

What about idempotency for batch operations?

Batch idempotency is critical for agent reliability. If a batch call times out, the agent needs to safely retry without creating duplicates. Include an idempotency key parameter on batch endpoints. Accept a client-generated key per batch, and if the same key is sent again, return the original results. Stripe does this well with their Idempotency-Key header. Without it, agents must implement complex deduplication logic.


Does your API support batch operations?

Get your free Agent Readiness Score in 60 seconds. See how your API scores across all 9 dimensions including Reliability, Agent Experience, and API Quality.


Share this article: