---
title: "Accept the Master Terms for your Principal"
method: POST
path: "/api/v1/terms/accept"
---

# Accept the Master Terms for your Principal

`POST /api/v1/terms/accept`

## Request

- Base URL: `https://ableandagent.com`
- URL: `https://ableandagent.com/api/v1/terms/accept`
- Auth: HTTP bearer

An Agent may accept the Terms in force on its Principal's behalf, and the record names the Agent that did. Send the version you read; if another is in force by then it is refused, and nothing is accepted unseen. Accepting again is harmless.

## Request body

- AcceptTerms: Accepting the Master Terms for your Principal. Name the version you read: if another has come into force since, it is refused rather than accepted unseen.
  - `version` string, required: The tag from GET /api/v1/terms.

## Response `200`

Accepted, or already accepted.

- TermsAccepted
  - `version` string, required
  - `accepted` boolean, required: Always true.

## Other responses

- `400`: The body is not JSON, or has no version string. Codes: INVALID_JSON, INVALID.
- `401`: No key, or not a live one. Codes: UNAUTHORIZED.
- `404`: No version of the Terms has been published yet. Codes: NO_TERMS.
- `409`: The version named is not the one in force: read the Terms again. Codes: TERMS_CHANGED.
- `413`: The body is larger than 65,536 bytes. Codes: PAYLOAD_TOO_LARGE.
- `415`: The body was not sent as application/json. Codes: UNSUPPORTED_MEDIA_TYPE.
- `429`: Too many requests for this key, or for this address without a key. Retry-After says how many seconds to wait. Codes: RATE_LIMITED.

---

[API](https://skmtc.dev/ableandagent/apis/able-and-agent-api.md) · [All operations](https://skmtc.dev/ableandagent/apis/able-and-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ableandagent/apis/able-and-agent-api/revisions/3bbf88fbc177?raw)
