{"openapi":"3.1.0","info":{"title":"Busker — x402 paid transform services","description":"Every POST route is paywalled with x402 (USDC on Base). Call once unpaid to receive a 402 challenge in the Payment-Required header, sign the EIP-3009 authorization, retry with X-Payment. Failed requests are never charged.","version":"0.15.0"},"servers":[{"url":"https://workbot1.oddsys.org"}],"paths":{"/transform":{"post":{"summary":"RemoteSight HTML→Markdown","description":"Convert raw HTML into clean markdown. Typically cuts page tokens by 80-85% before they hit an LLM context window. Price: $0.005 per call (x402 exact, USDC on eip155:8453).","tags":["html","markdown","extraction"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"html":{"type":"string","description":"Raw HTML document to convert to markdown."},"url":{"type":"string","description":"Optional source URL of the page; improves extraction."}},"required":["html"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success (payment settled).","content":{"application/json":{"example":{"title":"Example Domain","markdown":"# Example Domain\n\nThis domain is for use in documentation examples.","extracted":false,"meta":{"inputBytes":1256,"outputChars":68,"estInputTokens":314,"estOutputTokens":17}}}}},"402":{"description":"Payment required — challenge in the Payment-Required response header (base64 JSON)."}}}},"/pdf":{"post":{"summary":"RemoteSight PDF→Markdown","description":"Extract clean markdown text from a PDF (text-layer PDFs; no OCR). Turns a document an agent can't cheaply read into compact tokens. Price: $0.002 per call (x402 exact, USDC on eip155:8453).","tags":["pdf","markdown","extraction"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"pdfBase64":{"type":"string","description":"Base64-encoded PDF file (text-layer PDFs; no OCR)."}},"required":["pdfBase64"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success (payment settled).","content":{"application/json":{"example":{"markdown":"# Quarterly Report\n\nRevenue grew 12% year over year...","pages":4,"meta":{"inputBytes":84213,"processedPages":4,"outputChars":5120,"estInputTokens":21053,"estOutputTokens":1280}}}}},"402":{"description":"Payment required — challenge in the Payment-Required response header (base64 JSON)."}}}},"/ocr":{"post":{"summary":"RemoteSight PDF OCR","description":"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. Price: $0.01 per call (x402 exact, USDC on eip155:8453).","tags":["ocr","pdf","scanned"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"pdfBase64":{"type":"string","description":"Base64-encoded PDF file (scanned/image PDFs; machine-printed text, English)."},"maxPages":{"type":"number","description":"Pages to OCR from the start of the document (1-25, default 10)."}},"required":["pdfBase64"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success (payment settled).","content":{"application/json":{"example":{"markdown":"INVOICE\n\nAcme Supply Co.\n\nItem Qty Price\nWidgets 12 $48.00","pages":2,"meta":{"inputBytes":412876,"totalPages":2,"processedPages":2,"truncated":false,"method":"ocr","outputChars":1840,"estOutputTokens":460}}}}},"402":{"description":"Payment required — challenge in the Payment-Required response header (base64 JSON)."}}}},"/ocr-deep":{"post":{"summary":"Busker Deep OCR","description":"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. Price: $0.03 per call (x402 exact, USDC on eip155:8453).","tags":["ocr","pdf","scanned"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"pdfBase64":{"type":"string","description":"Base64-encoded PDF file (scanned/image PDFs; machine-printed text, English)."},"maxPages":{"type":"number","description":"Pages to OCR from the start of the document (1-100, default: all up to 100)."}},"required":["pdfBase64"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success (payment settled).","content":{"application/json":{"example":{"markdown":"ANNUAL REPORT\n\nChapter 1 — Operations\n\n...","pages":74,"meta":{"inputBytes":18412876,"totalPages":74,"processedPages":74,"truncated":false,"method":"ocr","outputChars":148200,"estOutputTokens":37050}}}}},"402":{"description":"Payment required — challenge in the Payment-Required response header (base64 JSON)."}}}},"/extract":{"post":{"summary":"RemoteSight Structured Extract","description":"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. Price: $0.002 per call (x402 exact, USDC on eip155:8453).","tags":["html","extraction","metadata"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"html":{"type":"string","description":"Raw HTML document to extract structure from."},"url":{"type":"string","description":"Optional source URL; resolves relative links/images."}},"required":["html"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success (payment settled).","content":{"application/json":{"example":{"title":"Understanding Widgets","byline":"Jane Doe","excerpt":"A practical guide to widgets.","siteName":"Example Blog","publishedTime":"2026-01-15T10:00:00Z","wordCount":850,"meta":{"og:type":"article","description":"A practical guide to widgets."},"jsonLd":[{"@type":"Article","headline":"Understanding Widgets"}],"links":[{"text":"docs","href":"https://example.com/docs"}],"images":[{"src":"https://example.com/hero.png","alt":"widget"}],"text":"Widgets are useful components..."}}}},"402":{"description":"Payment required — challenge in the Payment-Required response header (base64 JSON)."}}}},"/chunk":{"post":{"summary":"RemoteSight RAG Chunker","description":"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. Price: $0.005 per call (x402 exact, USDC on eip155:8453).","tags":["chunking","rag","text"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","description":"The document text to split into chunks."},"maxTokens":{"type":"number","description":"Target max tokens per chunk (32–8000, default 512)."},"overlapTokens":{"type":"number","description":"Trailing tokens overlapped into each chunk (default 0)."}},"required":["text"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success (payment settled).","content":{"application/json":{"example":{"chunks":[{"index":0,"text":"First chunk of the document...","estTokens":480,"chars":{"start":0,"end":1920},"overlapped":false},{"index":1,"text":"Second chunk...","estTokens":502,"chars":{"start":1920,"end":3930},"overlapped":false}],"meta":{"inputChars":3930,"estInputTokens":983,"totalChunks":2,"maxTokens":512,"overlapTokens":0}}}}},"402":{"description":"Payment required — challenge in the Payment-Required response header (base64 JSON)."}}}},"/convert":{"post":{"summary":"RemoteSight Format Convert","description":"Convert data between JSON, YAML, CSV, and XML. Deterministic format juggling done off-context, with edge cases handled. Price: $0.005 per call (x402 exact, USDC on eip155:8453).","tags":["convert","json","yaml"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"string","description":"The source document as text."},"from":{"type":"string","enum":["json","yaml","csv","xml"],"description":"Source format."},"to":{"type":"string","enum":["json","yaml","csv","xml"],"description":"Target format."}},"required":["data","from","to"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success (payment settled).","content":{"application/json":{"example":{"from":"csv","to":"json","result":"[\n  { \"name\": \"Ada\", \"role\": \"eng\" }\n]","meta":{"inputChars":22,"outputChars":40}}}}},"402":{"description":"Payment required — challenge in the Payment-Required response header (base64 JSON)."}}}},"/qr":{"post":{"summary":"Busker QR Generator","description":"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. Price: $0.005 per call (x402 exact, USDC on eip155:8453).","tags":["qr","qrcode","image"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","description":"Content to encode (max 2953 bytes utf8 — QR capacity)."},"scale":{"type":"number","description":"Pixels per QR module, PNG only (1-20, default 4)."},"margin":{"type":"number","description":"Quiet-zone width in modules (0-16, default 2)."},"dark":{"type":"string","description":"Hex colour of the data modules (default #000000)."},"light":{"type":"string","description":"Hex colour of the background (default #ffffff)."},"format":{"type":"string","enum":["png","svg"],"description":"Output format (default png)."},"delivery":{"type":"string","enum":["inline","url"],"description":"inline (default) = data in the response body; url = a short-lived download link (expires after ~15 min or a small download budget) — hand it to a user or client script instead of carrying the bytes."},"downloads":{"type":"number","description":"url delivery only: download budget before the link dies (1-3, default 2)."}},"required":["text"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success (payment settled).","content":{"application/json":{"example":{"format":"png","dataBase64":"iVBORw0KGgoAAAANSUhEUgAA…","meta":{"inputBytes":23,"modules":25,"scale":4,"margin":2,"dark":"#000000","light":"#ffffff","errorCorrection":"M","outputBytes":412,"pixels":116}}}}},"402":{"description":"Payment required — challenge in the Payment-Required response header (base64 JSON)."}}}},"/image":{"post":{"summary":"Busker Image Tools","description":"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. Price: $0.002 per call (x402 exact, USDC on eip155:8453).","tags":["image","resize","crop"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"imageBase64":{"type":"string","description":"Base64-encoded source image (png/jpeg/webp/gif/tiff)."},"crop":{"type":"object","description":"Crop region in source pixels; applied first.","properties":{"left":{"type":"number"},"top":{"type":"number"},"width":{"type":"number"},"height":{"type":"number"}},"required":["width","height"]},"resize":{"type":"object","description":"Target size; fit: cover|contain|fill|inside|outside (default inside).","properties":{"width":{"type":"number"},"height":{"type":"number"},"fit":{"type":"string"}}},"greyscale":{"type":"boolean","description":"Convert to greyscale."},"format":{"type":"string","enum":["png","jpeg","webp"],"description":"Output encoding (default: source format)."},"quality":{"type":"number","description":"JPEG/WebP quality 1-100 (default 80)."},"delivery":{"type":"string","enum":["inline","url"],"description":"inline (default) = base64 in the response body; url = a short-lived download link (expires after ~15 min or a small download budget) — hand it to a user or client script instead of carrying the bytes."},"downloads":{"type":"number","description":"url delivery only: download budget before the link dies (1-3, default 2)."}},"required":["imageBase64"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success (payment settled).","content":{"application/json":{"example":{"dataBase64":"/9j/4AAQSkZJRg…","format":"jpeg","meta":{"inputBytes":482113,"inputFormat":"png","inputWidth":1920,"inputHeight":1080,"width":512,"height":288,"outputBytes":18342,"operations":["resize","encode:jpeg"]}}}}},"402":{"description":"Payment required — challenge in the Payment-Required response header (base64 JSON)."}}}},"/detect":{"post":{"summary":"Busker Object Detection","description":"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. Price: $0.01 per call (x402 exact, USDC on eip155:8453).","tags":["detection","vision","image"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"imageBase64":{"type":"string","description":"Base64-encoded image (png/jpeg/webp)."},"classes":{"type":"array","items":{"type":"string"},"description":"Restrict results to these COCO class names (e.g. person, dog, cat, horse, car, bus, truck, motorcycle, bicycle). Omit for all 80 classes."},"minConfidence":{"type":"number","description":"Score threshold 0.05-0.95 (default 0.4)."}},"required":["imageBase64"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success (payment settled).","content":{"application/json":{"example":{"counts":{"person":2,"dog":1},"objects":[{"class":"person","confidence":0.87,"box":{"x":412,"y":108,"width":143,"height":388}},{"class":"person","confidence":0.81,"box":{"x":655,"y":121,"width":130,"height":371}},{"class":"dog","confidence":0.63,"box":{"x":220,"y":340,"width":180,"height":160}}],"meta":{"width":1920,"height":1080,"inputBytes":348211,"model":"yolox-nano","classesFilter":null,"minConfidence":0.4,"inferenceMs":1450}}}}},"402":{"description":"Payment required — challenge in the Payment-Required response header (base64 JSON)."}}}},"/embed":{"post":{"summary":"Busker Embeddings","description":"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. Price: $0.002 per call (x402 exact, USDC on eip155:8453).","tags":["embeddings","vector","rag"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"texts":{"type":"array","items":{"type":"string"},"description":"1-96 texts to embed (each truncated at 256 tokens)."},"text":{"type":"string","description":"Convenience: a single text instead of the texts array."}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success (payment settled).","content":{"application/json":{"example":{"embeddings":[[0.021,-0.043,0.118,"…381 more"]],"meta":{"model":"all-minilm-l6-v2","dimensions":384,"count":1,"totalTokens":9,"normalized":true,"inferenceMs":34}}}}},"402":{"description":"Payment required — challenge in the Payment-Required response header (base64 JSON)."}}}},"/rerank":{"post":{"summary":"Busker Reranker","description":"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. Price: $0.002 per call (x402 exact, USDC on eip155:8453).","tags":["rerank","reranking","rag"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","description":"The search query to rank against."},"texts":{"type":"array","items":{"type":"string"},"description":"1-64 candidate texts to rerank (each pair truncated at 256 tokens)."},"topK":{"type":"integer","description":"Return only the best K results (default: all, ranked)."},"returnTexts":{"type":"boolean","description":"Include the text of each result (default false: indices only)."}},"required":["query","texts"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success (payment settled).","content":{"application/json":{"example":{"results":[{"index":3,"score":0.982},{"index":0,"score":0.417}],"meta":{"model":"ms-marco-minilm-l6-v2","count":5,"topK":2,"totalTokens":512,"inferenceMs":180}}}}},"402":{"description":"Payment required — challenge in the Payment-Required response header (base64 JSON)."}}}},"/fetch":{"post":{"summary":"Busker Fetch & Clean","description":"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. Price: $0.005 per call (x402 exact, USDC on eip155:8453).","tags":["fetch","scraping","url"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Public http/https URL of the page to fetch. May also be passed as the ?url= query parameter with an empty body."},"format":{"type":"string","enum":["markdown","extract"],"description":"markdown (default) = clean prose; extract = structured JSON (title, byline, meta, JSON-LD, links)."}},"required":["url"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success (payment settled).","content":{"application/json":{"example":{"title":"Example Domain","markdown":"# Example Domain\n\nThis domain is for use in documentation examples.","extracted":false,"source":{"url":"https://example.com/","httpStatus":200,"bytes":1256},"meta":{"inputBytes":1256,"outputChars":68,"estInputTokens":314,"estOutputTokens":17}}}}},"402":{"description":"Payment required — challenge in the Payment-Required response header (base64 JSON)."}}}},"/fx":{"post":{"summary":"Busker FX Rates","description":"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. Price: $0.001 per call (x402 exact, USDC on eip155:8453).","tags":["fx","forex","exchange-rates"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"ALL fields optional — an empty (or absent) body returns all ~30 rates vs EUR.","properties":{"base":{"type":"string","description":"ISO 4217 base currency (default EUR)."},"symbols":{"type":"array","items":{"type":"string"},"maxItems":50,"description":"Target currency codes (default: all ~30)."},"amount":{"type":"number","description":"Optional amount to convert at each rate."}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success (payment settled).","content":{"application/json":{"example":{"base":"USD","date":"2026-08-14","amount":100,"rates":{"EUR":{"rate":0.86452,"converted":86.452},"GBP":{"rate":0.7441,"converted":74.41}},"source":"European Central Bank reference rates (attribution required if redistributed)"}}}},"402":{"description":"Payment required — challenge in the Payment-Required response header (base64 JSON)."}}}},"/phone":{"post":{"summary":"Busker Phone Validator","description":"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. Price: $0.002 per call (x402 exact, USDC on eip155:8453).","tags":["phone","validation","e164"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"One phone number (E.164 or national with region)."},"numbers":{"type":"array","items":{"type":"string"},"maxItems":100,"description":"Batch of numbers (alternative to number)."},"region":{"type":"string","description":"2-letter default region for national-format input (e.g. US)."}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success (payment settled).","content":{"application/json":{"example":{"result":{"input":"+14155552671","valid":true,"possible":true,"e164":"+14155552671","international":"+1 415-555-2671","national":"(415) 555-2671","countryCode":1,"region":"US","type":"fixed_line_or_mobile"}}}}},"402":{"description":"Payment required — challenge in the Payment-Required response header (base64 JSON)."}}}},"/decode-tx":{"post":{"summary":"Busker Tx Decoder","description":"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. Price: $0.005 per call (x402 exact, USDC on eip155:8453).","tags":["evm","base","calldata"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"string","description":"0x-prefixed EVM calldata to decode (offline)."},"txHash":{"type":"string","description":"0x-prefixed Base-mainnet transaction hash — fetches, decodes, and lists ERC-20/USDC transfer events (x402 receipt verification)."}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success (payment settled).","content":{"application/json":{"example":{"mode":"calldata","selector":"0xa9059cbb","decoded":{"function":"transfer(address,uint256)","args":{"to":"0x15459498e1191d8787c83177809bd54022fA18c4","amount":"1000"}},"candidateSignatures":["transfer(address,uint256)"]}}}},"402":{"description":"Payment required — challenge in the Payment-Required response header (base64 JSON)."}}}},"/screen":{"post":{"summary":"Busker Sanctions Screen","description":"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. Price: $0.02 per call (x402 exact, USDC on eip155:8453).","tags":["sanctions","ofac","sdn"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"One name (person, company, vessel) to screen."},"names":{"type":"array","items":{"type":"string"},"maxItems":50,"description":"Batch of names (alternative to name)."},"threshold":{"type":"number","description":"Match score cutoff 0.5-1 (default 0.85)."},"limit":{"type":"integer","description":"Max matches per name 1-50 (default 10)."}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success (payment settled).","content":{"application/json":{"example":{"query":"Banco Nacional de Cuba","matches":[{"uid":306,"name":"BANCO NACIONAL DE CUBA","matchedName":"BANCO NACIONAL DE CUBA","score":1,"type":"entity","programs":["CUBA"]}],"count":1,"list":{"source":"US OFAC Specially Designated Nationals (SDN) — public domain","coverage":"OFAC SDN only; NOT a full global sanctions/PEP screen","entries":18500,"updated":"2026-08-07"}}}}},"402":{"description":"Payment required — challenge in the Payment-Required response header (base64 JSON)."}}}},"/verify-sig":{"post":{"summary":"Busker Signature Verifier","description":"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. Price: $0.002 per call (x402 exact, USDC on eip155:8453).","tags":["signature","eip191","eip712"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Exactly one of: message (EIP-191), typedData (EIP-712), authorization (EIP-3009 / x402 exact-EVM), paymentHeader (raw base64 Payment-Signature or X-Payment header). signature is required except with paymentHeader.","properties":{"message":{"type":"string","description":"Plain message that was signed with personal_sign (EIP-191)."},"typedData":{"type":"object","description":"EIP-712 payload { domain, types, primaryType, message } exactly as signed."},"authorization":{"type":"object","description":"EIP-3009 TransferWithAuthorization fields { from, to, value, validAfter, validBefore, nonce } (the x402 payload.authorization object)."},"paymentHeader":{"type":"string","description":"Raw base64 value of an x402 Payment-Signature / X-Payment header; decoded and verified in one step."},"signature":{"type":"string","description":"0x-prefixed 65-byte signature."},"address":{"type":"string","description":"Expected signer; when given the response carries a matches boolean."},"network":{"type":"string","description":"CAIP-2 network for authorization mode (default eip155:8453 = USDC on Base)."},"domain":{"type":"object","description":"Explicit EIP-712 domain { name, version, chainId, verifyingContract } for a non-USDC token."}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success (payment settled).","content":{"application/json":{"example":{"mode":"eip191","messageHash":"0x0c9b1f4d5f2b6e7a4d3c2b1a0f9e8d7c6b5a4f3e2d1c0b9a8f7e6d5c4b3a2f1e","signer":"0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf","valid":true,"address":"0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf","matches":true}}}},"402":{"description":"Payment required — challenge in the Payment-Required response header (base64 JSON)."}}}},"/iban":{"post":{"summary":"Busker IBAN/BIC Validator","description":"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. Price: $0.002 per call (x402 exact, USDC on eip155:8453).","tags":["iban","bic","swift"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"iban":{"type":"string","description":"One IBAN (spaces allowed)."},"ibans":{"type":"array","items":{"type":"string"},"maxItems":100,"description":"Batch of IBANs."},"bic":{"type":"string","description":"One BIC/SWIFT code (8 or 11 chars)."},"bics":{"type":"array","items":{"type":"string"},"maxItems":100,"description":"Batch of BICs."}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success (payment settled).","content":{"application/json":{"example":{"iban":{"input":"GB82 WEST 1234 5698 7654 32","iban":"GB82WEST12345698765432","valid":true,"errors":[],"countryCode":"GB","formatted":"GB82 WEST 1234 5698 7654 32","bban":"WEST12345698765432","bankIdentifier":"WEST","branchIdentifier":"123456","accountNumber":"98765432","sepa":true,"inRegistry":true,"length":22},"source":"ibantools registry (IBAN registry + SEPA membership); format and checksum validation only — does not prove the account exists"}}}},"402":{"description":"Payment required — challenge in the Payment-Required response header (base64 JSON)."}}}},"/holidays":{"post":{"summary":"Busker Holidays & Business Days","description":"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. Price: $0.002 per call (x402 exact, USDC on eip155:8453).","tags":["holidays","business-days","calendar"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"country":{"type":"string","description":"2-letter ISO country code (required)."},"state":{"type":"string","description":"Subdivision code (e.g. CA for US-California, NSW for AU)."},"region":{"type":"string","description":"Sub-subdivision code where the ruleset has one."},"year":{"type":"integer","description":"List all holidays in this year (default: current year) when no date/from is given."},"date":{"type":"string","description":"YYYY-MM-DD — is this date a holiday / business day, and the next business day."},"from":{"type":"string","description":"YYYY-MM-DD start date for days/to modes."},"days":{"type":"integer","description":"Add this many business days to from (negative to subtract)."},"to":{"type":"string","description":"YYYY-MM-DD — count business days in [from, to] and list holidays inside."},"types":{"type":"array","items":{"type":"string","enum":["public","bank","school","optional","observance"]},"description":"Holiday types that block a business day (default [public])."},"weekend":{"type":"array","items":{"type":"integer"},"description":"Weekend weekdays 0=Sunday…6=Saturday (default [0,6])."}},"required":["country"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success (payment settled).","content":{"application/json":{"example":{"from":"2026-12-24","days":3,"result":"2026-12-30","weekday":"Wednesday","skipped":{"weekendDays":2,"holidays":[{"date":"2026-12-25","name":"Christmas Day"}]},"calendar":{"country":"US","countryName":"United States of America","types":["public"],"weekend":["Sunday","Saturday"],"source":"date-holidays ruleset (data CC-BY-3.0, attribution required if redistributed)"}}}}},"402":{"description":"Payment required — challenge in the Payment-Required response header (base64 JSON)."}}}},"/tz":{"post":{"summary":"Busker Time Zones","description":"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. Price: $0.001 per call (x402 exact, USDC on eip155:8453).","tags":["timezone","tz","iana"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"time":{"type":"string","description":"ISO 8601 time. Without an offset it is read as wall-clock time in from (default: now)."},"from":{"type":"string","description":"IANA zone the naive time is in (default UTC)."},"to":{"type":["string","array"],"items":{"type":"string"},"description":"Target zone or zones (≤50)."},"zones":{"type":"array","items":{"type":"string"},"description":"Alias of to."},"overlap":{"type":"object","description":"{ zones: [...], date?: YYYY-MM-DD, hours?: [9,17] } — shared business-hours window across zones."},"list":{"type":"boolean","description":"true → return all supported IANA zone ids."}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success (payment settled).","content":{"application/json":{"example":{"instant":"2026-09-17T12:00:00.000Z","unix":1789646400,"input":{"time":"2026-09-17T14:00","interpretedIn":"Europe/Berlin"},"from":{"zone":"Europe/Berlin","local":"2026-09-17T14:00:00","offset":"+02:00","offsetMinutes":120,"abbreviation":"GMT+2","weekday":"Thu","isDST":true,"observesDST":true},"results":[{"zone":"America/New_York","local":"2026-09-17T08:00:00","offset":"-04:00","offsetMinutes":-240,"abbreviation":"EDT","weekday":"Thu","isDST":true,"observesDST":true},{"zone":"Asia/Tokyo","local":"2026-09-17T21:00:00","offset":"+09:00","offsetMinutes":540,"abbreviation":"GMT+9","weekday":"Thu","isDST":false,"observesDST":false}]}}}},"402":{"description":"Payment required — challenge in the Payment-Required response header (base64 JSON)."}}}},"/validate":{"post":{"summary":"Busker JSON Schema Validator","description":"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. Price: $0.002 per call (x402 exact, USDC on eip155:8453).","tags":["json-schema","validation","structured-output"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"schema":{"type":"object","description":"JSON Schema (draft-07 default; $schema may select 2019-09 or 2020-12). Remote $ref is rejected."},"data":{"description":"The instance to validate (any JSON value)."},"dataText":{"type":"string","description":"The instance as a JSON string (parsed first; parse errors are reported as a violation)."},"items":{"type":"array","maxItems":100,"description":"Validate many instances against the one schema."}},"required":["schema"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success (payment settled).","content":{"application/json":{"example":{"draft":"draft-07","valid":true,"errors":[]}}}},"402":{"description":"Payment required — challenge in the Payment-Required response header (base64 JSON)."}}}},"/tokens":{"post":{"summary":"Busker Token Counter","description":"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. Price: $0.001 per call (x402 exact, USDC on eip155:8453).","tags":["tokens","tiktoken","token-count"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","description":"Text to count."},"texts":{"type":"array","items":{"type":"string"},"maxItems":100,"description":"Batch of texts."},"encoding":{"type":"string","enum":["o200k_base","cl100k_base"],"description":"BPE encoding (default o200k_base)."},"truncate":{"type":"integer","description":"Token budget — when exceeded the response includes the text cut to this many tokens."}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success (payment settled).","content":{"application/json":{"example":{"encoding":"o200k_base","models":"gpt-4o, gpt-4.1, gpt-5 family, o-series","tokens":10,"chars":44}}}},"402":{"description":"Payment required — challenge in the Payment-Required response header (base64 JSON)."}}}},"/lang":{"post":{"summary":"Busker Language ID","description":"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. Price: $0.001 per call (x402 exact, USDC on eip155:8453).","tags":["language","language-detection","nlp"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","description":"Text to identify (≥10 characters)."},"texts":{"type":"array","items":{"type":"string"},"maxItems":100,"description":"Batch of texts."},"only":{"type":"array","items":{"type":"string"},"description":"Restrict to these ISO 639-3 codes (e.g. [\"eng\",\"deu\",\"fra\"])."},"top":{"type":"integer","description":"Number of ranked candidates to return (1-10, default 3)."}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success (payment settled).","content":{"application/json":{"example":{"language":{"iso6393":"deu","iso6391":"de","name":"German"},"confidence":0.61,"candidates":[{"iso6393":"deu","iso6391":"de","name":"German","score":1},{"iso6393":"nds","iso6391":null,"name":"Low German","score":0.39}],"chars":54,"model":"franc trigram model (ISO 639-3 codes)"}}}},"402":{"description":"Payment required — challenge in the Payment-Required response header (base64 JSON)."}}}},"/suggest":{"post":{"summary":"Suggestion box (free)","description":"Feature-request inbox: didn't find the capability you need? Tell us and steer which paid routes get built next. No payment required.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"want":{"type":"string","maxLength":500,"description":"What capability was missing."},"detail":{"type":"string","maxLength":1500,"description":"Input/output shape, use case."},"priceWilling":{"type":"string","maxLength":32,"description":"What you would pay per call, e.g. \"$0.005\"."},"contact":{"type":"string","maxLength":200,"description":"Optional way to notify you when it ships."}},"required":["want"],"additionalProperties":false}}}},"responses":{"202":{"description":"Accepted.","content":{"application/json":{"example":{"accepted":true}}}},"400":{"description":"Schema failure — response carries a help object with the expected input."},"413":{"description":"Body over 2048 bytes."},"429":{"description":"Rate-limited (per-IP). Response carries retryAfterSeconds."}}}},"/health":{"get":{"summary":"Liveness probe (free)","responses":{"200":{"description":"ok"}}}}}}