Why use it
- Bounded by design. An agent key can do nothing until you explicitly grant it capabilities — the default grant is read-only. Money-moving access (
create_payment_link) is opt-in. - Hard spend caps. Every key carries a per-link cap and a daily total cap, in one currency. Both are enforced atomically on the server before a link is created — an agent cannot exceed them, including under concurrent calls.
- A human still completes the payment.
create_payment_linkreturns a hosted checkout URL. The agent never holds card data and never itself finalizes a charge — the shopper pays through the link. - A fixed, closed tool set. Exactly four tools exist behind an agent key today: creating a link, checking a link’s status, listing links, and checking a payment’s status. There is no path to grant an agent key access to any other endpoint.
- Structurally separate from a secret key. An agent key can never authenticate as your private API key. It is resolved through its own code path and rejected by every other endpoint in the API.
- Audited. Every tool call an agent key makes — tool name, arguments, outcome — is recorded.
Create an agent key
In the Therius dashboard, go to Developers → Agent keys:1
New agent key
Click New agent key. Give it a label and choose the environment (production or sandbox).
2
Grant capabilities
Select which of the four tools this key may call. Leave
create_payment_link unchecked to issue a read-only key.3
Set spend limits
If you grant
create_payment_link, set a per-link cap, a daily total cap, and the currency they’re denominated in. The per-link cap cannot exceed the daily cap.4
Copy the key
The full key (
agent_live_… or agent_sandbox_…) is shown once and cannot be recovered afterward. Store it in a secret manager.Connect an MCP client
Point any MCP-capable client at the endpoint shown on the Developers → Agent keys page:tools/list — it will see only the tools your key’s capabilities allow.
This is a separate endpoint from the Bring Your Own AI MCP server (
ai.therius.io). An agent key only ever authenticates against POST /v1/mcp on the payments API; it is never accepted by the AI-keys MCP server, and an AI key is never accepted here.Tools
A key is issued with the read-only three (
get_payment_link_status, list_payment_links, get_payment_status) by default unless you explicitly grant create_payment_link.
create_payment_link arguments
A successful call returns the link
id, its hosted checkout url, and remaining_today — the spend still available under the key’s daily cap.
Scope and safety
- Fixed tool set. The four tools above are the entire surface an agent key can ever reach. There is no way to grant an agent key access to any other endpoint, and the set cannot grow without a Therius code change.
- Spend is reserved atomically. The per-link and daily-cap check and the spend increment happen in a single database operation — a check can never pass while a concurrent call also passes and together exceed the daily cap.
- Currency-locked.
create_payment_linkonly accepts the currency configured on the key. There is no cross-currency spend. - Scoped to one merchant. An agent key resolves to exactly one merchant.
list_payment_linksandget_payment_statusnever return another merchant’s data; a mismatched lookup returns “not found,” not a permission error, so a key can’t even confirm another merchant’s payment exists. - Never a secret-key substitute. An agent key is resolved through its own authentication path, entirely separate from your private API key (
prv_production_…/prv_sandbox_…). It is rejected by/payment/*and every other endpoint outside/v1/mcp. - Environment-bound.
agent_live_keys reach production;agent_sandbox_keys reach sandbox. There is no cross-over. - Audited. Every tool call — tool name, arguments, and outcome — is written to the audit log.

