Let an agent run
const url = 'https://api.katara.com/katara/v1/orgs/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/environments/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/agent-identities/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/run-authority';const options = { method: 'POST', headers: { 'Idempotency-Key': 'example', 'X-Katara-CSRF': '1', Authorization: 'Bearer <token>', 'Content-Type': 'application/json' }, body: '"example"'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.katara.com/katara/v1/orgs/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/environments/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/agent-identities/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/run-authority \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --header 'Idempotency-Key: example' \ --header 'X-Katara-CSRF: 1' \ --data '"example"'Requires an owner or admin, who becomes the payer. In one request the caller consents to pay from their account credits up to the limit until the end time, a budget is funded from that consent, and the agent is granted what a run needs on that budget: to start runs, to call models, and to read what the given version pins. Each record is made through the same checks as making it on its own and appears in the audit log as its own operation; all are ordinary consents, budgets and grants that can be changed or revoked later. Nothing is made when the caller’s role, the agent, the version or the environment would refuse any of them. The records cannot share one transaction, so repeating the request with the same idempotency key and body continues from the last record made and returns the same records. The end time is more than an hour and at most 30 days away. A version published later reads its own sources, and needs another request.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Header Parameters
Section titled “Header Parameters”Browser cookie mutations require value 1 and an allowed Origin. Session bearer clients may omit this header.
Required for cookie-authenticated changes. Use the UUID of the account that loaded the application. A different current cookie account returns account_changed before the handler runs. Session bearer and API key clients do not require this header.
Request Bodyrequired
Section titled “Request Bodyrequired”What the caller agrees to before an agent may run: the agent identity epoch and the published version they reviewed, the usage the budget funds, the most its runs may spend in credits, and when the consent, the budget’s use and the grants end. Simulation funds a simulated version; Test Compute and Live fund a Cortex version in a Test or Live environment.
object
object
object
Responses
Section titled “Responses”Successful request
What an agent runs under: the caller’s payer consent, the budget funded from it, and the grants on that budget to start runs, to call models and to read what the version pins. Each is an ordinary record that the consent, budget and grant routes read, change and revoke.
object
object
object
Example
{ "usage_class": "simulation", "limit": { "ledger_kind": "simulation", "asset": "CREDIT_ATOMIC", "scale": 9 }}Conflict: the agent or its version changed after review, or the idempotency key was used for another request; budget_unavailable: the caller’s available credits cannot fund the limit; account_changed: reload and review with the signed-in account.
default
Section titled “default”Request error
object
object
Stable; branch on it. Any operation can answer invalid_request, with param naming the refused field when there is one; human_session_required, when an API key, service account or workload calls an operation only a signed-in person may perform; reauthentication_required, when a person’s sign-in is too old for the operation; permission_denied; route_not_found and method_not_allowed, when no operation matches the path or method; and feature_unavailable, when the operation’s service is not enabled on this deployment.
The request field a refusal is about, such as the agent_id or run_id query parameter; null when the refusal is not about one field.
Example
{ "error": { "action": "sign_in" }}