# Changelog

> What changed in the ZeroCaptcha API, its formats, the dashboard and these docs, newest first, and how changes to the API are announced.

Source: https://zerocaptcha.io/docs/reference/changelog

What changed, newest first. The API is at version 0.1.0 of its contract and has not launched yet;
until it does, entries are grouped by the day they were built.

## How changes are made

- **Additions** (a new field in a reply, a new optional field, a new task type or error code) can
  come at any time. Ignore reply fields you do not know, and treat an unknown error code by its HTTP
  status.
- **A change that could break working code** (a removed or renamed field, a changed meaning) is not
  made within v1: it would come as v2, with `Deprecation` and `Sunset` headers on v1's replies and
  an entry here first.
- **Prices** change only as the price list says ahead: [`GET /v1/prices`](https://zerocaptcha.io/docs/reference/api/prices)
  shows the next change and when it takes effect, and a task is always charged the price in effect
  when it was created.

The [OpenAPI contract](https://zerocaptcha.io/openapi.json) always describes the API as it is.

## 1 October 2026

- **Your account.** `GET /v1/account` gives the account's standing and the getting-started
  checklist, which the dashboard's Overview now shows until its three steps are done. Settings
  downloads a copy of your data (`GET /v1/account/export`), and an owner deletes the account there
  (`POST /v1/account/deletion`), confirmed with the password or a passkey: its queued tasks end with
  the new outcome `ERROR_ACCOUNT_DELETED`, uncharged. See
  [Account security](https://zerocaptcha.io/docs/account-security#your-data-and-deleting-the-account).
- **Suspensions.** Everyone on a suspended account is emailed, with how to appeal, and again when
  it is lifted. The dashboard shows the suspension on every page, and Support becomes the appeal
  form.
- **Callbacks.** `GET /v1/tasks/{id}` shows a task's `callback`: where it stands and each delivery
  attempt, with its time, status code and next retry, as the task's page in the dashboard does.
  `POST /v1/tasks/{id}/callback/resend` sends it again. See
  [Polling and callbacks](https://zerocaptcha.io/docs/callbacks#see-each-attempt-and-send-it-again).
- **Reports.** A report says whether the site took a solved task's token: `POST /v1/tasks/{id}/report`,
  `reportbad` and `reportgood` in the 2Captcha format, and `reportIncorrect`, `reportCorrect`,
  Anti-Captcha's `reportIncorrectRecaptcha` and `reportCorrectRecaptcha` and CapSolver's
  `feedbackTask` in the createTask format. Reports are recorded for our staff; nothing is refunded.
- **The 2Captcha format.** Task IDs are numbers, as 2Captcha's are, and `res.php` takes a task's
  UUID too; `action=get` with `ids` reads up to 100 tasks at once. See
  [2Captcha format](https://zerocaptcha.io/docs/2captcha).
- **The createTask format** reads Anti-Captcha's `cData` spelling too, and CapMonster Cloud's
  `pageAction`. Its `cloudflareTaskType` may be `token`; its `cf_clearance` and `wait_room` modes
  are refused with `ERROR_TASK_NOT_SUPPORTED`, before anything is charged. See
  [createTask format](https://zerocaptcha.io/docs/createtask#cloudflare-turnstile-task).
- **Support from a task.** A task's page opens Support with the task's ID filled in.

## 30 September 2026

- **Docs.** Guides for solving Turnstile, browser automation, polling and callbacks, errors and
  retries, rate limits, billing, teams and account security; how a task works and authentication;
  the createTask format and migration guides; a page for each SDK; the callback payload, limits,
  this changelog and an FAQ. Every page has Copy as Markdown and Open in Claude or ChatGPT, and a
  Markdown version at its address with `.md`.
- **Hand off to AI.** An [integration brief](https://zerocaptcha.io/docs/ai) for AI coding assistants, generated from the
  contract, with tested reference clients in Node, Python, Go and bash; the same as JSON; files for
  Claude Code, Cursor, AGENTS.md and GitHub Copilot; `/llms.txt` and `/llms-full.txt`; an MCP
  server; and **Hand off to AI** on the dashboard's API keys page.
- **Cloudflare challenge pages.** `CloudflareChallengeTask` (and `AntiCloudflareTask`) passes a
  challenge page through your proxy and returns its `cf_clearance` cookie with the user agent it is
  bound to, in REST and the createTask format. Tasks gain `kind`, `turnstile` or `cloudflare`, and a
  solution gains `userAgent` and `cookie`. See [Challenge pages](https://zerocaptcha.io/docs/challenges).
- **The 2Captcha format.** `in.php` and `res.php` for Turnstile, with every reply in 2Captcha's
  shapes. See [2Captcha format](https://zerocaptcha.io/docs/2captcha).
- **Callbacks.** `callbackUrl` (`pingback` in the 2Captcha format) posts a task's result when it
  ends, signed with `ZeroCaptcha-Signature`. See [Polling and callbacks](https://zerocaptcha.io/docs/callbacks).
- **Teams.** Owners and members on one account, with invitations and an activity log. See
  [Teams and roles](https://zerocaptcha.io/docs/teams).
- **SDKs** for Node.js, Python and Go. See [SDKs](https://zerocaptcha.io/docs/sdks).
- **The dashboard** gained billing (top-ups, receipts, the low-balance email, spend caps), usage,
  the Playground and the task log.

## 29 September 2026

- **The task API.** REST v1 (`POST /v1/tasks`, `GET /v1/tasks`, `GET /v1/tasks/{id}`, live updates
  at `GET /v1/tasks/events`, `GET /v1/balance`) and the createTask format (`createTask`,
  `getTaskResult`, `getBalance`) for `TurnstileTaskProxyless` and `TurnstileTask`, with
  `Idempotency-Key` on creates and RFC 9457 problem details.
- **Accounts and keys.** Sign-up with an email and a password, keys with scopes, allowed addresses,
  rotation with an overlap, and revocation; two-factor with an authenticator app, recovery codes and
  passkeys.
- **Money.** A prepaid USD balance, top-ups in crypto through NOWPayments, holds and charges settled
  once per task, and public prices at `GET /v1/prices`.
