Introduction
Batch inference priced below OpenRouter batch inference, with per-user cost tracking, budgets, and a full audit trail.
Lararouter runs AI workloads as jobs. You submit a file of requests, we return every result inside the completion window, and you pay less than OpenRouter batch inference.
That's the whole trade. Nothing here is optimized for a user staring at a spinner. It's built for the work you already dispatch to a queue (summarization, tagging, enrichment, classification, embedding backfills), where waiting a few hours costs you nothing and a lower bill matters.
curl https://REGION.api.lararouter.com/v1/batches \
-H "Authorization: Bearer $LARAROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input_file_id": "file_9Hs4TnQ2",
"endpoint": "/v1/chat/completions",
"completion_window": "24h"
}'Each line of that file carries its own attribution, which is the difference between "we spent $4,000 on inference" and "this customer cost us $12.40 last month."
Pick your region
Use the region control in the header to set which host the code samples call. Change it and the hostnames update everywhere, including inside code blocks. The version control in the sidebar selects the API version those samples describe.
Start here
Quickstart
Upload a batch, collect the results, and see what it cost, in about five minutes.
Batches
The core resource: create, poll, cancel, and read results.
Authentication
API key formats, scopes, and rotation.
Attribution
Tag invocations and attribute them to users, teams, or anything else you bill.
What Lararouter does
Batch pricing on every model. One rate per model, priced below OpenRouter batch inference. Chat completions, embeddings, and reranking all run through the same jobs API.
Request bodies you already have. Each line of a batch is an ordinary OpenAI chat, embeddings, or rerank body. The fields stay the same; you submit the job over HTTP.
Results within the window. 24 hours on Pay-as-you-go, 4 hours on Enterprise. It's a ceiling rather than an estimate. Most jobs finish well inside it, and anything outstanding at the boundary comes back marked so you can resubmit it.
Costs per user, not per month. Attribute a line to user:usr_8421 and
GET /v1/usage/entities will tell you what that user cost, in tokens and dollars,
sliced by model, tag, batch, or day. Two attributions at once answer narrower questions: what this
user cost inside this team.
Budgets that actually stop spending. Limits cap cost or tokens per user, per entity, or per project over a day, a month, or a rolling window. A batch whose projected cost would breach a cap is rejected at submit rather than stopping halfway through.
A record you can go back to. Every line is written to the audit log with the request metadata, token usage and costs, and the response body. Retention is 90 days on Pay-as-you-go and 13 months on Enterprise.
Reference
Files
Upload the JSONL a job reads, download the JSONL it writes.
Batches
Create, poll, cancel, and reconcile a job.
Chat completions
The chat body on each batch line, with tools and structured outputs. Not a live POST.
Usage & billing
One endpoint for per-entity token and cost reporting.
Limits
Per-user and per-entity budgets, and what happens at the cap.
Requests
Refetch a recorded exchange by request ID.
Plans
Pay-as-you-go is $15 per month plus usage: per-model batch rates, a 24-hour completion window, 90-day retention, and the whole platform otherwise.
Enterprise is $250 per month plus usage for a 4-hour completion window, SSO, 13-month retention, and a 99.9% uptime SLA.