# SurSolver > Captcha solving API. Submit a task with POST /createTask, poll POST /getTaskResult for the > token or cookie, read the balance with POST /getBalance. The API key travels in the JSON > body as clientKey. A task is charged when it is accepted; a failed task automatically > returns its original charge once. ## Guides - [Quickstart](https://sursolver.com/docs/guides/quickstart.md): Send your first captcha task from curl, Playwright, Puppeteer, Selenium or a browser extension — five steps from an API key to a solved captcha. - [Authentication](https://sursolver.com/docs/guides/authentication.md): How clientKey authenticates every solver call, how API keys are created and rotated in the dashboard, and what each authentication failure code means. - [Task lifecycle](https://sursolver.com/docs/guides/task-lifecycle.md): What happens between createTask and getTaskResult — statuses, how long answers stay, failures and what a failed task costs. - [Proxies](https://sursolver.com/docs/guides/proxies.md): Which task types need a proxy, the proxy formats the API accepts, and how to keep exit IP and user agent consistent so solved tokens verify on your side. - [Errors](https://sursolver.com/docs/guides/errors.md): Every error code the SurSolver API can return, what each one means, which side caused it, and the exact step to take to recover from it. - [Rate limits](https://sursolver.com/docs/guides/rate-limits.md): Default per-minute limits on task submission and result polling, what a rate-limit refusal looks like, and how to back off without losing throughput. - [Billing & packages](https://sursolver.com/docs/guides/billing.md): How a task is charged against your balance, how subscription packages are spent, what happens when a solve fails, and where refunds and credits come from. - [Migration](https://sursolver.com/docs/guides/migration.md): Moving an existing 2Captcha or Anti-Captcha integration to SurSolver: the fields that map one-to-one, the ones that change, and a checklist to test against. - [Examples](https://sursolver.com/docs/guides/examples.md): Runnable curl, Python, Node.js and Playwright examples for createTask, getTaskResult and getBalance that you can paste straight into your own code. ## Pricing - [Pricing in markdown](https://sursolver.com/pricing.md): every per-task rate and prepaid plan, in USD per 1,000 tasks. ## API - [API reference](https://sursolver.com/docs/api) - [OpenAPI spec](https://sursolver.com/openapi.json) - [All documentation in one file](https://sursolver.com/llms-full.txt)