captcha.funCaptcha.fun

Create Solve Request

Submit a captcha solving request to the queue


Endpoint

POST https://api.captcha.fun/v1/request

Request Headers

HeaderTypeRequiredDescription
API_KEYstringYesYour API key
Content-TypestringYesapplication/json
APP_IDstringNoOptional application identifier for tracking requests

Request Body

FieldTypeRequiredDescription
kindstringYesThe type of captcha to solve
urlstringYesThe URL where the captcha is located
siteKeystringYesThe reCAPTCHA site key
actionstringNoThe action parameter for reCAPTCHA v3
proxystringNoProxy to use for solving (required for proxy kinds)

Supported kind values

  • recap_v3 - reCAPTCHA v3
  • recap_v3_enterprise - reCAPTCHA v3 Enterprise
  • recap_v3_proxy - reCAPTCHA v3 with proxy
  • recap_v3_enterprise_proxy - reCAPTCHA v3 Enterprise with proxy

Response Fields

FieldTypeDescription
idstring (UUID)The unique identifier for the solve request
messagestringStatus message

Request Example

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://google.com",
    "siteKey": "6Lel38UnAAAAAMRwKj9qLH2Ws4Tf2uTDQCyfgR6b",
    "action": "login",
    "proxy": ""
  }'
import requests

response = requests.post(
    "https://api.captcha.fun/v1/request",
    headers={
        "API_KEY": "CAPFUN-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
        "Content-Type": "application/json",
        "Accept": "application/json"
    },
    json={
        "kind": "recap_v3_enterprise",
        "url": "https://google.com",
        "siteKey": "6Lel38UnAAAAAMRwKj9qLH2Ws4Tf2uTDQCyfgR6b",
        "action": "login",
        "proxy": ""
    }
)

print(response.status_code, response.json())
const response = await fetch("https://api.captcha.fun/v1/request", {
  method: "POST",
  headers: {
    "API_KEY": "CAPFUN-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    "Content-Type": "application/json",
    "Accept": "application/json"
  },
  body: JSON.stringify({
    kind: "recap_v3_enterprise",
    url: "https://google.com",
    siteKey: "6Lel38UnAAAAAMRwKj9qLH2Ws4Tf2uTDQCyfgR6b",
    action: "login",
    proxy: ""
  })
});

const data = await response.json();
console.log(response.status, data);
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    payload := map[string]string{
        "kind":    "recap_v3_enterprise",
        "url":     "https://google.com",
        "siteKey": "6Lel38UnAAAAAMRwKj9qLH2Ws4Tf2uTDQCyfgR6b",
        "action":  "login",
        "proxy":   "",
    }
    body, _ := json.Marshal(payload)

    req, _ := http.NewRequest(
        "POST",
        "https://api.captcha.fun/v1/request",
        bytes.NewBuffer(body),
    )
    req.Header.Set("API_KEY", "CAPFUN-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
    req.Header.Set("Content-Type", "application/json")
    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 {
        String json = """
            {
                "kind": "recap_v3_enterprise",
                "url": "https://google.com",
                "siteKey": "6Lel38UnAAAAAMRwKj9qLH2Ws4Tf2uTDQCyfgR6b",
                "action": "login",
                "proxy": ""
            }
            """;

        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create(
                "https://api.captcha.fun/v1/request"
            ))
            .header(
                "API_KEY",
                "CAPFUN-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
            )
            .header("Content-Type", "application/json")
            .header("Accept", "application/json")
            .POST(HttpRequest.BodyPublishers.ofString(json))
            .build();

        HttpResponse<String> response = client.send(
            request,
            HttpResponse.BodyHandlers.ofString()
        );
        System.out.println(response.statusCode() + " " + response.body());
    }
}
using System.Net.Http;
using System.Text;
using System.Text.Json;

var client = new HttpClient();
client.DefaultRequestHeaders.Add("API_KEY", "CAPFUN-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
client.DefaultRequestHeaders.Add("Accept", "application/json");

var payload = new {
    kind = "recap_v3_enterprise",
    url = "https://google.com",
    siteKey = "6Lel38UnAAAAAMRwKj9qLH2Ws4Tf2uTDQCyfgR6b",
    action = "login",
    proxy = ""
};

var content = new StringContent(JsonSerializer.Serialize(payload), Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://api.captcha.fun/v1/request", content);
var result = await response.Content.ReadAsStringAsync();

Console.WriteLine($"{(int)response.StatusCode} {result}");

Response

{"id": "550e8400-e29b-41d4-a716-446655440000","message": "Started Solving"}
{"message": "API_KEY Header Missing"}