---
title: "Cancel"
method: POST
path: "/api/agents/{agent_id}/entitlement/cancel"
tags: ["agent-entitlements"]
---

# Cancel

`POST /api/agents/{agent_id}/entitlement/cancel`

## Request

- Base URL: `https://app.thinqos.com` (the document declares no server; this is the origin it was published from)
- URL: `https://app.thinqos.com/api/agents/{agent_id}/entitlement/cancel`
- Auth: none declared

## Path parameters

- `agent_id` string, uuid, required

## Headers

- `x-impersonate-identity-id` string, nullable

## Request body

- CancelIn
  - `immediate` boolean

## Response `200`

Successful Response

- EntitlementStatusOut: Held plan/trial terms (or current terms before acquisition), plus the current purchasable ``offer``. Confirm purchases using offer.plan_id/plan_version.
  - `agent_identity_id` string, uuid, required
  - `monetized` boolean, required
  - `entitled` boolean, required
  - `state` string, nullable, required
  - `plan_id` string, uuid, nullable, required
  - `plan_version` integer, nullable, required
  - `trial_kind` string, nullable, required
  - `trial_available` boolean, required
  - `trial_runs_used` integer, required
  - `trial_runs_total` integer, nullable, required
  - `trial_ends_at` string, date-time, nullable, required
  - `current_period_end` string, date-time, nullable, required
  - `cancel_at_period_end` boolean, required
  - `offer` AgentOfferOut, required: Mirrors ``AgentOffer.as_dict()`` field for field. Money fields are strings, not ``Decimal``: ``as_dict`` already rendered them through the shared ``_money`` helper (strip NUMERIC padding, never quantize away a real non-zero digit), and re-parsing them here would reintroduce the padding this response is meant to be free of. Keeping the same shape means the offer a buyer reads from this endpoint is byte-identical to the offer embedded in a 402 refusal.
    - `agent_identity_id` string, uuid, required
    - `agent_name` string, nullable, required
    - `plan_id` string, uuid, required
    - `plan_version` integer, required
    - `model` string, required
    - `per_use_price_usd` string, nullable, required
    - `sub_price_usd_month` string, nullable, required
    - `included_units_month` integer, nullable, required
    - `overage_policy` string, nullable, required
    - `overage_price_usd` string, nullable, required
    - `margin_multiplier` string, nullable, required
    - `min_monthly_usd` string, nullable, required
    - `currency` string, required
    - `trial_kind` string, required
    - `trial_runs` integer, nullable, required
    - `trial_days` integer, nullable, required
    - `trial_available` boolean, required
    - `throttle_per_min` integer, nullable, required
    - `throttle_per_day` integer, nullable, required
    - `purchase_url` string, required
    - `reason` string, required

## Other responses

- `422`: Validation Error

---

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