Providers
Compare provider modalities, input media, batch transport, metadata fields, and webhook behavior across all seven adapters.
Batchwork exposes one lifecycle across seven provider-native batch APIs. The provider still controls models, pricing, limits, processing time, and supported request features.
Output modalities
| Provider | Text | Embeddings | Image generation |
|---|---|---|---|
| OpenAI | Yes | Yes | Yes |
| Anthropic | Yes | No | No |
| Google Gemini | Yes | Yes | Yes |
| Groq | Yes | No | No |
| Mistral | Yes | Yes | No |
| Together AI | Yes | No | No |
| xAI | Yes | No | Yes |
Provider options
Pass options with --provider-options or --provider-options-file. Keys use the exact SDK-style camel-case spelling documented on each provider page. Batchwork merges only the selected provider branch; per-record non-null values override defaults with a shallow merge.
OpenAI, Anthropic, Google, Groq, Mistral, and xAI reject unknown keys before provider upload. Together accepts trusted passthrough options but rejects fields reserved by the canonical request envelope. Canonical settings and provider options that control the same wire field fail as conflicts instead of silently overriding one another.
Exact text option keys:
- OpenAI common:
forceReasoning,logprobs,promptCacheKey,promptCacheRetention,safetyIdentifier,serviceTier,systemMessageMode,user. Chat additionally acceptslogitBias,maxCompletionTokens,metadata,parallelToolCalls,prediction,reasoningEffort,store,textVerbosity. Responses additionally acceptsallowedTools,contextManagement,conversation,include,instructions,maxToolCalls,metadata,parallelToolCalls,previousResponseId,reasoningEffort,reasoningSummary,store,textVerbosity,truncation. Completions acceptsecho,logitBias,logprobs,suffix,user. - Anthropic:
cacheControl,container,contextManagement,disableParallelToolUse,effort,fallbacks,inferenceGeo,mcpServers,metadata,speed,taskBudget,thinking,toolStreaming. - Google:
audioTimestamp,cachedContent,imageConfig,labels,mediaResolution,responseModalities,retrievalConfig,safetySettings,serviceTier,thinkingConfig. - Groq:
parallelToolCalls,reasoningEffort,reasoningFormat,serviceTier,user. - Mistral:
documentImageLimit,documentPageLimit,parallelToolCalls,reasoningEffort,safePrompt. - xAI:
include,logprobs,previousResponseId,reasoningEffort,reasoningSummary,store,topLogprobs. - Together: provider-owned keys pass through except reserved
custom_id,customId,input,messages,model,prompt, andstream.
Treat these options as trusted configuration, not end-user input. Provider APIs remain authoritative for model-specific and evolving constraints; Batchwork validates only constraints it can decide locally before upload.
This matrix describes generated output. Text requests can accept additional media inputs.
Text-request input media
| Provider | Images | PDFs/files | Audio | Direct provider URLs |
|---|---|---|---|---|
| OpenAI | Yes | Responses PDFs/files | Supported forms | Images; PDFs for Responses |
| Anthropic | Yes | PDFs/documents | No | Images and PDFs |
| Yes | Inline/provider files | Supported inline forms | Constrained Files and YouTube URLs | |
| Groq | Yes | No | No | Images |
| Mistral | Yes | PDFs | No | HTTPS PDF URLs |
| Together AI | Yes | Inline PDF/text | Inline WAV/MP3 | Generally downloaded and inlined |
| xAI | Yes | File URLs/provider IDs | No | Images and supported file URLs |
Provider/model support applies. See Text and messages and Security.
Submission and results
| Provider | Submission | Results |
|---|---|---|
| OpenAI | JSONL file upload | Output and error JSONL files |
| Anthropic | Inline Message Batch | Same-origin JSONL result URL |
| Inline long-running operation | Inline operation response only | |
| Groq | JSONL file upload | Output and error JSONL files |
| Mistral | JSONL file upload | Output and error JSONL files |
| Together AI | Upload initiation, presigned PUT, preprocessing | Output and error JSONL files |
| xAI | JSONL file upload | Paginated results endpoint |
Batch-level metadata
The metadata= submission argument is not supported uniformly. Unsupported providers reject it locally before upload or batch creation.
| Forwarded | Rejected |
|---|---|
| OpenAI, Groq, Mistral, Together AI | Anthropic, Google, xAI |
Request-level provider metadata may still be available through provider_options. Google uses provider request metadata internally to preserve custom_id correlation.
Webhooks
OpenAI is the only provider with a native inbound batch-webhook helper. Every provider can use Batchwork-managed polling and signed outbound completion delivery through BatchPoller.
Credentials
See Configuration for API keys, endpoint overrides, and precedence. Each provider page documents its default API root and authentication style.