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.
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;
Give each unit of work a Run so tool use, purchases, evidence, and outcomes stay connected.
Read spend context and create a Spend Intent with purpose, amount, and Resource. Idempotency keys make retries safe.
AUTO authorizes and the request proceeds; ASK routes to a person; BLOCK returns a machine-readable denial reason.
Execute the authorized paid request, attach evidence, and submit the outcome. Webhooks stream settlement events into your systems.
No increase_limit. No edit_policy. No approve_exception. No reveal_wallet. Authority-changing capabilities are not exposed to the agent.
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.
{
"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.