# Busker > Stateless, per-call paid transforms for AI agents. Pay per request with x402 > (USDC on Base mainnet, eip155:8453). No account, no API key, no subscription. ## How to call POST any route below. The first call returns HTTP 402 with a `Payment-Required` header (base64 JSON) describing the price. Sign the EIP-3009 authorization and retry with a `Payment-Signature` header (x402 V2; the V1 `X-Payment` spelling is also accepted) — libraries like @x402/fetch do this for you. Failed requests are never charged. Machine-readable: /.well-known/x402, /openapi.json ## Ready-made clients - MCP server (all routes as tools): `npx -y busker-mcp` — https://www.npmjs.com/package/busker-mcp - Vercel AI SDK tools: busker-ai-tools (integrations/vercel-ai in the repo) - LangChain toolkit (Python): busker_langchain.py (integrations/langchain-py in the repo) - Any x402 client works directly — @x402/fetch (JS), x402[requests] (Python) ## Services - [POST /transform](https://workbot1.oddsys.org/transform) ($0.005): Convert raw HTML into clean markdown. Typically cuts page tokens by 80-85% before they hit an LLM context window. - [POST /pdf](https://workbot1.oddsys.org/pdf) ($0.002): Extract clean markdown text from a PDF (text-layer PDFs; no OCR). Turns a document an agent can't cheaply read into compact tokens. - [POST /ocr](https://workbot1.oddsys.org/ocr) ($0.01): OCR a scanned PDF into clean text (Tesseract, English, machine-printed documents). Up to 25 pages per call. PDFs that turn out to have a text layer are extracted the fast way at the same price. - [POST /ocr-deep](https://workbot1.oddsys.org/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. Runs under a 240s wall-clock budget; slower documents return the completed pages with truncatedReason "time-budget". Text-layer PDFs are extracted the fast way at the same price. - [POST /extract](https://workbot1.oddsys.org/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. Deterministic, no LLM. - [POST /chunk](https://workbot1.oddsys.org/chunk) ($0.005): Split a document into token-bounded chunks at natural boundaries (paragraphs/sentences), with optional overlap. Ready-to-embed pieces for RAG, no tokens spent on the splitting logic. - [POST /convert](https://workbot1.oddsys.org/convert) ($0.005): Convert data between JSON, YAML, CSV, and XML. Deterministic format juggling done off-context, with edge cases handled. - [POST /qr](https://workbot1.oddsys.org/qr) ($0.005): Generate a QR code from text as PNG (base64) or SVG. Custom module size, quiet-zone margin, and hex colours. Deterministic, capacity-capped at 2953 bytes. Set delivery to "url" to receive a short-lived download link instead of inline data. - [POST /image](https://workbot1.oddsys.org/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. Deterministic, no upscaling surprises. Set delivery to "url" to receive a short-lived download link instead of inline base64. - [POST /detect](https://workbot1.oddsys.org/detect) ($0.01): Detect and locate objects in an image (YOLOX-nano, COCO classes): people, pets (dog/cat/horse), vehicles, and 70+ more. Returns per-class counts and pixel bounding boxes. Detection only — no identification. Best on clear, medium-to-large objects. - [POST /embed](https://workbot1.oddsys.org/embed) ($0.002): Generate sentence embeddings (all-MiniLM-L6-v2, 384-dim, mean-pooled + L2-normalized) for up to 96 texts per call. Drop-in compatible with any all-MiniLM-L6-v2 index. Pairs with /chunk for a complete RAG pipeline. - [POST /rerank](https://workbot1.oddsys.org/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. Returns ranked indices with 0-1 relevance scores. Up to 64 texts per call. Pairs with /embed for a recall-then-precision RAG pipeline. - [POST /fetch](https://workbot1.oddsys.org/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. Handles redirects and compression. - [POST /fx](https://workbot1.oddsys.org/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. Refreshed daily; response carries the rate date. - [POST /phone](https://workbot1.oddsys.org/phone) ($0.002): Validate and normalize phone numbers (Google libphonenumber): validity, E.164/international/national formats, country, region, and line type (mobile/fixed/VoIP). Single number or batches up to 100. - [POST /decode-tx](https://workbot1.oddsys.org/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](https://workbot1.oddsys.org/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. Batches up to 50. Coverage is OFAC SDN only — stated in every response. - [POST /verify-sig](https://workbot1.oddsys.org/verify-sig) ($0.002): Verify EVM signatures offline: EIP-191 personal messages, EIP-712 typed data, and x402/EIP-3009 payment authorizations (paste a raw Payment-Signature header) — recovers the signing wallet, checks it against an expected address, and reports the authorization's amount, payee and validity window. No chain reads. - [POST /iban](https://workbot1.oddsys.org/iban) ($0.002): Validate and decompose IBANs (checksum, country format, IBAN registry, SEPA membership; bank/branch/account parts) and BIC/SWIFT codes. Batches up to 100. Format validation only — does not prove an account exists. - [POST /holidays](https://workbot1.oddsys.org/holidays) ($0.002): Public holidays for ~200 countries and their subdivisions, plus business-day arithmetic: is this date a holiday or business day, next business day, add N business days, count business days between dates. Configurable weekend and holiday types. - [POST /tz](https://workbot1.oddsys.org/tz) ($0.001): Time-zone conversion on the IANA database: convert a time between zones with offsets, abbreviations and DST flags, describe zones at an instant, or compute the shared business-hours window across several zones for meeting scheduling. - [POST /validate](https://workbot1.oddsys.org/validate) ($0.002): Validate JSON against a JSON Schema (draft-07, 2019-09, 2020-12, with string formats): every violation with path, keyword and message. One instance, a JSON string, or up to 100 instances against one schema. - [POST /tokens](https://workbot1.oddsys.org/tokens) ($0.001): Exact BPE token counts for OpenAI-family encodings (o200k_base for GPT-4o/4.1/5, cl100k_base for GPT-4/3.5/embeddings), single text or batches, with optional truncation to a token budget. Up to 512 KB per call. - [POST /lang](https://workbot1.oddsys.org/lang) ($0.001): Language identification for 180+ languages (every language with ≥1M speakers): ISO 639-3 code, ISO 639-1 code and English name, with ranked candidates and a confidence margin. Single text or batches up to 100. ## Free endpoints - [GET /](https://workbot1.oddsys.org/): service index - [GET /health](https://workbot1.oddsys.org/health): liveness - [GET /.well-known/x402](https://workbot1.oddsys.org/.well-known/x402): x402 resource manifest (also at /.well-known/x402.json) - [GET /.well-known/agent.json](https://workbot1.oddsys.org/.well-known/agent.json): A2A agent card (also /.well-known/agent-card.json) - [GET /.well-known/mcp.json](https://workbot1.oddsys.org/.well-known/mcp.json): MCP server descriptor (npx -y busker-mcp) - [GET /.well-known/api-catalog](https://workbot1.oddsys.org/.well-known/api-catalog): RFC 9727 API catalog - [GET /openapi.json](https://workbot1.oddsys.org/openapi.json): OpenAPI 3.1 spec - [POST /suggest](https://workbot1.oddsys.org/suggest): feature-request inbox — didn't find the capability you need? Tell us: {"want": "..."} (free)