Skip to content

Use code FUN10 for 10% bonus credits

DocsreCAPTCHA v3

reCAPTCHA v3 API Reference

Get standard and Enterprise reCAPTCHA v3 tokens. The site owner verifies each token with Google.

Read Markdown (English)

The Captcha.fun reCAPTCHA v3 API accepts kind, url, siteKey, action and returns Solved reCAPTCHA token. Send the API_KEY header, create a solve with POST /v1/request, then poll GET /v2/response/{id} until ready is true.

What you’ll need

  • Your API key
  • The URL of the page where the challenge appears
  • The site key from the page
  • action — The reCAPTCHA v3 action value the page passes to grecaptcha.execute. Required: the API returns 400 if it is empty.
  • A proxy, if the result must come from your own IP (recap_v3_proxy)
Use kind

Send the Challenge

Send the page details with your API key. You get a solve id back right away.

POSThttps://api.captcha.fun/v1/request
curl -X POST https://api.captcha.fun/v1/request \
  -H "API_KEY: CAPFUN-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "kind": "recap_v3_enterprise",
    "url": "https://your-domain.example/login",
    "siteKey": "YOUR_RECAPTCHA_SITE_KEY",
    "action": "login"
  }'

Response

Returns the solve id. Use it to get the result.

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "message": "Started Solving"
}
Request fields5 body fields · 4 required

Headers

NameTypeRequiredDescription
API_KEYstringYesYour API key
Content-TypestringYesapplication/json
APP_IDstringNoOptional app ID for request tracking

Body

NameTypeRequiredDescription
kindstringYesrecap_v3, recap_v3_enterprise, recap_v3_proxy, or recap_v3_enterprise_proxy
urlstringYesPage URL where the challenge appears
siteKeystringYesreCAPTCHA site key
actionstringYesThe reCAPTCHA v3 action value the page passes to grecaptcha.execute. Required: the API returns 400 if it is empty.
proxystringNoFor _proxy kinds: host:port or host:port:username:password

Wait for the Result

Use the solve id to fetch the result.

GEThttps://api.captcha.fun/v2/response/{id}

Poll every second until ready is true.

Example

curl -X GET https://api.captcha.fun/v2/response/550e8400-e29b-41d4-a716-446655440000 \
  -H "API_KEY: CAPFUN-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
  -H "Accept: application/json"

Response

{
  "ready": true,
  "status": "SUCCESS",
  "success": true,
  "userAgent": "RETURNED_USER_AGENT",
  "secUa": "RETURNED_SEC_CH_UA",
  "token": "03AGdBq25SiXT-pmSeBXjzScW-EiocHwwpwqJRCAI7Z..."
}
Request and response fields6 response fields

Request

NameTypeRequiredDescription
idstring (UUID)YesPath parameter. The id from Create Solve
API_KEYstringYesHeader. Your API key

Response Fields

NameTypeRequiredDescription
readyboolean—true when the solve is finished (v2 only)
statusstring—SUCCESS or FAILURE
successboolean—Whether the solve succeeded
userAgentstring—Value to send as User-Agent when using the result. Preserve it exactly
secUastring—Value to send as Sec-CH-UA when using the result
tokenstring—Solved reCAPTCHA token

Submit the Token

Submit token with the protected request. The site owner verifies the token, action, and hostname with Google.

When using a successful result, preserve the returned userAgent as User-Agent and secUa as Sec-CH-UA.

Wrong or rejected result? Report the failed solve.

More from reCAPTCHA