← Back to Blog
·5 min read·GateSolve Team

Solve CAPTCHAs in n8n Workflows (HTTP Request Node + GateSolve)

n8n workflows hit CAPTCHAs constantly — web scraping, form submission, API monitoring. Here's how to solve them automatically with GateSolve's API in an n8n HTTP Request node.

The Problem

You built an n8n workflow that scrapes product prices, monitors a competitor's site, or submits forms. It works for a day, then Cloudflare Turnstile blocks it. Your workflow breaks silently — the HTTP node returns HTML instead of data, and downstream nodes process garbage.

Most CAPTCHA solvers require prepaid balance, complex API integration, and manual token handling. n8n's HTTP Request node makes REST calls easy, but you need a solver API that fits the submit-and-poll pattern.

The Solution: GateSolve API + n8n HTTP Request

GateSolve's async API is a perfect fit for n8n. Submit a solve request, wait, poll for the result. Three HTTP Request nodes and you're done.

Step 1: Get a Free API Key

Send a POST request to sign up. 100 free solves, no credit card.

POST https://gatesolve.dev/api/waitlist
Content-Type: application/json

{
  "email": "your-email@example.com"
}

// Response includes your API key:
// { "apiKey": "gs_xxxxxxxx", "message": "Welcome!" }

Step 2: Submit a Solve Request (HTTP Request Node)

Add an HTTP Request node to your workflow. Configure it as POST to the solve endpoint with your API key in the Authorization header.

// n8n HTTP Request Node Configuration
Method: POST
URL: https://gatesolve.dev/api/solve

Headers:
  Authorization: Bearer gs_YOUR_API_KEY
  Content-Type: application/json

Body (JSON):
{
  "type": "cloudflare-turnstile",
  "siteKey": "0x4AAAAAAA...",
  "pageUrl": "https://target-site.com/page"
}

// Response:
// { "id": "abc123", "status": "pending", "poll": "https://gatesolve.dev/api/solve?id=abc123" }

Step 3: Wait + Poll (Wait Node + HTTP Request Node)

Add a Wait node (10 seconds), then another HTTP Request node to poll for the result.

// Wait Node: 10 seconds

// Then HTTP Request Node:
Method: GET
URL: https://gatesolve.dev/api/solve?id={{ $json.id }}

// Response when solved:
// {
//   "id": "abc123",
//   "status": "solved",
//   "token": "0.XXXXX...",
//   "solvedIn": "8.2s"
// }

Step 4: Use the Token in Your Workflow

Pass the solved token to your target site. For Cloudflare Turnstile, include it as cf-turnstile-response in your form submission or as a header in your API call.

// HTTP Request Node — submit form with solved token
Method: POST
URL: https://target-site.com/submit

Body (Form):
  cf-turnstile-response: {{ $json.token }}
  // ... other form fields

Alternative: Webhook Callback

If you don't want to poll, use GateSolve's webhook callback. Set up an n8n Webhook node as the trigger, then pass its URL as callbackUrl in the solve request.

// Solve request with webhook
POST https://gatesolve.dev/api/solve
{
  "type": "cloudflare-turnstile",
  "siteKey": "0x4AAAAAAA...",
  "pageUrl": "https://target-site.com",
  "callbackUrl": "https://your-n8n.com/webhook/captcha-solved"
}

// GateSolve POSTs the result to your webhook when solved:
// { "id": "abc123", "status": "solved", "token": "0.XXXXX..." }

Supported CAPTCHA Types

TypeValue for type fieldPrice
Cloudflare Turnstilecloudflare-turnstile$0.02/solve
reCAPTCHA v2recaptcha-v2$0.03/solve
reCAPTCHA v3recaptcha-v3$0.02/solve
hCaptchahcaptcha$0.03/solve

Tips for n8n Workflows

  • Use the IF node after polling to check status === "solved" vs status === "pending". Loop back to the Wait node if still pending.
  • Error handling: Add an Error Trigger workflow to alert you if solves fail consistently — this usually means the target site updated its CAPTCHA configuration.
  • Rate limiting: GateSolve handles up to 2 concurrent solves. If your workflow processes items in batches, add a short delay between solve requests.
  • Free tier: 100 solves free. For higher volume, use the MPP endpoint at /api/mpp/solve for pay-per-solve with USDC.

Why GateSolve for n8n?

  • REST-native: Works with n8n's HTTP Request node directly — no custom nodes or npm packages needed.
  • Async pattern: Submit + poll fits n8n's Wait/Loop workflow pattern naturally.
  • Webhook support: Callback URL eliminates polling for event-driven workflows.
  • Free tier: Test your workflow with 100 free solves before committing.
  • No vendor lock-in: Standard REST API — swap to any solver without changing your workflow structure.

Full API documentation →