API for AI agents to delegate tasks to real humans.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Poll the status and retrieve the result of a previously submitted task. Returns the current status (pending, in_progress, pending_review, completed, disputed), the result payload, and any output URLs (video, screenshot). Use this in a polling loop after submit_task if no callback_url was provided.
The task ID returned when the task was submitted
Poll the status and retrieve the result of a previously submitted task. Returns the current status (pending, in_progress, pending_review, completed, disputed), the result payload, and any output URLs (video, screenshot). Use this in a polling loop after submit_task if no callback_url was provided.
| Argument | Type | Description |
|---|---|---|
| task_id* | string | The task ID returned when the task was submitted |
{
"type": "object",
"required": [
"task_id"
],
"properties": {
"task_id": {
"type": "string",
"description": "The task ID returned when the task was submitted"
}
}
}Optional. Approve or dispute a task that is in `pending_review` status. Use this after get_task_status reports the operator has completed the work. Approving releases the operator payout. Disputing requires a reason and a description of what is needed for acceptance; the operator is then allowed to resubmit. If you never call review_task, tasks are auto-approved after the review window expires.
| Argument | Type | Description |
|---|---|---|
| task_id* | string | The task ID returned by submit_task. |
| decision* | string | approve to accept the result and release payment; dispute to reject it and request a resubmission. |
| dispute_reason | string | Required when decision = 'dispute'. What went wrong with the submission. |
| what_is_needed | string | Required when decision = 'dispute'. What the operator must do for the submission to be accepted. |
{
"type": "object",
"required": [
"task_id",
"decision"
],
"properties": {
"task_id": {
"type": "string",
"description": "The task ID returned by submit_task."
},
"decision": {
"enum": [
"approve",
"dispute"
],
"type": "string",
"description": "approve to accept the result and release payment; dispute to reject it and request a resubmission."
},
"dispute_reason": {
"type": "string",
"description": "Required when decision = 'dispute'. What went wrong with the submission."
},
"what_is_needed": {
"type": "string",
"description": "Required when decision = 'dispute'. What the operator must do for the submission to be accepted."
}
}
}Submit an account verification task to a real human operator. Use this when your agent is blocked on something only a real person can complete — a KYC check, a platform sign-in or 2FA prompt, a CAPTCHA, an identity confirmation, or any verification step that requires a human. The task is charged automatically via Stripe ($39). A vetted operator claims it, performs the verification on real hardware, and returns the result (with optional screenshot) to your callback_url or via get_task_status. Typical completion: 30 minutes.
| Argument | Type | Description |
|---|---|---|
| task_type* | string | account_verification — a real human verifies an account, KYC check, sign-in, or CAPTCHA on real hardware and returns structured proof ($39). |
| callback_url | string | Webhook URL to receive a POST request with the task result when completed. Recommended for async agent workflows. If omitted, poll get_task_status instead. |
| instructions* | object | Structured input for account_verification. Required fields: platform (e.g. 'gmail', 'stripe'), url (where to perform the verification), credentials (login info or how to obtain the code), what_to_verify (what the operator must confirm). Optional: screenshot_required (boolean, default true), additional_notes. |
| deadline_minutes* | integer | Time in minutes the operator has to complete the verification after claiming it. Minimum 20. Recommended: 30. |
| payment_credential | object | Stripe Link Agent Wallet Single-use Payment Token (SPT) for fully autonomous agent payments with no human intervention required. Omit if the developer account has a saved card on file. |
{
"type": "object",
"required": [
"task_type",
"instructions",
"deadline_minutes"
],
"properties": {
"task_type": {
"enum": [
"account_verification"
],
"type": "string",
"description": "account_verification — a real human verifies an account, KYC check, sign-in, or CAPTCHA on real hardware and returns structured proof ($39)."
},
"callback_url": {
"type": "string",
"description": "Webhook URL to receive a POST request with the task result when completed. Recommended for async agent workflows. If omitted, poll get_task_status instead."
},
"instructions": {
"type": "object",
"description": "Structured input for account_verification. Required fields: platform (e.g. 'gmail', 'stripe'), url (where to perform the verification), credentials (login info or how to obtain the code), what_to_verify (what the operator must confirm). Optional: screenshot_required (boolean, default true), additional_notes."
},
"deadline_minutes": {
"type": "integer",
"minimum": 20,
"description": "Time in minutes the operator has to complete the verification after claiming it. Minimum 20. Recommended: 30."
},
"payment_credential": {
"type": "object",
"description": "Stripe Link Agent Wallet Single-use Payment Token (SPT) for fully autonomous agent payments with no human intervention required. Omit if the developer account has a saved card on file."
}
}
}