Add balance first, then order the exact solve quantity you need without waiting for manual approval.
Image-based captcha solving system
- Fast
- Accurate
- Affordable
Captcha pricing
Current catalog starts with Combo Funcaptcha at $0.15 per 1,000 solves, 30-day packages, quantity from 10,000 to 100,000 solves.
Operational flow
Each order is tied to a captcha type so pricing and API handoff can evolve cleanly later.
Every order issues its own API key, and you can rotate it later without touching quota history.
API reference
Image captcha API for submit, polling, and balance checks through one stable tgsolve.com key.
Funcaptcha IMG
Use one dedicated API key per application. Authentication and quota tracking stay inside tgsolve.com so your integration stays consistent.
Request flow
POST the captcha as base64 together with `type-captcha=funcaptcha-img` and the current `imginstructions` value.
The API returns plain text like `OK|TASK_ID` when the request is accepted.
Use the same API key to read status and the final solution from `res.php`.
Client systems only need your tgsolve.com API key. The request format stays consistent without extra routing fields.
Use your API key
Every active API key is shown in your dashboard. Pass it as the `key` query parameter on each request.
Submit captcha request
POST /api/v1/in.php?key=SUBSCRIPTION_API_KEY
| Name | Location | Required | Description |
|---|---|---|---|
type-captcha |
body | yes | Current service slug. Use funcaptcha-img. |
method |
body | yes | Current submit mode. Use base64. |
body |
body | yes | Captcha image encoded as base64, not a screenshot URL. |
imginstructions |
body | yes | Dynamic instruction text from your client for this image set. The API forwards this value unchanged. |
requestId |
body/query | no | Optional idempotency token to make retries safe. |
Successful submit returns OK|TASK_ID. If local quota is empty the API returns ERROR_ZERO_BALANCE.
imginstructions is not a default.
Send the exact instruction required by the current captcha image. Do not rely on numericalmatch unless that is the real instruction for the task.
Poll task status
GET /api/v1/res.php?key=SUBSCRIPTION_API_KEY&action=get&id=TASK_ID
| Name | Location | Required | Description |
|---|---|---|---|
action |
query | yes | Use get to poll the task result. |
id |
query | yes | The task ID returned by the submit request. |
CAPCHA_NOT_READYor an equivalent processing state while the task is still running.- Final plain-text answer when the task is solved.
ERROR_...text if the task cannot be resolved.
Read remaining quota
GET /api/v1/res.php?key=SUBSCRIPTION_API_KEY&action=getbalance
The response is a single plain-text number representing the remaining solve quantity on that API key.
Ready-to-run client code
Keep integrations predictable
Even when a package is already locked to funcaptcha-img, keeping type-captcha in the payload makes later service expansion easier.
Rotate keys from the dashboard if needed, but keep application systems scoped to the package they actually consume.
Operator support
Use Discord for package support, wallet issues, and integration questions that need a quick back-and-forth.
Join the support server
Share your API key prefix, request ID, captcha type, and the exact error you are seeing.
Send useful details
- API key prefix
- Latest request ID or task ID
- Captcha type and endpoint used
- Exact response payload or error text
Dashboard
Wallet status, active orders, and daily usage stay in one operational view.
Daily Usage
Top up balance
Manage wallet funding methods and keep wallet top-up history in one separate workspace.
Recharge invoice
Use your fixed transfer content, pay to the bank account below, and the system will credit your wallet automatically when a matching bank transaction is recorded.
Bank transfer top-up is currently unavailable. Please contact support.
Not availableRe-check bank history
If you already transferred correctly but the wallet is not updated yet, complete Cloudflare verification and trigger a fresh bank transaction history scan.
Crypto invoice
Create a NOWPayments invoice and pay with crypto. Your wallet is credited after the payment reaches the finished status.
Crypto top-up is currently unavailable. Please contact support.
Not availableRedeem wallet code
Redeem a balance code directly into your main wallet balance.
Recharge invoice history
Order Management
Pick a captcha type, choose exact solve quantity, and review the order total before buying.
Build captcha order
Add package credit
Your Packages
Purchase History
API reference
Image captcha API for base64 submit, plain-text polling, and stable quota delivery.
Funcaptcha IMG
The API is designed to stay product-facing. Applications only talk to tgsolve.com while quota usage and request handling stay behind the same API surface.
Request flow
Use your API key and send the base64 captcha image plus the current imginstructions value to in.php.
Accepted jobs return plain text OK|TASK_ID.
Read the task result from res.php until the answer is returned.
Your application payload only needs the API key and captcha fields. The public contract stays consistent even if the backend changes later.
Use your API key
Every active order carries a dedicated API key. Keep one application bound to one key where possible.
Submit captcha request
POST /api/v1/in.php?key=SUBSCRIPTION_API_KEY
| Name | Location | Required | Description |
|---|---|---|---|
type-captcha |
body | yes | Current service slug. Use funcaptcha-img. |
method |
body | yes | Current submit mode. Use base64. |
body |
body | yes | Captcha image encoded as base64. |
imginstructions |
body | yes | Dynamic instruction text from your client for this image set. The API forwards this value unchanged. |
requestId |
body/query | no | Optional idempotency key for retry-safe submits. |
Successful submit returns OK|TASK_ID. Failed balance check returns ERROR_ZERO_BALANCE.
imginstructions is not a default.
Send the exact instruction required by the current captcha image. Do not rely on numericalmatch unless that is the real instruction for the task.
Poll task status
GET /api/v1/res.php?key=SUBSCRIPTION_API_KEY&action=get&id=TASK_ID
| Name | Location | Required | Description |
|---|---|---|---|
action |
query | yes | Use get to read the task status. |
id |
query | yes | The task ID returned by the submit request. |
CAPCHA_NOT_READYor another processing state while the task is still running.- The final answer as plain text when the solve is complete.
ERROR_...if the task cannot be processed.
Read remaining quota
GET /api/v1/res.php?key=SUBSCRIPTION_API_KEY&action=getbalance
The response body is the remaining solve quantity available on that API key.
Ready-to-run client code
Keep key usage clean
Each key is tied to a quota. Keep applications mapped to the key they are supposed to spend.
That keeps your client compatible when new captcha types are added later.
Need help?
Open Discord when you need help with package activation, request failures, or quota tracking.
Operator channel
Support is faster when you send the API key prefix, request ID, captcha type, and the raw response.
Support payload
- API key prefix
- Task ID or latest request ID
- Captcha type and endpoint used
- Observed error response
Referral Program
Share your private link, manage affiliate balance, request payouts, and track VIP progress from one workspace.
Move balance
Affiliate commissions are kept separate from your main wallet until you transfer or withdraw them.
Upgrade affiliate VIP
Bank payout request
Minimum withdrawal is loading.
Your referral URL
Affiliate commission is credited when referred users top up their wallet, and the VIP ladder updates from attributed top-up volume.
VIP ladder
Referred user top-ups move your profile through the VIP ladder below.
Reach the next threshold in attributed top-up volume to unlock the next payout rate.
| VIP | Target | Rate |
|---|