Skip to content
Lootrunners
Built for agents

One spend interface for every agent.

Your agent asks for the Resources and spending it needs. Lootrunners keeps access, policy, approvals, execution, evidence, and outcomes behind a bounded API or MCP connection.

MCPRESTWEBHOOKS

Agent credentials cannot change budgets, Rules, Mandates, or treasury settings.

const res = await fetch('https://app.lootrunners.com/api/agent/v1/spend/intents', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${LOOTRUNNERS_AGENT_KEY}`,
    'Idempotency-Key': `lead-${lead.id}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    mandate_id: 'midwest-research',
    purpose: 'Verify employer and title',
    amount_usd: '0.08',
    vendor_domain: 'example-data.com',
  }),
});

// decision.result is AUTO, ASK, or BLOCK
const { decision } = await res.json();
return decision.result;
01
Start the Run

Give each unit of work a Run so tool use, purchases, evidence, and outcomes stay connected.

02
Request

Read spend context and create a Spend Intent with purpose, amount, and Resource. Idempotency keys make retries safe.

03
Decision

AUTO authorizes and the request proceeds; ASK routes to a person; BLOCK returns a machine-readable denial reason.

04
Complete

Execute the authorized paid request, attach evidence, and submit the outcome. Webhooks stream settlement events into your systems.

Bounded MCP tools
A deliberately small spend surface — eight tools.
get_spend_contextsearch_paid_servicesrequest_spendexecute_paid_requestget_spend_statussubmit_outcomerequest_exceptionlist_recent_spend

No increase_limit. No edit_policy. No approve_exception. No reveal_wallet. Authority-changing capabilities are not exposed to the agent.

Connect services without creating ambient authority.

A workspace can connect an MCP server, API, dataset, or other Resource without making it available to every agent. Lootrunners scopes access to an agent or one Run, and routes paid actions through the same spending controls. Granted Resource tools appear on the agent's surface per grant.

A denial can explain itself.
{
  "decision": "BLOCK",
  "reason_code": "resource_restricted_for_agent",
  "reason": "Resource is restricted for this agent"
}

A denial carries a stable machine-readable reason code the agent can act on. Workspaces using the Rules library see the governing Rule cited in the app.

Wire one agent to the sandbox in an afternoon.

Try the sandbox