Browser API · Web Data · Search · MCP
Hosted anti-detect Chromium. Drive it with Playwright, or call one endpoint for markdown, JSON or a screenshot. Search, captchas and MCP share one balance.
Hard stop at your limit. No surprise bills.
Playwright · CDP over WebSocket
import { chromium } from "playwright";
const browser = await chromium.connectOverCDP(
"wss://api.wayfern.com/ws?token=<LINK_TOKEN>&country=de",
);
const page = await browser.contexts()[0].newPage();
await page.goto("https://example.com"); Response example
One API surface
Every product sits behind the same wf_ token
scopes and draws from the same credits. Use one, or chain them in a single job.
Drive real anti-detect Chromium over CDP, with the client you already use.
import { chromium } from "playwright";
// Connect to a Wayfern browser by opening the CDP WebSocket with a link token.
// Sessions are created implicitly when this connection opens; there is no REST
// endpoint to "create" a session.
const browser = await chromium.connectOverCDP(
"wss://api.wayfern.com/ws?token=<LINK_TOKEN>",
);
const context = browser.contexts()[0];
const page = await context.newPage();
await page.goto("https://example.com");
console.log(await page.title());
await browser.close();Turn a page, a site map or a whole crawl into markdown, JSON or screenshots.
curl -X POST https://api.wayfern.com/api/v1/scrape \
-H "Authorization: Bearer wf_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/pricing",
"formats": ["markdown", "links"],
"onlyMainContent": true,
"maxAge": 3600000
}'Ranked live results from Google, Bing and DuckDuckGo in one call.
curl -X POST https://api.wayfern.com/api/search/v1 \
-H "Authorization: Bearer wf_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"text": "serverless browsers",
"engines": ["google"],
"limit": 10
}'Solve the challenge inside your own flow, and pay only when it is solved.
curl -X POST https://api.wayfern.com/api/captcha/solve \
-H "Authorization: Bearer wf_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"task": {
"type": "RecaptchaV2TaskProxyless",
"websiteURL": "https://example.com",
"websiteKey": "6Lc..."
}
}'Give an AI agent search, scraping, extraction and crawling as tools.
{
"mcpServers": {
"wayfern": {
"type": "http",
"url": "https://api.wayfern.com/mcp",
"headers": {
"Authorization": "Bearer ${WAYFERN_API_TOKEN}"
}
}
}
}Turn a public page into a JSON API.
A price tracker needs the same fields from a shop’s public search, again and again. Teach Wayfern the search page once with two queries and keep the name and price fields. Each new query is then one POST that returns rows as JSON. When the shop changes how its page loads results, a repair learns the request again and the old version stays for rollback.
curl -X POST 'https://api.wayfern.com/api/v1/operations/op_7Hx2mP/call' \
-H "Authorization: Bearer $WF_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"args": {
"query": "standing desk"
}
}'Under the hood
Six stations between your code and clean data. Pick a product and an exit, then follow the request out and back.
Six stations between your code and clean data. Hover or pick one to read what happens there.
A request leaves your code, the gateway checks the token and meters credits, an anti-detect browser loads the page through the exit you chose, and the result comes back: as Markdown or JSON for Scrape and Search, or as the live CDP socket for the Browser API.
Use cases
Each page shows the calls, the exit settings and the credit math for one job.
Pricing
Browser hours, scraped pages, searches and captcha solves all draw on the same monthly credits. Every rate is published, and every response says what it cost.
9,000 credits a month, one balance
$99 / month
Business: 9,000 credits a month, up to 1,125 browser-hours, 9,000 pages scraped, 4,500 searches, 9,000 captcha solves.
Each figure is the most you get if the whole month goes to that one thing. Mix them as you like.
Data handling
The short version of how Wayfern treats your credentials, your traffic and your money. Each point links to where it is spelled out.
A wf_ token is shown once and stored as a hash. Give it only the scopes it needs, an expiry if you like, and revoke it at any time.
At zero credits, work stops. Auto top-up stays off until you switch it on, and a session that cannot pay is closed.
Exit routing and fingerprints are applied on our side. Your client only ever holds a link token.
Web Data page captures are cached for 1 hour; screenshots, PDFs and crawl results are kept for 7 days; search results are cached for 5 minutes. Page content in a CDP session is not recorded unless you turn on Record sessions for a link; replays are kept 1 to 90 days by plan.
The terms say what Wayfern may be used for, and accounts that abuse it are closed.
Yes. Wayfern speaks the Chrome DevTools Protocol over WebSocket. Call chromium.connectOverCDP() or puppeteer.connect() with wss://api.wayfern.com/ws?token=<LINK_TOKEN>; the session starts when the socket opens, so there is no separate "create session" call. Any CDP client works.
One credit is $0.0125 and covers everything. An open page costs 8 credits an hour (minimum 60 seconds per page), a search 2 credits per provider results page, and a captcha solve 1 credit, charged only on success. On the Web Data API a scraped, extracted or crawled page is 1 credit, a screenshot 5, a font report 5, and a brand profile or styleguide 10; map costs 2 credits per 10 URLs found. Screenshot, PDF or JSON output adds 4 credits per page (once, however many you ask for) and an LLM summary adds 2. Developer includes 1,520 credits a month, Business includes 9,000 credits a month, Scale includes 46,000 credits a month.
Work stops: there is no overage. If you prefer, turn on auto top-up (off by default, monthly card plans only) to bill extra usage at $0.0125 per credit, or buy a credit pack. Plan credits are spent first and reset each period; pack credits are spent next and roll over.
No. Failed Web Data work is not billed, every Web Data response returns the exact credits it charged, and captcha solves are charged only on success. Search is billed per provider results page fetched, including cache hits.
Datacenter egress is free on every plan. Residential exits are optional and metered per byte at 320 credits per GB, from the same balance as everything else.
Yes. Add country, region, city or ISP to the WebSocket URL for a residential exit, and a session id to keep the same exit IP across a flow. On the Web Data API, proxy "auto" starts on a datacenter exit and retries on a residential one when the page blocks it; you can also force datacenter or residential and set a country.
Wayfern does not keep saved browser profiles for you. If a flow needs the same cookies or storage across runs, save them in your own code and set them again when you reconnect.
Yes, at https://api.wayfern.com/mcp over streamable HTTP, with a token that has the mcp scope. It exposes 11 tools (search_web, scrape_page, extract_data, map_site, crawl_site and more) at the same rates as the REST API, and every tool result reports the credits it charged.
Developer is $19 a month for 1,520 credits and 20 concurrent sessions, with a hard stop at zero. Need more? Talk to us about Enterprise volume.