---
title: "Accept the current Terms of Service (API key)"
method: POST
path: "/v1/terms/accept"
tags: ["Terms"]
---

# Accept the current Terms of Service (API key)

`POST /v1/terms/accept`

## Request

- Base URL: `https://api.chronary.ai`
- URL: `https://api.chronary.ai/v1/terms/accept`
- Auth: HTTP bearer

Bearer-API-key equivalent of `PATCH /v1/auth/terms`, for SDK / MCP clients that have no console session. Use it to clear a material ToS bump signalled by the `Chronary-Terms-Upgrade-Required` response header. Reaches the same re-acceptance path (appends an immutable `tos_acceptances` row and updates the org). Requires an org-level API key (`chr_sk_*`) — agent-scoped keys are rejected with 403.

## Request body

- ReacceptRequest
  - `tos_version` string, required: Must equal `CURRENT_TERMS_VERSION`.

## Response `200`

Re-acceptance recorded

- TermsAcceptResponse
  - `accepted_terms_version` string, required
  - `accepted_terms_at` string, date-time, required

## Other responses

- `400`: Validation error — invalid request body or query parameters
- `401`: Unauthorized — missing or invalid API key
- `403`: Forbidden — quota exceeded or operation not permitted
- `409`: ToS version stale — the submitted `tos_version` does not match `CURRENT_TERMS_VERSION`. Response body includes a `current_version` field on the `error` object.

---

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