{"name":"toolbelt402","tagline":"Deterministic utilities for AI agents. No account, no API key — pay per call with x402.","x402":{"version":2,"scheme":"exact","network":"eip155:8453","note":"Unauthenticated requests to paid routes return HTTP 402 with payment requirements. Pay with any x402 client (e.g. @x402/fetch)."},"endpoints":[{"method":"POST","url":"https://toolbelt402.tpoborne.workers.dev/json/repair","price":"$0.005","description":"Fix invalid, malformed, or truncated JSON — repairs trailing commas, single quotes, unquoted keys, and cut-off LLM output; returns the parsed object plus corrected JSON text. Deterministic, no LLM."},{"method":"POST","url":"https://toolbelt402.tpoborne.workers.dev/json/validate","price":"$0.002","description":"Validate JSON data against a JSON Schema (draft-07, 2019-09, 2020-12) — returns exact error locations, keywords, and messages for programmatic handling. Deterministic schema validation."},{"method":"POST","url":"https://toolbelt402.tpoborne.workers.dev/regex/test","price":"$0.002","description":"Test and debug a regular expression against up to 50 sample strings — real match results, capture groups, named groups, and pass/fail against expectations. Deterministic regex testing."},{"method":"GET","url":"https://toolbelt402.tpoborne.workers.dev/cron/next","price":"$0.001","description":"Parse and validate a cron expression — returns the next N run times as ISO timestamps in any IANA timezone. Cron schedule checker."},{"method":"GET","url":"https://toolbelt402.tpoborne.workers.dev/url/preflight","price":"$0.005","description":"Check a URL before fetching it: is it alive, final URL after redirects, HTTP status, content type, HTML title, and whether robots.txt allows your user-agent. Link checker and fetch preflight for agents."},{"method":"POST","url":"https://toolbelt402.tpoborne.workers.dev/html/to-markdown","price":"$0.005","description":"Convert HTML to clean Markdown — turn scraped web pages into LLM-ready text. Handles headings, lists, tables, links, code blocks. Deterministic, no LLM."},{"method":"POST","url":"https://toolbelt402.tpoborne.workers.dev/text/diff","price":"$0.002","description":"Compare two texts — unified diff patch plus added/removed/unchanged counts, by lines, words, or characters. Verify edits and detect changes deterministically."},{"method":"GET","url":"https://toolbelt402.tpoborne.workers.dev/time/math","price":"$0.001","description":"Date and time arithmetic done right: difference between two datetimes, add or subtract ISO-8601 durations, convert an instant into any IANA timezone with UTC offset and weekday."},{"method":"POST","url":"https://toolbelt402.tpoborne.workers.dev/jwt/decode","price":"$0.002","description":"Decode a JWT — header, payload, and timing analysis (issued/not-before/expiry as ISO timestamps, expired flag, seconds until expiry). Decode only; signature is NOT verified."},{"method":"POST","url":"https://toolbelt402.tpoborne.workers.dev/validate/checksum","price":"$0.002","description":"Validate identifiers by checksum: IBAN (mod-97), card numbers (Luhn), EAN-13, ISBN-10/13, UUID (RFC-4122), ULID. Batch up to 100 per call with per-item reasons."},{"method":"POST","url":"https://toolbelt402.tpoborne.workers.dev/csv/to-json","price":"$0.003","description":"Parse CSV into JSON rows — auto-detects the delimiter, handles quoted fields and headers, optional type coercion. Returns columns, row count, and per-row parse errors."},{"method":"POST","url":"https://toolbelt402.tpoborne.workers.dev/json/to-csv","price":"$0.002","description":"Convert an array of JSON objects into CSV — column union across rows or explicit column order; nested values are JSON-stringified into cells."},{"method":"POST","url":"https://toolbelt402.tpoborne.workers.dev/json/query","price":"$0.003","description":"Query JSON with a JMESPath expression — extract, filter, project, and reshape nested data with the AWS-standard query language. Deterministic JSON extraction."},{"method":"POST","url":"https://toolbelt402.tpoborne.workers.dev/json/diff","price":"$0.003","description":"Structural diff of two JSON documents — add/remove/change operations with JSON-Pointer paths, before/after values, and an identical flag. Compare API responses and configs."},{"method":"POST","url":"https://toolbelt402.tpoborne.workers.dev/xml/to-json","price":"$0.003","description":"Parse XML into JSON — validates first with line-numbered errors, preserves attributes, optional type coercion. Works for RSS feeds, sitemaps, and SOAP-ish payloads."},{"method":"POST","url":"https://toolbelt402.tpoborne.workers.dev/markdown/to-html","price":"$0.003","description":"Render Markdown to HTML — CommonMark with autolinking; raw HTML in the input is escaped, not executed. The inverse of /html/to-markdown."},{"method":"POST","url":"https://toolbelt402.tpoborne.workers.dev/hash","price":"$0.002","description":"Hash a string or bytes with multiple algorithms in one call: SHA-1, SHA-256, SHA-384, SHA-512, SHA3-256, and keccak-256 (Ethereum). Input as UTF-8, base64, or hex; hex digests out."},{"method":"POST","url":"https://toolbelt402.tpoborne.workers.dev/encode","price":"$0.001","description":"Encode or decode text: base64, base64url (padding handled), hex, URL percent-encoding, and HTML entities. The conversions agents most often get wrong."},{"method":"GET","url":"https://toolbelt402.tpoborne.workers.dev/url/parse","price":"$0.001","description":"Parse a URL into parts — host, path, query params as JSON, fragment, origin — or resolve a relative reference against a base URL correctly."},{"method":"GET","url":"https://toolbelt402.tpoborne.workers.dev/cron/describe","price":"$0.001","description":"Translate a cron expression into plain English (e.g. \"Every 15 minutes, weekdays\") — the companion to /cron/next."},{"method":"POST","url":"https://toolbelt402.tpoborne.workers.dev/web/extract","price":"$0.02","description":"Read a web page for me: fetches up to 5 URLs and returns the main article content as clean Markdown (nav, ads, and footers stripped) plus title, author, published date, canonical URL, links, images, word count and reading time. Typically 15-30x smaller than the raw HTML, so it saves far more in context tokens than it costs. Honors robots.txt by default. No browser or network access needed on your side."},{"method":"GET","url":"https://toolbelt402.tpoborne.workers.dev/ping","price":"$0.001","description":"Test your x402 client end to end at the minimum possible price. Returns a pong with the payer address the server actually saw, your echoed nonce, and server time — the safest way to verify wallet, payment signing, settlement and retry all work before you point your agent at anything expensive. Deterministic, idempotent, no side effects, no rate limit, no signup."}],"limits":{"maxBodyBytes":262144},"free":["https://toolbelt402.tpoborne.workers.dev/","https://toolbelt402.tpoborne.workers.dev/health","https://toolbelt402.tpoborne.workers.dev/llms.txt","https://toolbelt402.tpoborne.workers.dev/openapi.json","https://toolbelt402.tpoborne.workers.dev/.well-known/x402","https://toolbelt402.tpoborne.workers.dev/stats"],"openapi":"https://toolbelt402.tpoborne.workers.dev/openapi.json","manifest":"https://toolbelt402.tpoborne.workers.dev/.well-known/x402","terms":"Best-effort service, no SLA. Request bodies and responses are not stored; request metadata (timestamp, route, status, user-agent, country) is logged for operations, and a public counter of settled payments is kept at /stats. Do not send secrets or personal data."}