serp·base API Documentation

API Documentation

One endpoint, 38 tools, one predictable JSON contract. Pay per request with USDC on Base via x402 — or top up a balance and use an API key.

Base URL https://api.serp-base.com

All requests go to POST /v1/query with a JSON body. The tool name selects the service.

Quickstart

Send a request without payment first. You will receive HTTP 402 with the price and payment details. Sign the payment, repeat the request with the X-PAYMENT header, and get your data.

curl -X POST https://api.serp-base.com/v1/query \
  -H "Content-Type: application/json" \
  -d '{"tool":"google_web","query":"best crm software","depth":10}'

Typical flow with x402:

POST /v1/query            ->  402 Payment Required
                               { price, network, payTo, asset }
POST /v1/query + X-PAYMENT ->  200 OK  { ok: true, tool, data }

If you prefer an API key, create a dashboard account, top up with USDC and send the key in the X-API-KEY header instead.

Authentication

Two ways to pay — pick either one:

MethodHeaderBest for
Per-request cryptoX-PAYMENTAgents, scripts, no signup
Balance + API keyX-API-KEYDashboards, teams, predictable spend

Requests without any payment receive 402 with the exact requirements.

Services — what each group does

Every service has a page with use cases, the full tool list for that group and a link to each tool's API reference. Start from the service if you know the job, or from the tool if you know the endpoint.

SERVICEWHAT IT IS FOR
Search11 search tools: Google, Yandex, images, maps, news, shopping, positions, Wordstat
Web ScrapingFetch and parse any page — plain HTTP or real stealth browser
Forms & ApplicationsRead a form, submit an application — no logins, no payments
Captcha Solving17 captcha types with a 100% accuracy mode
OCR & DocumentsText from images and PDFs, 100+ languages
Data by SchemaGive a URL and the fields you want — get validated JSON
Browser Fingerprints24 coherent fields from profiles that passed real sites
ScreenshotsFull page, viewport or element, custom width and zoom
ProxiesDedicated IPv4, IPv6 or MTproto by country and period

Not sure which one you need? See the price table on the main page — every tool with its price per 1,000 requests, all in one place.

All tools — detailed reference

Every tool has its own page with full parameters, flexible options, code samples and the response format. Pick one:

ToolPage
Search
google_webGoogle organic results →
yandex_webYandex organic results →
google_imagesGoogle images →
yandex_imagesYandex images →
newsNews →
shopShopping →
tipsSuggestions →
mapsMaps & local results →
positionsSite positions by keywords →
wordstat_freqWordstat: frequency →
wordstat_historyWordstat: history →
Scraping
parse_pageScraping: URL to data →
parse_page_proScraping with stealth →
parse_pagesScraping: whole catalog (up to 50 pages per call) →
form_actionForms: inspect (read-only), submit, submit with captcha →
screenshot_pageScreenshot a page →
Captcha
captcha_imageCaptcha: image to text →
captcha_recaptchaCaptcha: reCAPTCHA V2 →
captcha_recaptcha_v3Captcha: reCAPTCHA V3 →
captcha_hcaptchaCaptcha: hCaptcha →
captcha_turnstileCaptcha: Cloudflare Turnstile →
captcha_smartcaptchaCaptcha: Yandex SmartCaptcha →
captcha_geetestCaptcha: GeeTest →
captcha_datadome captcha_cloudflareCaptcha: DataDome →
captcha_funcaptchaCaptcha: FunCaptcha (Arkose) →
captcha_amazonCaptcha: Amazon WAF →
captcha_mtcaptchaCaptcha: MTCaptcha →
captcha_prosopoCaptcha: Prosopo Procaptcha →
captcha_lemineCaptcha: Lemin Cropped →
captcha_vkCaptcha: VK Captcha →
captcha_capyCaptcha: Capy Puzzle →
captcha_geetest_v4Captcha: GeeTest v4 →
OCR
ocr_documentOCR: text from document →
ocr_pdfOCR: PDF document →
Extraction
extract_schemaExtract data by schema →
fingerprintBrowser fingerprint →
Network
proxy_buyProxies — bring your own or buy IPv4 / IPv6 / MTproto →

Payment (x402)

Payments use the x402 protocol over USDC on Base. Gas is paid by the facilitator, so you only need USDC.

You are only charged when data is returned.

We run the work first and settle the payment afterwards. If a service fails to produce a result, nothing is charged on-chain.

To exercise the test network, send the header X-PAYMENT-NETWORK: base-sepolia to receive testnet requirements.

Response format

Every tool answers with the same envelope:

{
  "ok": true,
  "tool": "google_web",
  "paid_via": "x402",
  "network": "base",
  "data": { ... }
}

Search tools return a normalized structure:

{
  "found": 100,
  "count": 10,
  "related": ["related query", "..."],
  "results": [
    {
      "position": 1,
      "url": "https://example.com",
      "title": "Page title",
      "snippet": "Text excerpt from the page…",
      "breadcrumbs": "example.com › section",
      "content_type": "organic"
    }
  ]
}

Search results

11 tools covering Google, Yandex and their verticals. All share one normalized JSON shape.

ToolWhat it returns
google_webGoogle organic results
google_imagesGoogle Images
yandex_webYandex organic results
yandex_imagesYandex Images
mapsMaps / local results
newsNews results
shopShopping results
tipsRelated searches
positionsYour site's positions for a set of keywords
wordstat_freqKeyword frequency (Wordstat)
wordstat_historyKeyword history (Wordstat)

Common parameters:

FieldTypeDescription
querystringSearch query (required)
depthintHow many results to collect (default 10)
geoint / stringRegion code or name (e.g. 84 for New York, 1000000 for London)
devicestringdesktop · mobile · tablet
langstringResult language

Scraping & extraction

ToolWhat it doesPrice / 1,000
parse_pageFetch a URL, return readable text, HTML or links$2.00
parse_page_proSame, but rendered in a stealth browser (JS + anti-bot sites)$7.00
parse_pagesWalk a catalog’s pagination in one call — charged per page actually fetched$2.00
form_actionRead a page’s forms, submit an application, or submit and solve the captcha — no passwords or payments, ever$1.00 / $2.00
extract_schemaGive a URL and a schema — get validated JSON back$6.00

extract_schema example — you describe the fields, we return structure:

{
  "tool": "extract_schema",
  "url": "https://news.ycombinator.com",
  "schema": [
    {"name": "titles", "type": "list", "desc": "first 3 story titles"}
  ]
}
Browser rendering capacity

parse_page_pro runs on a limited pool of stealth browsers. For large volumes, throughput depends on your plan — talk to us about capacity before committing to a big batch job.

Captcha solving

17 captcha types, one contract. Image captchas take image; widget captchas take sitekey + url.

ToolTypeInput
captcha_imageClassic image captchaimage
captcha_recaptchareCAPTCHA v2sitekey, url
captcha_recaptcha_v3reCAPTCHA v3sitekey, url
captcha_hcaptchahCaptchasitekey, url
captcha_turnstileCloudflare Turnstilesitekey, url
captcha_cloudflareCloudflare Challengesitekey, url
captcha_smartcaptchaYandex SmartCaptchasitekey, url
captcha_geetestGeeTestgt, challenge, url
captcha_datadomeDataDomeurl, captcha_url
captcha_amazonAmazon WAFsitekey, iv, context
captcha_funcaptchaFunCaptcha (Arkose)sitekey, url
captcha_mtcaptchaMTCaptchasitekey, url
captcha_prosopoProsopo Procaptchasitekey, url
captcha_lemineLemin Croppedcaptcha_id, url
captcha_vkVK Captchasitekey, url
captcha_capyCapy Puzzlesitekey, url, api_server
captcha_geetest_v4GeeTest v4captcha_id, url

Example — solve an image captcha:

{
  "tool": "captcha_image",
  "image": "<base64 PNG or JPEG>"
}
// -> {"solution": "x4p9"}

OCR & documents

ToolInputPrice / 1,000
ocr_documentImage (base64 PNG/JPEG/WebP)$3.00
ocr_pdfPDF document, up to 10 pages$7.00

Multilingual by design — no language parameter needed. Cyrillic, Latin, CJK and Arabic are handled in the same call. PDF pages are returned with page markers.

{
  "tool": "ocr_document",
  "image": "<base64>",
  "prompt": "Extract all text"
}

Large PDFs: documents over 10 pages are handled asynchronously — submit the document, receive a job id, then poll for the result. Ask us to enable it for your account.

Browser fingerprints

Consistent fingerprints collected from real browser profiles — not synthetic templates. 24 coherent fields per fingerprint.

{ "tool": "fingerprint" }
// -> {"fingerprint": {"os": "...", "gpu_renderer": "...", ...}}

The 24 fields: OS and version · CPU cores · RAM · GPU vendor and renderer · screen resolution · viewport · colour depth · timezone · language · user agent · browser version · platform · device type · hardware concurrency · max touch points · connection (downlink, rtt, effective type) · media devices (audio in/out, video in) · fonts · canvas hash · WebGL hash · audio hash · do-not-track · storage quota.

Pass a profile id to collect a fresh fingerprint from a live browser instead:

{ "tool": "fingerprint", "profile": "<profile-id>" }

Screenshots

ToolWhat it doesPrice / 1,000
screenshot_pageFull-page or viewport screenshot of any URL, including protected ones$10.00

Optional fields: full (boolean), width, wait (ms before capture). Returns base64 PNG.

Pricing

Per 1,000 requests, in USD. No monthly fee, no minimum, no subscription.

ServiceToolPrice / 1,000
Search resultsgoogle_web, yandex_web, …$1.00
Page fetch & parseparse_page$2.00
OCR — imagesocr_document$3.00
Data by schemaextract_schema$6.00
Fingerprintsfingerprint$6.00
Screenshotsscreenshot_page$10.00
Browser rendering + anti-botparse_page_pro$7.00
Captcha solving 100% accuracy modecaptcha_*$7.00
Forms — read / submit / submit+captchaform_action$1.00 / $2.00
Proxy — dedicated IPv4 (per 30 days)proxy_buy$1.77
OCR — PDF (up to 10 pages)ocr_pdf$20.00

How charging works: one request = one unit. Tools that need several upstream calls (for example positions with a deep keyword set) return a requests field showing how many units were consumed.

Errors

HTTPMeaningWhat to do
400Bad request — missing or invalid fieldsCheck tool and required parameters
402Payment requiredSign the payment and repeat with X-PAYMENT
403Tool not availableCheck the tool name against the list above
429Too many requestsBack off and retry
502Upstream temporarily unavailableRetry in a few seconds — you were not charged

Error responses are always JSON: {"error": "human readable message"}.

Code examples

Python — requests + x402 client:

import requests

URL = "https://api.serp-base.com/v1/query"
payload = {"tool": "google_web", "query": "best crm", "depth": 10}

r = requests.post(URL, json=payload)
if r.status_code == 402:
    reqs = r.json()["accepts"][0]      # price, network, payTo
    # sign with your wallet, then:
    r = requests.post(URL, json=payload,
                      headers={"X-PAYMENT": signed_payment})

print(r.json()["data"])

JavaScript:

const r = await fetch("https://api.serp-base.com/v1/query", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ tool: "ocr_document", image: base64 })
});
const data = await r.json();

With an API key (dashboard account):

curl -X POST https://api.serp-base.com/v1/query \
  -H "Content-Type: application/json" \
  -H "X-API-KEY: your_key_here" \
  -d '{"tool":"parse_page","url":"https://example.com"}'

MCP & agents

Agent access over MCP is on the way. Your agent will connect to a single MCP server and discover every tool automatically — no wrapper code, payment settled in-band through x402.

Works with any MCP-capable client: Claude Code, Cursor, CrewAI, LangChain and others. Contact us if you want early access.

FAQ

Do I need an account to use the API?

No. Every tool works pay-per-request with USDC over x402 — no email, no signup. An account is only needed if you want a prepaid balance, API keys and a usage dashboard.

What happens if a request fails?

You are not charged. We execute the work first and settle the payment only after data is produced. A failed request costs you nothing.

How do I test without spending real money?

Use Base Sepolia. Send X-PAYMENT-NETWORK: base-sepolia, get free test USDC from the Circle faucet, and exercise the full flow — the protocol, headers and responses are identical.

Which captchas can you solve?

17 types, listed above — including reCAPTCHA v2/v3, hCaptcha, Cloudflare Turnstile and Challenge, Yandex SmartCaptcha, GeeTest, DataDome, Amazon WAF and VK.

Can I use it from an AI agent?

Yes — that is the primary use case. Agents call the API directly with x402, or connect over MCP once it is available.

Ready to start?

No signup for pay-per-request. Create an account if you want a balance dashboard.

Create account Browse services

Pay-per-request data APIs. Built for agents and developers.