---
title: "Declare what an agent is about to do (purpose, operations, targets, constraints, parent); returns the statement for the agent's key to sign. Send the id as x-intent-id. Data-collection and model-training intents need class D."
method: POST
path: "/v1/me/intents"
tags: ["Agents"]
---

# Declare what an agent is about to do (purpose, operations, targets, constraints, parent); returns the statement for the agent's key to sign. Send the id as x-intent-id. Data-collection and model-training intents need class D.

`POST /v1/me/intents`

## Request

- Base URL: `https://www.rightshold.com`
- URL: `https://www.rightshold.com/v1/me/intents`
- Auth: HTTP bearer

## Headers

- `X-Request-Id` string

## Request body

- object
  - `agent_id` string, required
  - `purpose` 'research' | 'procurement' | 'content_generation' | 'model_training' | 'data_collection' | 'customer_support' | 'commerce' | 'monitoring' | 'other', required
  - `description` string, required
  - `operations` string[]
  - `ttl_hours` integer
  - `targets` object
    - `domains` string[]
    - `counterparties` string[]
    - `resources` string[]
  - `constraints` object
    - `budget_credits` number
    - `max_rps` number
    - `data_categories` string[]
    - `retention_days` integer
    - `enforce` boolean
  - `parent_intent_id` string
  - `delegation` object: For a sub-agent hired by another account: {statement, signature} signed by the parent intent's agent.
  - `not_before` string

## Response `200`

OK

- object: Inferred from 73 recorded responses; required fields appeared in every one; additional properties may appear.
  - `id` string, required
  - `expires_at` string, required
  - `spec` string, required
  - `risk` object, required
    - `score` number, required
    - `class` string, required
    - `factors` object, required
      - `purpose` integer, required
      - `budget` number, required
      - `breadth` integer, required
      - `duration` number, required
      - `delegation` number, required
      - `data` integer, required
  - `binding` string, required
  - `statement` object, required
    - `spec` string, required
    - `intent_id` string, required
    - `issuer` string, required
    - `agent` object, required
      - `id` string, required
      - `number` string, required
      - `did` string, nullable, required
      - `jkt` string, nullable, required
    - `purpose` string, required
    - `objective_sha256` string, required
    - `operations` string[], required
    - `targets` object, required
      - `domains` string[], required
      - `counterparties` string[], required
      - `resources` unknown[], required
        - unknown
    - `constraints` object, required
      - `budget_credits` integer, nullable, required
      - `max_rps` number, nullable, required
      - `data_categories` string[], required
      - `retention_days` integer, nullable, required
      - `enforce` boolean, required
    - `window` object, required
      - `not_before` string, required
      - `expires_at` string, required
    - `parent` object, nullable, required
      - `intent_id` string
      - `statement_sha256` string
    - `depth` integer, required
    - `risk` object, required
      - `class` string, required
      - `score` number, required
    - `declared_at` string, required
  - `statement_sha256` string, required
  - `sign` object, required
    - `how` string, required
    - `then` string
  - `usage` string, required
  - `next_action` object, required
    - `action` string, required
    - `label` string, required
    - `why` string, required
    - `needs` string, required
    - `tool` string
    - `rest` string, required
  - `mandate` object
    - `document` object, required
      - `spec` string, required
      - `intent_id` string, required
      - `statement_sha256` string, required
      - `agent` string, required
    - `how` string, required
    - `then` string, required

## Other responses

- `400`: Problem details: a stable error code, type URI, title, status and an explanation
- `401`: Problem details: a stable error code, type URI, title, status and an explanation
- `404`: Problem details: a stable error code, type URI, title, status and an explanation
- `405`: Problem details: a stable error code, type URI, title, status and an explanation
- `422`: Problem details: a stable error code, type URI, title, status and an explanation
- `429`: Request budget exhausted; retry after Retry-After seconds
- `500`: Problem details: a stable error code, type URI, title, status and an explanation
- `4XX`: {error, detail}

---

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