Busker

Stateless pay-per-call transforms for AI agents — USDC on Base via x402. No account, no API key, no subscription.

RoutePriceWhat it does
POST /transform$0.005Convert raw HTML into clean markdown.
POST /pdf$0.002Extract clean markdown text from a PDF (text-layer PDFs; no OCR).
POST /ocr$0.01OCR a scanned PDF into clean text (Tesseract, English, machine-printed documents).
POST /ocr-deep$0.03High-page-count OCR: scanned PDF into clean text (Tesseract, English, machine-printed documents), up to 100 pages per call — four times the /ocr cap.
POST /extract$0.002Extract structured JSON from a web page: title, byline, publish date, Open Graph/meta tags, embedded JSON-LD (schema.org), links, and images.
POST /chunk$0.005Split a document into token-bounded chunks at natural boundaries (paragraphs/sentences), with optional overlap.
POST /convert$0.005Convert data between JSON, YAML, CSV, and XML.
POST /qr$0.005Generate a QR code from text as PNG (base64) or SVG.
POST /image$0.002Modify an image in one call: crop, resize, convert to greyscale, and re-encode (PNG/JPEG/WebP) — applied in that order, any combination.
POST /detect$0.01Detect and locate objects in an image (YOLOX-nano, COCO classes): people, pets (dog/cat/horse), vehicles, and 70+ more.
POST /embed$0.002Generate sentence embeddings (all-MiniLM-L6-v2, 384-dim, mean-pooled + L2-normalized) for up to 96 texts per call.
POST /rerank$0.002Rerank candidate texts against a query with a cross-encoder (ms-marco-MiniLM-L-6-v2): joint query+document scoring, much sharper than cosine similarity over embeddings.
POST /fetch$0.005Fetch a public web page and return clean markdown (or structured JSON) — URL in, agent-ready content out, typically 80-85% fewer tokens than raw HTML.
POST /fx$0.001Live foreign-exchange reference rates (European Central Bank daily fixes, ~30 major currencies): any cross-rate from any base, optional amount conversion.
POST /phone$0.002Validate and normalize phone numbers (Google libphonenumber): validity, E.164/international/national formats, country, region, and line type (mobile/fixed/VoIP).
POST /decode-tx$0.005Decode EVM calldata or a Base-mainnet transaction into human-readable form: function selector, matched signature, named args, plus ERC-20/USDC transfer events from the receipt — verify an x402 settlement receipt (tx hash in, payer/payee/amount out) in one call..
POST /screen$0.02Fuzzy sanctions screening against the US OFAC SDN list (public-domain source, refreshed daily): name in, scored matches with programs and aliases out.

One-line install for agents: the whole catalog is an MCP server on npm — add npx -y busker-mcp to Claude Desktop/Code, Cursor, or any MCP host (busker-mcp). Building with a framework? Tool wrappers exist for the Vercel AI SDK and LangChain — see the repo's integrations/.

Every route answers unpaid requests with an HTTP 402 challenge carrying the price and a signable payment requirement. Pay with any x402 client, e.g.:

import { wrapFetchWithPayment, x402Client } from "@x402/fetch";
// one line of setup, then fetch() as normal — the 402 is paid transparently
const res = await payFetch("https://workbot1.oddsys.org/transform",
  { method: "POST", headers: { "Content-Type": "text/html" }, body: html });

Didn't find the capability you need? Tell us — free: POST /suggest {"want": "..."}. Suggestions steer which routes get built next.

Failed requests are never charged. Machine-readable discovery: /.well-known/x402 · /.well-known/agent.json · /openapi.json · /llms.txt

GET any paid route for its usage docs. Docs & source: project wiki.