Get Solve Response
Long polling endpoint to get the result of a captcha solve request
Endpoint
GET https://api.captcha.fun/v1/response/{id}GET https://api.captcha.fun/v2/response/{id}Polling
Poll this endpoint every 1 second and check for `ready === true` in the response body. This is faster and more efficient than v1's long polling approach.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string (UUID) | Yes | The ID of the solve request |
Request Headers
| Header | Type | Required | Description |
|---|---|---|---|
API_KEY | string | Yes | Your API key |
Response Fields
| Field | Type | Description |
|---|---|---|
ready | boolean | Whether the solve is complete - poll until true (v2 only) |
status | string | The status of the solve request (SUCCESS or FAILURE) |
success | boolean | Whether the solve was successful |
userAgent | string | The user agent used for solving |
secUa | string | The Sec-CH-UA header value |
token | string | The solved captcha token |
Request Example
curl -X GET https://api.captcha.fun/v2/response/550e8400-e29b-41d4-a716-446655440000 \ -H "API_KEY: CAPFUN-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \ -H "Accept: application/json"import requestsresponse = requests.get( "https://api.captcha.fun/v2/response/550e8400-e29b-41d4-a716-446655440000", headers={ "API_KEY": "CAPFUN-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "Accept": "application/json" })print(response.status_code, response.json())const response = await fetch( "https://api.captcha.fun/v2/response/550e8400-e29b-41d4-a716-446655440000", { method: "GET", headers: { "API_KEY": "CAPFUN-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "Accept": "application/json" } });const data = await response.json();console.log(response.status, data);package mainimport ( "encoding/json" "fmt" "net/http")func main() { req, _ := http.NewRequest("GET", "https://api.captcha.fun/v2/response/550e8400-e29b-41d4-a716-446655440000", nil) req.Header.Set("API_KEY", "CAPFUN-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") req.Header.Set("Accept", "application/json") client := &http.Client{} resp, _ := client.Do(req) defer resp.Body.Close() var result map[string]interface{} json.NewDecoder(resp.Body).Decode(&result) fmt.Println(resp.StatusCode, result)}import java.net.http.*;import java.net.URI;public class Main { public static void main(String[] args) throws Exception { HttpClient client = HttpClient.newHttpClient(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://api.captcha.fun/v2/response/550e8400-e29b-41d4-a716-446655440000")) .header("API_KEY", "CAPFUN-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") .header("Accept", "application/json") .GET() .build(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.statusCode() + " " + response.body()); }}using System.Net.Http;var client = new HttpClient();client.DefaultRequestHeaders.Add("API_KEY", "CAPFUN-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");client.DefaultRequestHeaders.Add("Accept", "application/json");var response = await client.GetAsync("https://api.captcha.fun/v2/response/550e8400-e29b-41d4-a716-446655440000");var result = await response.Content.ReadAsStringAsync();Console.WriteLine($"{(int)response.StatusCode} {result}");Response
{ "ready": true, "status": "SUCCESS", "success": true, "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "secUa": "\"Chromium\";v=\"X\", \"Not=A?Brand\";v=\"X\", \"Google Chrome\";v=\"X\"", "token": "03AGdBq25SiXT-pmSeBXjzScW-EiocHwwpwqJRCAI7Z..."}{ "message": "Invalid request ID"}
Captcha.fun