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
}
}
| Field | Type | Required | Description |
|---|---|---|---|
| prompts | string[] | yes | Array of prompts. Maximum 100 per batch. |
| schema_id | string | yes | Schema ID created in the Dashboard |
| provider | string | yes | anthropic, openai, gemini, groq or mistral |
| model | string | yes | Model for the selected provider |
| user_id | string | yes | Your User ID (Dashboard → Settings) |
| options.concurrency | number | no | Prompts processed in parallel. Default: 3. Max: 10. |
| options.cost_optimized | boolean | no | Tries cheapest model first. Default: false. |
| options.max_retries | number | no | Retries per prompt. Default: 3. |
Cost Optimized
When cost_optimized: true, Reliant tries models in cascade from cheapest to most expensive:
| Provider | Order |
|---|---|
| anthropic | Haiku → Sonnet → Opus |
| openai | GPT-4o-mini → GPT-4o → GPT-4-turbo |
| gemini | Flash → Pro |
| groq | Llama 70B → Mixtral |
| mistral | Small → 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}`)
}
})