---
title: "POST /agent/elevate"
method: POST
path: "/agent/elevate"
---

# POST /agent/elevate

`POST /agent/elevate`

## Request

- Base URL: `https://api.useanima.sh/v1`
- URL: `https://api.useanima.sh/v1/agent/elevate`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

## Request body

- object: Step-up parameters
  - `otp_code` string: The 6-digit code emailed to the owner by /agent/elevate/request
  - `grant` string: An owner grant from a previous enrolment, used instead of an emailed code. The caller is expected to have kept it behind a local human-presence gate.
  - `enroll` boolean: Also return a durable owner grant, so later step-ups on this machine need no email. Honoured only when authorising with otp_code — a grant cannot mint its successor.

## Response `200`

OK

- object: Short-lived master credential
  - `api_key` string, required: Short-lived key with master capability. Shown once; store it now.
  - `expires_at` string, date-time, required: When the key stops working
  - `api_key_id` string, required: Id of the issued key, for revoking it early
  - `grant` string: Durable owner grant. Shown once; store it behind a human-presence gate.
  - `grant_expires_at` string, date-time: When the grant stops being accepted and an emailed code is needed again

---

[API](https://skmtc.dev/useanima/apis/anima-api.md) · [All operations](https://skmtc.dev/useanima/apis/anima-api/llms.txt) · [OpenAPI document](https://skmtc.dev/useanima/apis/anima-api/revisions/aaa148188980?raw)
