Stateless pay-per-call transforms for AI agents — USDC on Base via x402. No account, no API key, no subscription.
| Route | Price | What it does |
|---|---|---|
POST /transform | $0.005 | Convert raw HTML into clean markdown. |
POST /pdf | $0.002 | Extract clean markdown text from a PDF (text-layer PDFs; no OCR). |
POST /ocr | $0.01 | OCR a scanned PDF into clean text (Tesseract, English, machine-printed documents). |
POST /ocr-deep | $0.03 | High-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.002 | Extract 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.005 | Split a document into token-bounded chunks at natural boundaries (paragraphs/sentences), with optional overlap. |
POST /convert | $0.005 | Convert data between JSON, YAML, CSV, and XML. |
POST /qr | $0.005 | Generate a QR code from text as PNG (base64) or SVG. |
POST /image | $0.002 | Modify 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.01 | Detect and locate objects in an image (YOLOX-nano, COCO classes): people, pets (dog/cat/horse), vehicles, and 70+ more. |
POST /embed | $0.002 | Generate sentence embeddings (all-MiniLM-L6-v2, 384-dim, mean-pooled + L2-normalized) for up to 96 texts per call. |
POST /rerank | $0.002 | Rerank 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.005 | Fetch 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.001 | Live foreign-exchange reference rates (European Central Bank daily fixes, ~30 major currencies): any cross-rate from any base, optional amount conversion. |
POST /phone | $0.002 | Validate and normalize phone numbers (Google libphonenumber): validity, E.164/international/national formats, country, region, and line type (mobile/fixed/VoIP). |
POST /decode-tx | $0.005 | Decode 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.02 | Fuzzy 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.