API Reference

POST /execute-batch

Process multiple prompts in parallel against the same schema. With cost_optimized, Reliant automatically tries the cheapest model first — reducing cost without sacrificing validation.


Request

http
POST /execute-batch X-Reliant-Key: rel_... Content-Type: application/json

Body

json
{ "prompts": [ "Contract 1: João Silva, R$ 5.000, 12 meses...", "Contract 2: Maria Santos, R$ 8.000, 6 meses...", "Contract 3: Pedro Alves, R$ 3.500, 24 meses..." ], "schema_id": "contract-extraction", "provider": "anthropic", "model": "claude-sonnet-4-20250514", "user_id": "your-user-id", "options": { "concurrency": 5, "cost_optimized": true, "max_retries": 3 } }
FieldTypeRequiredDescription
promptsstring[]yesArray of prompts. Maximum 100 per batch.
schema_idstringyesSchema ID created in the Dashboard
providerstringyesanthropic, openai, gemini, groq or mistral
modelstringyesModel for the selected provider
user_idstringyesYour User ID (Dashboard → Settings)
options.concurrencynumbernoPrompts processed in parallel. Default: 3. Max: 10.
options.cost_optimizedbooleannoTries cheapest model first. Default: false.
options.max_retriesnumbernoRetries per prompt. Default: 3.

Cost Optimized

When cost_optimized: true, Reliant tries models in cascade from cheapest to most expensive:

ProviderOrder
anthropicHaiku → Sonnet → Opus
openaiGPT-4o-mini → GPT-4o → GPT-4-turbo
geminiFlash → Pro
groqLlama 70B → Mixtral
mistralSmall → Large

If the cheaper model generates a valid output, Reliant delivers immediately without escalating to more expensive models. This can reduce total batch cost by up to 10x.


Response

json
{ "success": true, "total": 3, "summary": { "success": 3, "fallback": 0, "failed": 0, "success_rate": 100, "total_tokens": 1840, "total_latency_ms": 4230, "avg_latency_ms": 1410 }, "results": [ { "index": 0, "success": true, "status": "SUCCESS_OPTIMIZED", "output": { "contractor": "João Silva", "monthly_value": 5000, "duration_months": 12 }, "metadata": { "execution_id": "exec_...", "schema_version": 1, "attempts": 1, "latency_ms": 743, "tokens_used": 412, "provider": "anthropic", "model": "claude-haiku-4-5-20251001", "cost_optimized": true } } ] }
Tip: The status field can be SUCCESS, SUCCESS_OPTIMIZED (cheaper model worked), FALLBACK (safe fallback used) or FAILED.

Example with JS SDK

javascript
import { Reliant } from 'reliant-js' const reliant = new Reliant({ apiKey: 'rel_...', userId: 'your-user-id', }) const batch = await reliant.executeBatch({ prompts: [ "Contract 1: João Silva, R$ 5.000, 12 meses...", "Contract 2: Maria Santos, R$ 8.000, 6 meses...", ], schemaId: 'contract-extraction', provider: 'anthropic', model: 'claude-sonnet-4-20250514', costOptimized: true, concurrency: 5, }) console.log(`Success rate: ${batch.summary.success_rate}%`) console.log(`Total tokens: ${batch.summary.total_tokens}`) batch.results.forEach((r, i) => { if (r.success) { console.log(`Contract ${i + 1}:`, r.output) console.log(`Model used: ${r.metadata.model}`) } })