Rate limits & usage
LoopLlama meters on workflow steps rather than raw requests. Understanding how steps are counted helps you predict cost and stay within your plan.
What counts as a step#
A step is one reasoning turn by one agent — typically a single model call plus any tool invocations it triggers. A run with a three-agent crew consumes three steps. Each step records its own input and output tokens, which roll up onto the run and into your monthly usage.
Included steps by plan#
| Plan | Included steps | Beyond the allotment |
|---|---|---|
| Developer | 25 / month | Hard cap — runs pause |
| Pro | 250 / month | $0.20 / step |
| Business | 2,000 / month | $0.15 / step |
| Enterprise | Custom / volume | Custom |
Beyond your included steps, usage is billed at your plan's overage rate. Model usage is billed separately, at the provider's list price with no markup (see Models & providers). See Pricing for current per-step rates and seat limits.
Hard caps#
Set a hard cap in your dashboard to stop runs once you hit a monthly step budget — useful for preventing surprise overage on automated pipelines. When the cap is reached, new runs are rejected until the next billing period or until you raise the cap.
Tracking usage#
Each terminal run emits a usage event recording its steps, tokens and model cost. Your dashboard aggregates these into a rolling 30-day view, broken down by workflow and by model. To monitor usage programmatically, sum the total_steps, tokens_in, tokens_out and cost_usd fields returned on each run.
// Roll up steps across recent runs for a workflow
const { data: runs } = await fetch(
`https://loopllama.ai/api/v1/workflows/${workflowId}/runs`,
{ headers: { Authorization: `Bearer ${process.env.LOOPLLAMA_API_KEY}` } },
).then((r) => r.json());
const steps = runs.reduce((sum, r) => sum + r.total_steps, 0);
const tokens = runs.reduce((sum, r) => sum + r.tokens_in + r.tokens_out, 0);
const modelCostUsd = runs.reduce((sum, r) => sum + r.cost_usd, 0); // billed at costBest practices#
- Keep crews as small as the task allows — every extra agent is an extra step on every run.
- Cache or deduplicate inputs upstream so you don't trigger identical runs.
- Use per-agent
modeloverrides to route cheap steps to a smaller model — from any provider — and reserve frontier models for the steps that need them. Model usage is billed at list price, so the savings are yours.