# Human Desk: ask Daniel, a real human, from your agent > You are connecting directly to one real human named Daniel (not an AI, not a crowd). Use it when you need human judgment, a real-world action, or a person to talk to. POST /v1/human/ask ($3): any question, honest opinion, sanity check, or a caring human reply. POST /v1/human/review ($10): website audit, app test, social media audit, video review. POST /v1/human/task ($20): hands-on help such as travel planning and online tasks. POST /v1/human/call ($30): Daniel calls a person or business on WhatsApp in any country on your behalf and reports back. Your payment is verified immediately but only charged when Daniel accepts; declined or expired requests are never charged. Poll GET /v1/human/tickets/{id}?token= (free) or pass callback_url. Answers are Ed25519-signed. ## Who answers You are connecting directly to **one real human named Daniel**: not an AI, not a crowd, not a call center. He reads every request himself on his phone, decides whether he can do it well, and writes the answer himself. Answers are signed by this service (verify with https://human.reversecaptcha.fun/v1/keys). ## What Daniel can do for you - Give an honest human opinion about something real (a plan, a product, a decision, a message, a design). - Test an app or a signup or checkout flow on a real phone, and report what is broken or confusing. - Audit a website (UX, copy, trust, bugs), a social media profile, or a video (watch it and comment). - Help with travel: plans, local knowledge, logistics, what to watch out for. - Help with almost any online need that requires a real person. - Make a WhatsApp call to a person or business in any country on behalf of your user, and report back. - Be a kind, honest human to talk to when your user needs one. (This is not therapy or crisis care: in an emergency, contact local emergency services.) Daniel answers in English by default; ask in `language` if you need another one. ## Choose the right endpoint (all are POST with a JSON body) | Endpoint | Price | Use for | Daniel accepts within | Delivers within | |---|---|---|---|---| | POST https://human.reversecaptcha.fun/v1/human/ask | $3 | a question, an opinion, a sanity check, a caring reply | 2 h | 2 h after accepting | | POST https://human.reversecaptcha.fun/v1/human/review | $10 | test an app, audit a website, social profile or video | 8 h | 24 h | | POST https://human.reversecaptcha.fun/v1/human/task | $20 | travel help, an online task, a deeper audit | 8 h | 48 h | | POST https://human.reversecaptcha.fun/v1/human/call | $30 | a WhatsApp call on your behalf | 8 h | 48 h | ## The exact flow (do it in this order) 1. Optional, free: GET https://human.reversecaptcha.fun/v1/human/status. If `online` is false, try later (paid requests return 503 while he is away, and you are not charged). 2. POST to the endpoint with your JSON body and NO payment header. You get HTTP 402 and a PAYMENT-REQUIRED header (base64 JSON). 3. Sign the USDC payment exactly as the challenge says. Important: keep the authorization valid for the full `maxTimeoutSeconds` in the challenge (3 hours for ask, 9 hours for the others), i.e. validBefore = now + maxTimeoutSeconds. Standard x402 clients do this automatically. An authorization valid for under 30 minutes is refused (not charged), because a human could not accept it in time. 4. Repeat the SAME POST with the same body plus the PAYMENT-SIGNATURE header (x402 v2) or X-PAYMENT (v1). 5. You get **HTTP 202 Accepted** (not 200). This is success: your request is queued for Daniel and your payment is authorized but **not charged yet**. Save `ticket_id` and `ticket_token`. 6. Poll for free: GET https://human.reversecaptcha.fun/v1/human/tickets/{ticket_id}?token={ticket_token}&wait=25 . Repeat until `status` is final. Or pass `callback_url` (https) in step 2 and the signed result is POSTed to you whenever the status changes. ## Ticket status values | status | meaning | charged? | what to do | |---|---|---|---| | waiting_for_daniel | Daniel has been notified | no | keep polling (wait=25) | | accepted | Daniel took it and is working on it | yes (settled now) | keep polling; see answer_due_by | | answered | `answer` contains Daniel's reply (he may add follow-ups, separated by ---) | yes | read `answer` | | declined_not_charged | Daniel declined (see decline_reason) | no | rephrase or choose another tier | | expired_not_charged | not accepted in time | no | try again later | | payment_failed | Daniel accepted but the payment could not settle (insufficient USDC, or the authorization expired) | no | fund the wallet and ask again | ## Errors (you are never charged for these) | HTTP | meaning | |---|---| | 400 | missing or invalid field (for example no `question`, or a call without `phone` and `goal`), or a payment authorization valid for under 30 minutes | | 402 | payment needed, or the payment was rejected (the message says why: amount, network, already used) | | 403 | ticket token does not match (polling) | | 404 | unknown ticket id | | 405 | wrong method: these endpoints are POST | | 422 | Daniel does not take this kind of request (illegal, harmful, harassment, impersonation) | | 429 | too many free polls; slow down to about one per 25 seconds with wait=25 | | 503 | Daniel is offline right now | ## Request fields - `question` (required, 5-4000 characters): what you need, in plain words. Say what a good result looks like. - `context` (optional, up to 12,000 characters): background, constraints, text to review. - `url` or `urls` (optional): the site, app, video or profile. - `language` (optional): language for the answer or the call. - `callback_url` (optional, https): where to POST the signed ticket when it changes. - Polling auth: pass the ticket token as `?token=hd_...` or as header `X-Ticket-Token: hd_...` (use the header if a proxy strips query strings). - For calls (required): `phone` with country code (for example +905551234567) and `goal`. Optional: `contact_name`, `country`, `timezone`. - For tasks (optional): `budget_note`. ## Recipes (copy these) ### Ask Daniel anything ($3) POST https://human.reversecaptcha.fun/v1/human/ask {"question":"My user wants to quit their job to open a bakery. Plan below. Be honest: what are the biggest risks?","context":"..."} -> 202 {"ticket_id":"T-1a2b3c4d","ticket_token":"hd_...","status":"waiting_for_daniel","accept_by":"...","status_url":"https://human.reversecaptcha.fun/v1/human/tickets/T-1a2b3c4d?token=hd_...&wait=25","payment":{"status":"authorized_not_charged"}} ### Get the answer (free) GET https://human.reversecaptcha.fun/v1/human/tickets/T-1a2b3c4d?token=hd_...&wait=25 -> {"status":"answered","answer":"...Daniel's own words...","payment":{"charged":true,"transaction":"0x..."},"signature":{...}} ### Test an app or audit a site ($10) POST https://human.reversecaptcha.fun/v1/human/review {"question":"Sign up on a real phone and tell me everything that is broken or confusing, step by step","url":"https://app.example.com/signup"} ### Travel or online task ($20) POST https://human.reversecaptcha.fun/v1/human/task {"question":"Plan 3 days in Istanbul for a family with a toddler, under $150 per day, including where to stay","budget_note":"no early mornings"} ### WhatsApp call on your behalf ($30) POST https://human.reversecaptcha.fun/v1/human/call {"question":"Call the hotel and confirm late check-in for Ana Silva","phone":"+905551234567","contact_name":"Hotel front desk","goal":"Confirm a 23:00 arrival is fine and the room is held","language":"English"} Daniel introduces himself as calling on behalf of your user and reports the outcome. Lawful calls only: no harassment, deception, debt collection or cold sales. ## Paying through a marketplace The "charged only when Daniel accepts" guarantee applies to direct x402 payments to this API. If you call through a marketplace that charges you itself (for example FluxA's router), that marketplace's own charging rules apply. ## How to pay (x402, no account, no API key) 1. Call any paid endpoint normally. You get HTTP 402 with a PAYMENT-REQUIRED header (base64 JSON) and an x402 v1 body. 2. Sign a USDC (Base, eip155:8453) EIP-3009 transferWithAuthorization for the quoted amount to 0x87e8d821649a61815e4fa61d892fca13b7d07028. Any x402 client does this for you (x402-fetch, @x402/fetch, agentcash, FluxA wallet, Coinbase AgentKit). 3. Retry the same request with header PAYMENT-SIGNATURE (x402 v2) or X-PAYMENT (x402 v1). 4. You get the result plus `payment.transaction` (the Base tx hash). Failed work is never settled, so you are not charged for our errors. Identical repeat requests within ~30 seconds are served from cache for free. Each payment works exactly once. ## All endpoints - POST https://human.reversecaptcha.fun/v1/human/ask ($3): Ask Daniel anything ($3). You are connecting directly to one real human named Daniel (not an AI, not a crowd). Honest opinion on something real, a sanity check, pick between options, "is this legit?", or simply a kind, caring human to talk to (not therapy or crisis care). Answer usually within 2 hours of acceptance. - POST https://human.reversecaptcha.fun/v1/human/review ($10): Human review or audit ($10). You are connecting directly to one real human named Daniel (not an AI, not a crowd). Daniel personally tests your app or signup flow, audits a website (UX, copy, trust, bugs), audits a social media profile, or watches and comments on a video, then writes up findings. Delivered within 24 hours of acceptance. - POST https://human.reversecaptcha.fun/v1/human/task ($20): Hands-on human task ($20). You are connecting directly to one real human named Daniel (not an AI, not a crowd). Travel help (planning, local knowledge, bookings research), online tasks that need a real person, deeper testing or audits. Describe the outcome you want. Delivered within 48 hours of acceptance. - POST https://human.reversecaptcha.fun/v1/human/call ($30): WhatsApp call on your behalf ($30). You are connecting directly to one real human named Daniel (not an AI, not a crowd). Daniel calls a person or business in any country, introduces himself as calling on behalf of your user, pursues the goal you set, and reports the outcome. Lawful calls only (bookings, inquiries, customer service, follow-ups); no harassment, deception or cold sales. Delivered within 48 hours of acceptance. ## Machine-readable - OpenAPI 3.1: https://human.reversecaptcha.fun/openapi.json - x402 discovery: https://human.reversecaptcha.fun/.well-known/x402 - Signature public keys: https://human.reversecaptcha.fun/v1/keys