{"openapi":"3.1.0","info":{"title":"Innernet — utility grid for autonomous agents","version":"1.0.0","description":"Small, reliable pay-per-call HTTP machines for AI agents. No accounts, no API keys. Unpaid calls return HTTP 402 with a signed x402 payment challenge; pay a fraction of a cent in USDC or EURC on Base and retry.","contact":{"url":"https://innernetcorp.com","email":"hello@innernetcorp.com"}},"servers":[{"url":"https://innernetcorp.com"}],"components":{"securitySchemes":{"x402":{"type":"http","scheme":"x402","description":"Pay per call via the x402 protocol (v2) in USDC or EURC on base. Send the request unpaid to receive a 402 with signed requirements, then pay and retry."}}},"paths":{"/machines/render":{"post":{"operationId":"render","summary":"Screenshot / PDF renderer ($0.01 per call)","description":"Render any public URL, or raw HTML you provide, into a PNG/JPEG screenshot or a PDF using a real headless browser. Useful when an agent needs pixels: previews, archives, visual checks, reports.","security":[{"x402":[]}],"x-x402":{"price":"$0.01","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Public http(s) URL to render. Provide url OR html, not both."},"html":{"type":"string","description":"Raw HTML to render instead of a URL. Network access is disabled in this mode."},"format":{"type":"string","enum":["png","jpeg","pdf"],"default":"png"},"full_page":{"type":"boolean","default":false,"description":"Capture the full scroll height (screenshots only)."},"width":{"type":"integer","minimum":320,"maximum":3840,"default":1280},"height":{"type":"integer","minimum":320,"maximum":3840,"default":800},"wait_until":{"type":"string","enum":["load","domcontentloaded","networkidle"],"default":"networkidle"},"delay_ms":{"type":"integer","minimum":0,"maximum":10000,"default":0,"description":"Extra wait after load, for late-painting pages."},"quality":{"type":"integer","minimum":1,"maximum":100,"description":"JPEG quality (jpeg format only)."}},"additionalProperties":false},"example":{"url":"https://example.com","format":"png","full_page":false,"width":1280,"height":800}}}},"responses":{"200":{"description":"Result","content":{"image/png":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"render_info","summary":"Info card for Screenshot / PDF renderer (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/markdown":{"post":{"operationId":"markdown","summary":"Page -> clean Markdown ($0.005 per call)","description":"Extract the readable article from a public URL (or raw HTML) and return it as clean Markdown with title and byline. Reader-mode for agents: strips nav, ads and boilerplate. For heavily JavaScript-rendered pages, render first (slot A1) or pass the rendered HTML here.","security":[{"x402":[]}],"x-x402":{"price":"$0.005","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Public http(s) URL to extract. Provide url OR html, not both."},"html":{"type":"string","description":"Raw HTML to extract from instead of fetching a URL."},"base_url":{"type":"string","description":"Base URL used to resolve relative links when html is provided."}},"additionalProperties":false},"example":{"url":"https://example.com"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"ok":true,"title":"Example Domain","byline":null,"excerpt":"This domain is for use in illustrative examples...","markdown":"# Example Domain\n\nThis domain is for use in illustrative examples in documents...","length":1024,"source":"https://example.com/some-article"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"markdown_info","summary":"Info card for Page -> clean Markdown (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/json-repair":{"post":{"operationId":"json-repair","summary":"JSON repair + schema check ($0.002 per call)","description":"Fix broken JSON (trailing commas, single quotes, unquoted keys, truncation, markdown fences) and optionally validate the result against a JSON Schema you supply. Built for cleaning up LLM tool output before it hits your pipeline.","security":[{"x402":[]}],"x-x402":{"price":"$0.002","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"properties":{"input":{"type":"string","description":"The (possibly broken) JSON text to repair."},"schema":{"type":"object","description":"Optional JSON Schema (draft-07/2020-12) to validate the repaired value against."}},"additionalProperties":false},"example":{"input":"{name: 'Ada', tags: ['x',], }","schema":{"type":"object","required":["name"]}}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"ok":true,"repaired":true,"data":{"name":"Ada","tags":["x"]},"valid":true,"validation_errors":null}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"json-repair_info","summary":"Info card for JSON repair + schema check (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/extract":{"post":{"operationId":"extract","summary":"Structured extraction (CSS selectors) ($0.003 per call)","description":"Scrape structured data from any public page: give a URL (or raw HTML) plus named CSS selectors, get clean JSON back. Supports text, attributes (href, src, ...), innerHTML, and all-matches arrays. The fast lane for agents that need facts off a page, not prose.","security":[{"x402":[]}],"x-x402":{"price":"$0.003","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["selectors"],"properties":{"url":{"type":"string","description":"Public http(s) URL to fetch. Provide url OR html."},"html":{"type":"string","description":"Raw HTML to extract from instead of fetching."},"base_url":{"type":"string","description":"Base URL for resolving when html is provided."},"selectors":{"type":"object","description":"Named selectors: value is a CSS string, or { \"selector\": \"...\", \"attr\": \"text|html|<attribute>\", \"all\": true }."}},"additionalProperties":false},"example":{"url":"https://example.com","selectors":{"title":"h1","links":{"selector":"a","attr":"href","all":true}}}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"ok":true,"source":"https://example.com","data":{"title":"Example Domain","links":["https://www.iana.org/domains/example"]}}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"extract_info","summary":"Info card for Structured extraction (CSS selectors) (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/pdf-text":{"post":{"operationId":"pdf-text","summary":"PDF -> text ($0.005 per call)","description":"Read a PDF and return its text: full document plus per-page, with page count. Accepts a public URL (up to ~3 MB) or base64 bytes (up to ~1 MB). Text-based PDFs only - scanned images need OCR, which is a different machine.","security":[{"x402":[]}],"x-x402":{"price":"$0.005","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Public http(s) URL of the PDF. Provide url OR base64."},"base64":{"type":"string","description":"The PDF bytes, base64-encoded."}},"additionalProperties":false},"example":{"url":"https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"ok":true,"pages":2,"text":"Quarterly report...","text_per_page":["Quarterly report...","Appendix..."],"truncated":false}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"pdf-text_info","summary":"Info card for PDF -> text (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/convert":{"post":{"operationId":"convert","summary":"CSV / JSON / YAML converter ($0.002 per call)","description":"Convert data between CSV, JSON and YAML in one call. CSV parsing with headers and type inference; YAML-safe loading; pretty or compact JSON out. For bots holding data in the wrong container.","security":[{"x402":[]}],"x-x402":{"price":"$0.002","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input","from","to"],"properties":{"input":{"description":"The data: a string (csv/yaml/json text) or a JSON value when from=json."},"from":{"type":"string","enum":["csv","json","yaml"]},"to":{"type":"string","enum":["csv","json","yaml"]},"delimiter":{"type":"string","description":"CSV delimiter (auto-detected on parse; , on output)."},"header":{"type":"boolean","default":true,"description":"CSV first row is a header."},"pretty":{"type":"boolean","default":true,"description":"Pretty-print JSON output."}},"additionalProperties":false},"example":{"input":"name,age\nAda,36","from":"csv","to":"json"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"ok":true,"from":"csv","to":"json","output":"[\n  {\n    \"name\": \"Ada\",\n    \"age\": 36\n  }\n]"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"convert_info","summary":"Info card for CSV / JSON / YAML converter (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/qr":{"post":{"operationId":"qr","summary":"QR code generator ($0.003 per call)","description":"Generate a QR code as PNG or SVG from any text: links, wallet addresses, wifi credentials, tickets. Sizes 64-2048px, selectable error-correction level.","security":[{"x402":[]}],"x-x402":{"price":"$0.003","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"string","maxLength":4000,"description":"Text to encode."},"format":{"type":"string","enum":["png","svg"],"default":"png"},"size":{"type":"integer","minimum":64,"maximum":2048,"default":512},"error_correction":{"type":"string","enum":["L","M","Q","H"],"default":"M"}},"additionalProperties":false},"example":{"data":"https://innernetcorp.com","format":"png","size":512}}}},"responses":{"200":{"description":"Result","content":{"image/png":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"qr_info","summary":"Info card for QR code generator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/ssl-check":{"post":{"operationId":"ssl-check","summary":"SSL certificate check ($0.002 per call)","description":"Inspect any public host's TLS certificate in one call: expiry date and days remaining, issuer, subject, SANs, chain validity and TLS protocol. Built for monitoring agents that babysit domains.","security":[{"x402":[]}],"x-x402":{"price":"$0.002","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["host"],"properties":{"host":{"type":"string","description":"Hostname to check (no scheme)."},"port":{"type":"integer","minimum":1,"maximum":65535,"default":443}},"additionalProperties":false},"example":{"host":"innernetcorp.com","port":443}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"ok":true,"host":"innernetcorp.com","port":443,"subject":"innernetcorp.com","issuer":"Let's Encrypt","valid_from":"2026-07-01T00:00:00.000Z","valid_to":"2026-09-29T00:00:00.000Z","days_remaining":71,"sans":["DNS:innernetcorp.com"],"chain_valid":true,"chain_error":null,"tls_protocol":"TLSv1.3"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"ssl-check_info","summary":"Info card for SSL certificate check (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/notary":{"post":{"operationId":"notary","summary":"Notary - signed timestamped receipts ($0.002 per call)","description":"Proof for the agent economy: submit content (or just its sha256) and receive an Ed25519-signed, timestamped receipt proving that exact content existed at that moment. Nothing is stored - we hash and sign. Verification is FREE for anyone, forever, at POST /machines/verify-receipt (or offline with the embedded public key). Tool receipts, not zero-knowledge: the trust primitive agents actually use.","security":[{"x402":[]}],"x-x402":{"price":"$0.002","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"string","description":"The content to notarize (<=1MB). Provide data OR hash."},"hash":{"type":"string","description":"sha256 hex of the content, if you prefer not to send it."},"note":{"type":"string","maxLength":256,"description":"Optional label baked into the signed receipt."}},"additionalProperties":false},"example":{"data":"order #4512 shipped to Ada","note":"shipping-confirmation"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"ok":true,"receipt":{"version":1,"service":"innernet-notary","sha256":"9f2b...","note":"shipping-confirmation","issued_at":"2026-07-20T12:00:00.000Z","key_id":"a1b2c3d4e5f60718","public_key_spki_base64":"MCowBQYDK2VwAyEA...","signature_ed25519_base64":"5Qp..."},"verify":{"free_endpoint":"/machines/verify-receipt"}}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"notary_info","summary":"Info card for Notary - signed timestamped receipts (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/og-image":{"post":{"operationId":"og-image","summary":"OG / social card generator ($0.008 per call)","description":"Turn a title into a polished 1200x630 social preview card (Open Graph / Twitter) as PNG or JPEG: title, subtitle, footer badge, dark or light theme, custom accent color. Rendered by a real browser, fully offline - built for agents publishing links that need to look intentional.","security":[{"x402":[]}],"x-x402":{"price":"$0.008","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["title"],"properties":{"title":{"type":"string","maxLength":140},"subtitle":{"type":"string","maxLength":220},"footer":{"type":"string","maxLength":80,"description":"Small badge at the bottom, e.g. your domain."},"theme":{"type":"string","enum":["dark","light"],"default":"dark"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","description":"Accent color, default #FFB000."},"align":{"type":"string","enum":["left","center"],"default":"left"},"format":{"type":"string","enum":["png","jpeg"],"default":"png"}},"additionalProperties":false},"example":{"title":"Machines that work for other machines","subtitle":"Pay-per-call utilities for AI agents - no accounts, no keys.","footer":"innernetcorp.com","theme":"dark","accent":"#FFB000"}}}},"responses":{"200":{"description":"Result","content":{"image/png":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"og-image_info","summary":"Info card for OG / social card generator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/slugify":{"post":{"operationId":"slugify","summary":"Slugify text ($0.001 per call)","description":"Convert any text into a clean URL slug: lowercase, hyphen-separated, accents stripped, safe for URLs, filenames and IDs.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string"},"separator":{"type":"string","default":"-"}}},"example":{"text":"Héllo Wörld! 100% Grid"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"slug":"hello-world-100-grid"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"slugify_info","summary":"Info card for Slugify text (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/change-case":{"post":{"operationId":"change-case","summary":"Change text case ($0.001 per call)","description":"Convert text between camelCase, snake_case, kebab-case, PascalCase, CONSTANT_CASE, Title Case, lower and UPPER.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text","to"],"properties":{"text":{"type":"string"},"to":{"type":"string","enum":["camel","snake","kebab","pascal","constant","title","lower","upper"]}}},"example":{"text":"hello world example","to":"camel"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":"helloWorldExample"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"change-case_info","summary":"Info card for Change text case (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/text-stats":{"post":{"operationId":"text-stats","summary":"Text statistics ($0.001 per call)","description":"Count characters, words, sentences, paragraphs, unique words and estimate reading time for any text.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"text":"The grid hums. Machines work while you sleep."}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"characters":45,"words":8,"sentences":2,"paragraphs":1,"unique_words":8,"reading_time_min":1}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"text-stats_info","summary":"Info card for Text statistics (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/dedupe-lines":{"post":{"operationId":"dedupe-lines","summary":"Deduplicate lines ($0.001 per call)","description":"Remove duplicate lines from text while preserving first-seen order; optional case-insensitive and trim modes.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"text":"a\nb\na\nB","case_insensitive":true}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":"a\nb","removed":2}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"dedupe-lines_info","summary":"Info card for Deduplicate lines (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/sort-lines":{"post":{"operationId":"sort-lines","summary":"Sort lines ($0.001 per call)","description":"Sort the lines of a text alphabetically or numerically, ascending or descending, with natural-order option.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"text":"item10\nitem2\nitem1","natural":true}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":"item1\nitem2\nitem10"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"sort-lines_info","summary":"Info card for Sort lines (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/extract-emails":{"post":{"operationId":"extract-emails","summary":"Extract email addresses ($0.001 per call)","description":"Find and extract all email addresses from any block of text, deduplicated.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"text":"Contact ada@example.com or ops@grid.io today"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"emails":["ada@example.com","ops@grid.io"],"count":2}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"extract-emails_info","summary":"Info card for Extract email addresses (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/extract-urls":{"post":{"operationId":"extract-urls","summary":"Extract URLs ($0.001 per call)","description":"Find and extract all http/https URLs from any block of text, deduplicated.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"text":"See https://example.com and http://grid.io/docs now"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"urls":["https://example.com","http://grid.io/docs"],"count":2}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"extract-urls_info","summary":"Info card for Extract URLs (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/levenshtein":{"post":{"operationId":"levenshtein","summary":"String similarity (Levenshtein) ($0.001 per call)","description":"Compute edit distance and similarity percentage between two strings - fuzzy matching, deduplication, typo detection.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["a","b"],"properties":{"a":{"type":"string"},"b":{"type":"string"}}},"example":{"a":"kitten","b":"sitting"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"distance":3,"similarity":0.571}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"levenshtein_info","summary":"Info card for String similarity (Levenshtein) (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/remove-accents":{"post":{"operationId":"remove-accents","summary":"Remove accents / diacritics ($0.001 per call)","description":"Strip accents and diacritical marks from text, converting to plain ASCII-friendly characters.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"text":"Crème brûlée à São Paulo"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":"Creme brulee a Sao Paulo"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"remove-accents_info","summary":"Info card for Remove accents / diacritics (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/truncate-text":{"post":{"operationId":"truncate-text","summary":"Truncate text ($0.001 per call)","description":"Truncate text to a maximum length at a word boundary, with customizable ellipsis suffix.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"text":"The quick brown fox jumps over the lazy dog","max":20}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":"The quick brown…","truncated":true}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"truncate-text_info","summary":"Info card for Truncate text (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/find-replace":{"post":{"operationId":"find-replace","summary":"Find and replace ($0.001 per call)","description":"Replace all occurrences of a literal search string in text, with optional case-insensitive matching. Returns replacement count.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"text":"cat cat dog","find":"cat","replace":"bird"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":"bird bird dog","replacements":2}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"find-replace_info","summary":"Info card for Find and replace (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/word-frequency":{"post":{"operationId":"word-frequency","summary":"Word frequency ($0.001 per call)","description":"Count how often each word appears in a text; returns the top N most frequent words - keyword analysis, SEO, content audit.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"text":"grid grid machines work grid machines","top":3}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"frequencies":[{"word":"grid","count":3},{"word":"machines","count":2},{"word":"work","count":1}]}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"word-frequency_info","summary":"Info card for Word frequency (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/base64-encode":{"post":{"operationId":"base64-encode","summary":"Base64 encode ($0.001 per call)","description":"Encode text or UTF-8 data to Base64, with optional URL-safe alphabet.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"text":"hello grid"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":"aGVsbG8gZ3JpZA=="}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"base64-encode_info","summary":"Info card for Base64 encode (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/base64-decode":{"post":{"operationId":"base64-decode","summary":"Base64 decode ($0.001 per call)","description":"Decode Base64 (standard or URL-safe) back to UTF-8 text.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"text":"aGVsbG8gZ3JpZA=="}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":"hello grid"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"base64-decode_info","summary":"Info card for Base64 decode (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/url-encode":{"post":{"operationId":"url-encode","summary":"URL encode ($0.001 per call)","description":"Percent-encode text for safe use in URLs and query strings (RFC 3986).","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"text":"a b&c=d?"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":"a%20b%26c%3Dd%3F"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"url-encode_info","summary":"Info card for URL encode (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/url-decode":{"post":{"operationId":"url-decode","summary":"URL decode ($0.001 per call)","description":"Decode percent-encoded URL text back to readable characters.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"text":"a%20b%26c%3Dd%3F"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":"a b&c=d?"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"url-decode_info","summary":"Info card for URL decode (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/hex-encode":{"post":{"operationId":"hex-encode","summary":"Hex encode ($0.001 per call)","description":"Convert text or UTF-8 data to a hexadecimal string.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"text":"grid"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":"67726964"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"hex-encode_info","summary":"Info card for Hex encode (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/hex-decode":{"post":{"operationId":"hex-decode","summary":"Hex decode ($0.001 per call)","description":"Convert a hexadecimal string back to UTF-8 text.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"text":"67726964"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":"grid"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"hex-decode_info","summary":"Info card for Hex decode (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/jwt-decode":{"post":{"operationId":"jwt-decode","summary":"JWT decode (no verification) ($0.001 per call)","description":"Decode a JSON Web Token's header and payload for inspection - shows claims, expiry, issuer. Does NOT verify the signature.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"token":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJncmlkIiwiZXhwIjoxOTAwMDAwMDAwfQ.x"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"header":{"alg":"HS256"},"payload":{"sub":"grid","exp":1900000000},"expired":false}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"jwt-decode_info","summary":"Info card for JWT decode (no verification) (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/html-escape":{"post":{"operationId":"html-escape","summary":"HTML escape ($0.001 per call)","description":"Escape text for safe embedding in HTML: & < > \" ' become entities. XSS-safe output encoding.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"text":"<b>5 & 6</b>"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":"&lt;b&gt;5 &amp; 6&lt;/b&gt;"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"html-escape_info","summary":"Info card for HTML escape (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/html-unescape":{"post":{"operationId":"html-unescape","summary":"HTML unescape ($0.001 per call)","description":"Convert common HTML entities (named and numeric) back to plain characters.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"text":"&lt;b&gt;5 &amp; 6&lt;/b&gt;"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":"<b>5 & 6</b>"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"html-unescape_info","summary":"Info card for HTML unescape (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/rot13":{"post":{"operationId":"rot13","summary":"ROT13 cipher ($0.001 per call)","description":"Apply the classic ROT13 letter rotation to text (encode and decode are the same operation).","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"text":"Innernet"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":"Vaareargg"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"rot13_info","summary":"Info card for ROT13 cipher (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/sha256":{"post":{"operationId":"sha256","summary":"SHA-256 hash ($0.001 per call)","description":"Compute the SHA-256 hash of text - content fingerprinting, integrity checks, dedupe keys.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"text":"hello"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"hex":"2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"sha256_info","summary":"Info card for SHA-256 hash (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/sha512":{"post":{"operationId":"sha512","summary":"SHA-512 hash ($0.001 per call)","description":"Compute the SHA-512 hash of text for high-strength fingerprints and integrity verification.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"text":"hello"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"sha512_info","summary":"Info card for SHA-512 hash (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/md5":{"post":{"operationId":"md5","summary":"MD5 hash ($0.001 per call)","description":"Compute the MD5 hash of text - legacy checksums and cache keys (not for security).","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"text":"hello"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"hex":"5d41402abc4b2a76b9719d911017c592"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"md5_info","summary":"Info card for MD5 hash (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/hmac":{"post":{"operationId":"hmac","summary":"HMAC signature ($0.001 per call)","description":"Compute an HMAC (SHA-256 or SHA-512) of a message with a secret key - webhook signing and verification.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"text":"payload","key":"secret","algorithm":"sha256"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"hex":"c8...","algorithm":"sha256"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"hmac_info","summary":"Info card for HMAC signature (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/crc32":{"post":{"operationId":"crc32","summary":"CRC32 checksum ($0.001 per call)","description":"Compute the CRC32 checksum of text - fast integrity checks and legacy compatibility.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"text":"grid"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"crc32_info","summary":"Info card for CRC32 checksum (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/uuid-generate":{"post":{"operationId":"uuid-generate","summary":"Generate UUID v4 ($0.001 per call)","description":"Generate one or more random UUID v4 identifiers.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"count":2}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"uuids":["9b2b...","1c4d..."]}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"uuid-generate_info","summary":"Info card for Generate UUID v4 (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/uuid-v5":{"post":{"operationId":"uuid-v5","summary":"Deterministic UUID v5 ($0.001 per call)","description":"Generate a deterministic name-based UUID v5 from a namespace UUID and a name - same inputs always give the same ID.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"namespace":"6ba7b810-9dad-11d1-80b4-00c04fd430c8","name":"innernetcorp.com"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"uuid-v5_info","summary":"Info card for Deterministic UUID v5 (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/random-token":{"post":{"operationId":"random-token","summary":"Random token generator ($0.001 per call)","description":"Generate cryptographically secure random tokens in hex or base64url - API keys, session tokens, nonces.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"bytes":24,"encoding":"hex"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"random-token_info","summary":"Info card for Random token generator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/unix-to-iso":{"post":{"operationId":"unix-to-iso","summary":"Unix timestamp to ISO date ($0.001 per call)","description":"Convert a Unix epoch timestamp (seconds or milliseconds) to ISO 8601 UTC datetime.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"timestamp":1753000000}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"iso":"2025-07-20T08:26:40.000Z","detected":"seconds"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"unix-to-iso_info","summary":"Info card for Unix timestamp to ISO date (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/iso-to-unix":{"post":{"operationId":"iso-to-unix","summary":"ISO date to Unix timestamp ($0.001 per call)","description":"Convert an ISO 8601 or common date string to Unix epoch seconds and milliseconds.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"date":"2026-07-20T12:00:00Z"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"seconds":1784548800,"milliseconds":1784548800000}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"iso-to-unix_info","summary":"Info card for ISO date to Unix timestamp (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/timezone-convert":{"post":{"operationId":"timezone-convert","summary":"Timezone convert ($0.001 per call)","description":"Convert a datetime from UTC into any IANA timezone (Asia/Karachi, America/New_York, Europe/London...) with local formatting and UTC offset.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"date":"2026-07-20T12:00:00Z","timezone":"Asia/Karachi"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"local":"2026-07-20 17:00:00","timezone":"Asia/Karachi","utc_offset":"+05:00"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"timezone-convert_info","summary":"Info card for Timezone convert (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/date-diff":{"post":{"operationId":"date-diff","summary":"Date difference ($0.001 per call)","description":"Compute the difference between two dates in days, hours, minutes, seconds and a human-readable breakdown.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"from":"2026-01-01","to":"2026-07-20"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"days":200,"hours":4800,"human":"200 days"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"date-diff_info","summary":"Info card for Date difference (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/date-add":{"post":{"operationId":"date-add","summary":"Date add / subtract ($0.001 per call)","description":"Add or subtract days, hours, minutes, months or years from a date; negative amounts subtract.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"date":"2026-07-20","amount":45,"unit":"days"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":"2026-09-03T00:00:00.000Z"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"date-add_info","summary":"Info card for Date add / subtract (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/week-number":{"post":{"operationId":"week-number","summary":"ISO week number ($0.001 per call)","description":"Get the ISO 8601 week number, day of year and quarter for any date.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"date":"2026-07-20"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"week":30,"day_of_year":201,"quarter":3,"weekday":"Monday"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"week-number_info","summary":"Info card for ISO week number (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/business-days":{"post":{"operationId":"business-days","summary":"Business days between dates ($0.001 per call)","description":"Count business days (Monday-Friday) between two dates, excluding weekends.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"from":"2026-07-01","to":"2026-07-20"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"business_days":13,"calendar_days":19}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"business-days_info","summary":"Info card for Business days between dates (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/age-calculator":{"post":{"operationId":"age-calculator","summary":"Age calculator ($0.001 per call)","description":"Calculate exact age in years, months and days from a birth date to today or a given date.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"birth_date":"1990-03-15"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"years":36,"months":4,"days":5,"total_days":13276}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"age-calculator_info","summary":"Info card for Age calculator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/duration-humanize":{"post":{"operationId":"duration-humanize","summary":"Humanize duration ($0.001 per call)","description":"Turn a duration in seconds or milliseconds into human-readable text like '2 days 3 hours 10 minutes'.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"seconds":187500}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"human":"2 days 4 hours 5 minutes","parts":{"days":2,"hours":4,"minutes":5,"seconds":0}}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"duration-humanize_info","summary":"Info card for Humanize duration (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/date-format":{"post":{"operationId":"date-format","summary":"Format date ($0.001 per call)","description":"Format a date into common patterns: long, short, monthly, weekday, or a custom locale - multilingual output supported.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"date":"2026-07-20","style":"long","locale":"en-US"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":"July 20, 2026"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"date-format_info","summary":"Info card for Format date (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/unit-convert":{"post":{"operationId":"unit-convert","summary":"Unit converter ($0.001 per call)","description":"Convert between units of length, mass, volume, area, speed and digital data - km to miles, kg to lb, GB to GiB, liters to gallons and more.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"value":100,"from":"km","to":"mi"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":62.137119,"category":"length"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"unit-convert_info","summary":"Info card for Unit converter (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/number-to-words":{"post":{"operationId":"number-to-words","summary":"Number to words ($0.001 per call)","description":"Spell out a number in English words - invoices, checks, legal documents. Supports up to trillions and decimals.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"number":1234.56}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"words":"one thousand two hundred thirty-four point five six"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"number-to-words_info","summary":"Info card for Number to words (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/roman-numerals":{"post":{"operationId":"roman-numerals","summary":"Roman numerals converter ($0.001 per call)","description":"Convert between integers and Roman numerals in both directions (1-3999).","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"value":2026}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"roman":"MMXXVI"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"roman-numerals_info","summary":"Info card for Roman numerals converter (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/base-convert":{"post":{"operationId":"base-convert","summary":"Number base converter ($0.001 per call)","description":"Convert numbers between bases 2-36: binary, octal, decimal, hexadecimal and any custom radix.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"value":"ff","from_base":16,"to_base":2}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":"11111111"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"base-convert_info","summary":"Info card for Number base converter (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/round-precision":{"post":{"operationId":"round-precision","summary":"Round with precision ($0.001 per call)","description":"Round, floor, or ceil a number to N decimal places or significant figures, without floating point surprises.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"value":3.14159,"decimals":2,"mode":"round"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":3.14}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"round-precision_info","summary":"Info card for Round with precision (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/random-int":{"post":{"operationId":"random-int","summary":"Random integers ($0.001 per call)","description":"Generate cryptographically fair random integers in a range, with optional unique (no-repeat) mode - draws, sampling, testing.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"min":1,"max":100,"count":3}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"values":[42,7,89]}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"random-int_info","summary":"Info card for Random integers (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/percentage-calc":{"post":{"operationId":"percentage-calc","summary":"Percentage calculator ($0.001 per call)","description":"All percentage math in one machine: X% of Y, what percent X is of Y, and percentage change between two values.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"operation":"percent_of","x":15,"y":200}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":30,"explanation":"15% of 200 = 30"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"percentage-calc_info","summary":"Info card for Percentage calculator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/ratio-simplify":{"post":{"operationId":"ratio-simplify","summary":"Simplify ratio / fraction ($0.001 per call)","description":"Reduce a ratio or fraction to lowest terms using GCD, with decimal equivalent.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"a":1920,"b":1080}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"simplified":"16:9","decimal":1.7778}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"ratio-simplify_info","summary":"Info card for Simplify ratio / fraction (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/prime-check":{"post":{"operationId":"prime-check","summary":"Prime checker + factorization ($0.001 per call)","description":"Test if a number is prime and return its full prime factorization.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"number":360}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"is_prime":false,"factors":[2,2,2,3,3,5],"factorization":"2^3 × 3^2 × 5"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"prime-check_info","summary":"Info card for Prime checker + factorization (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/statistics":{"post":{"operationId":"statistics","summary":"Descriptive statistics ($0.001 per call)","description":"Compute mean, median, mode, min, max, range, variance, standard deviation and percentiles for an array of numbers.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"numbers":[2,4,4,4,5,5,7,9]}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"mean":5,"median":4.5,"mode":[4],"stddev":2}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"statistics_info","summary":"Info card for Descriptive statistics (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/compound-interest":{"post":{"operationId":"compound-interest","summary":"Compound interest calculator ($0.001 per call)","description":"Compute compound interest growth: final amount, total interest earned, with any compounding frequency and optional monthly contributions.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"principal":10000,"annual_rate":7,"years":10,"compounds_per_year":12}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"final_amount":20096.61,"total_interest":10096.61}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"compound-interest_info","summary":"Info card for Compound interest calculator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/loan-payment":{"post":{"operationId":"loan-payment","summary":"Loan payment calculator ($0.001 per call)","description":"Compute the monthly payment, total paid and total interest for an amortized loan - mortgages, car loans, business credit.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"principal":250000,"annual_rate":6.5,"years":30}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"monthly_payment":1580.17,"total_paid":568861.2,"total_interest":318861.2}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"loan-payment_info","summary":"Info card for Loan payment calculator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/simple-interest":{"post":{"operationId":"simple-interest","summary":"Simple interest calculator ($0.001 per call)","description":"Compute simple (non-compounding) interest and final amount for a principal, rate and time.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"principal":5000,"annual_rate":4.5,"years":3}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"interest":675,"final_amount":5675}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"simple-interest_info","summary":"Info card for Simple interest calculator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/margin-markup":{"post":{"operationId":"margin-markup","summary":"Margin and markup calculator ($0.001 per call)","description":"Convert between cost, price, profit margin and markup percentage - solve for whichever is missing.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"cost":80,"price":100}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"margin_percent":20,"markup_percent":25,"profit":20}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"margin-markup_info","summary":"Info card for Margin and markup calculator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/vat-calc":{"post":{"operationId":"vat-calc","summary":"VAT / sales tax calculator ($0.001 per call)","description":"Add tax to a net amount or extract tax from a gross amount, at any VAT or sales-tax rate.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"amount":118,"rate":18,"mode":"extract"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"net":100,"tax":18,"gross":118}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"vat-calc_info","summary":"Info card for VAT / sales tax calculator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/currency-format":{"post":{"operationId":"currency-format","summary":"Currency formatter ($0.001 per call)","description":"Format a number as currency in any ISO code and locale: USD, EUR, PKR, JPY - proper symbols, separators and decimals.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"amount":1234567.891,"currency":"USD","locale":"en-US"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"formatted":"$1,234,567.89"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"currency-format_info","summary":"Info card for Currency formatter (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/roi-calc":{"post":{"operationId":"roi-calc","summary":"ROI calculator ($0.001 per call)","description":"Compute return on investment: total ROI percent, absolute gain and annualized return (CAGR) if years given.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"initial":10000,"final":15000,"years":3}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"roi_percent":50,"gain":5000,"annualized_percent":14.47}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"roi-calc_info","summary":"Info card for ROI calculator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/break-even":{"post":{"operationId":"break-even","summary":"Break-even calculator ($0.001 per call)","description":"Find the break-even point in units and revenue from fixed costs, variable cost per unit and price per unit.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"fixed_costs":50000,"price_per_unit":25,"variable_cost_per_unit":15}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"break_even_units":5000,"break_even_revenue":125000,"contribution_margin":10}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"break-even_info","summary":"Info card for Break-even calculator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/validate-email":{"post":{"operationId":"validate-email","summary":"Email validator ($0.001 per call)","description":"Check whether a string is a syntactically valid email address, with domain and normalized form.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"email":"Ada.Lovelace@Example.COM "}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"valid":true,"normalized":"ada.lovelace@example.com","domain":"example.com"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"validate-email_info","summary":"Info card for Email validator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/validate-url":{"post":{"operationId":"validate-url","summary":"URL validator + parser ($0.001 per call)","description":"Validate a URL and break it into protocol, host, path, query parameters and fragment.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"url":"https://grid.io:8080/path?a=1&b=2#top"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"valid":true,"protocol":"https:","host":"grid.io:8080","query":{"a":"1","b":"2"}}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"validate-url_info","summary":"Info card for URL validator + parser (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/validate-uuid":{"post":{"operationId":"validate-uuid","summary":"UUID validator ($0.001 per call)","description":"Check whether a string is a valid UUID and detect its version (v1, v4, v5...).","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"uuid":"6ba7b810-9dad-11d1-80b4-00c04fd430c8"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"valid":true,"version":1}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"validate-uuid_info","summary":"Info card for UUID validator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/validate-ip":{"post":{"operationId":"validate-ip","summary":"IP address validator ($0.001 per call)","description":"Validate IPv4 and IPv6 addresses; detects version, private/public ranges and loopback.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"ip":"192.168.1.50"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"valid":true,"version":4,"private":true,"loopback":false}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"validate-ip_info","summary":"Info card for IP address validator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/validate-credit-card":{"post":{"operationId":"validate-credit-card","summary":"Credit card validator (Luhn) ($0.001 per call)","description":"Validate a card number with the Luhn checksum and detect the brand: Visa, Mastercard, Amex, Discover.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"number":"4532015112830366"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"valid":true,"brand":"visa"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"validate-credit-card_info","summary":"Info card for Credit card validator (Luhn) (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/validate-iban":{"post":{"operationId":"validate-iban","summary":"IBAN validator ($0.001 per call)","description":"Validate an International Bank Account Number with the mod-97 checksum; returns country code and normalized form.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"iban":"DE89 3704 0044 0532 0130 00"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"valid":true,"country":"DE"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"validate-iban_info","summary":"Info card for IBAN validator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/validate-isbn":{"post":{"operationId":"validate-isbn","summary":"ISBN validator ($0.001 per call)","description":"Validate ISBN-10 and ISBN-13 book numbers with their checksums.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"isbn":"978-3-16-148410-0"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"valid":true,"format":"ISBN-13"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"validate-isbn_info","summary":"Info card for ISBN validator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/json-lint":{"post":{"operationId":"json-lint","summary":"JSON lint / validity check ($0.001 per call)","description":"Check whether a string is valid JSON; returns the parse error position and message if broken.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"json":"{\"a\": 1, \"b\": [true, null]}"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"valid":true,"type":"object","keys":2}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"json-lint_info","summary":"Info card for JSON lint / validity check (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/password-strength":{"post":{"operationId":"password-strength","summary":"Password strength checker ($0.001 per call)","description":"Score a password 0-100 with entropy estimate, character-class analysis and crack-time estimate. Sent password is not stored.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"password":"Tr0ub4dor&3"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"score":72,"entropy_bits":65.5,"verdict":"strong"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"password-strength_info","summary":"Info card for Password strength checker (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/semver-compare":{"post":{"operationId":"semver-compare","summary":"Semantic version compare ($0.001 per call)","description":"Compare two semver versions (1.2.3-beta.1): returns which is greater and whether a constraint like >=1.2.0 is satisfied.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"a":"1.10.2","b":"1.9.9"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":1,"greater":"1.10.2"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"semver-compare_info","summary":"Info card for Semantic version compare (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/json-flatten":{"post":{"operationId":"json-flatten","summary":"Flatten nested JSON ($0.001 per call)","description":"Flatten a nested JSON object into single-level dot-notation keys: {a:{b:1}} becomes {'a.b':1}. Great for CSV export and diffing.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"object":{"user":{"name":"Ada","address":{"city":"London"}},"active":true}}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":{"user.name":"Ada","user.address.city":"London","active":true}}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"json-flatten_info","summary":"Info card for Flatten nested JSON (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/json-unflatten":{"post":{"operationId":"json-unflatten","summary":"Unflatten dot-notation JSON ($0.001 per call)","description":"Rebuild a nested JSON object from flat dot-notation keys: {'a.b':1} becomes {a:{b:1}}.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"object":{"user.name":"Ada","user.address.city":"London"}}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":{"user":{"name":"Ada","address":{"city":"London"}}}}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"json-unflatten_info","summary":"Info card for Unflatten dot-notation JSON (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/json-pick":{"post":{"operationId":"json-pick","summary":"Pick JSON paths ($0.001 per call)","description":"Extract only the listed dot-notation paths from a JSON object - trim big API responses down to what you need.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"object":{"user":{"name":"Ada","secret":"x"},"meta":{"ts":1}},"paths":["user.name","meta.ts"]}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":{"user":{"name":"Ada"},"meta":{"ts":1}}}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"json-pick_info","summary":"Info card for Pick JSON paths (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/json-sort-keys":{"post":{"operationId":"json-sort-keys","summary":"Sort JSON keys ($0.001 per call)","description":"Recursively sort all object keys alphabetically - canonical JSON for diffing, hashing and version control.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"object":{"b":2,"a":{"d":4,"c":3}}}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":{"a":{"c":3,"d":4},"b":2}}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"json-sort-keys_info","summary":"Info card for Sort JSON keys (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/json-minify":{"post":{"operationId":"json-minify","summary":"Minify / prettify JSON ($0.001 per call)","description":"Minify JSON to its smallest form or pretty-print it with chosen indentation.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"json":"{ \"a\" : 1 ,\n  \"b\" : [ 1, 2 ] }","mode":"minify"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":"{\"a\":1,\"b\":[1,2]}","bytes_saved":15}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"json-minify_info","summary":"Info card for Minify / prettify JSON (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/to-querystring":{"post":{"operationId":"to-querystring","summary":"JSON to query string ($0.001 per call)","description":"Convert a flat JSON object into a URL query string with proper encoding.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"object":{"q":"grid tools","page":2,"safe":true}}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":"q=grid+tools&page=2&safe=true"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"to-querystring_info","summary":"Info card for JSON to query string (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/from-querystring":{"post":{"operationId":"from-querystring","summary":"Query string to JSON ($0.001 per call)","description":"Parse a URL query string into a JSON object; repeated keys become arrays.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"query":"q=grid+tools&page=2&tag=a&tag=b"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":{"q":"grid tools","page":"2","tag":["a","b"]}}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"from-querystring_info","summary":"Info card for Query string to JSON (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/dedupe-array":{"post":{"operationId":"dedupe-array","summary":"Deduplicate array ($0.001 per call)","description":"Remove duplicate values from a JSON array - primitives or objects (deep equality) - preserving order.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"array":[1,2,2,{"a":1},{"a":1},3]}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":[1,2,{"a":1},3],"removed":2}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"dedupe-array_info","summary":"Info card for Deduplicate array (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/sort-array":{"post":{"operationId":"sort-array","summary":"Sort JSON array ($0.001 per call)","description":"Sort a JSON array of numbers, strings, or objects by a key - ascending or descending, numeric or alphabetical.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"array":[{"name":"b","age":30},{"name":"a","age":25}],"by":"age","descending":true}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":[{"name":"b","age":30},{"name":"a","age":25}]}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"sort-array_info","summary":"Info card for Sort JSON array (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/json-keys-list":{"post":{"operationId":"json-keys-list","summary":"List all JSON paths ($0.001 per call)","description":"List every dot-notation path in a JSON object with its type and depth - schema discovery for unknown payloads.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"object":{"user":{"name":"Ada","tags":["x"]},"active":true}}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"paths":[{"path":"user.name","type":"string"},{"path":"user.tags","type":"array"},{"path":"active","type":"boolean"}]}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"json-keys-list_info","summary":"Info card for List all JSON paths (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/haversine-distance":{"post":{"operationId":"haversine-distance","summary":"Distance between coordinates ($0.001 per call)","description":"Great-circle (haversine) distance between two lat/lon points in kilometers, miles and nautical miles.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"lat1":31.5204,"lon1":74.3587,"lat2":24.8607,"lon2":67.0011}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"km":1023.5,"miles":636,"nautical_miles":552.6}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"haversine-distance_info","summary":"Info card for Distance between coordinates (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/bearing":{"post":{"operationId":"bearing","summary":"Bearing between coordinates ($0.001 per call)","description":"Initial compass bearing from one lat/lon point to another, in degrees and cardinal direction (N, NE, ESE...).","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"lat1":31.5204,"lon1":74.3587,"lat2":24.8607,"lon2":67.0011}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"degrees":226.7,"cardinal":"SW"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"bearing_info","summary":"Info card for Bearing between coordinates (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/midpoint":{"post":{"operationId":"midpoint","summary":"Geographic midpoint ($0.001 per call)","description":"The geographic midpoint between two lat/lon coordinates along the great circle.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"lat1":31.5204,"lon1":74.3587,"lat2":24.8607,"lon2":67.0011}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"lat":28.23,"lon":70.63}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"midpoint_info","summary":"Info card for Geographic midpoint (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/bounding-box":{"post":{"operationId":"bounding-box","summary":"Bounding box around a point ($0.001 per call)","description":"Compute the min/max lat-lon bounding box around a center point for a given radius - geo search filters and map viewports.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"lat":31.5204,"lon":74.3587,"radius_km":25}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"min_lat":31.295,"max_lat":31.745,"min_lon":74.095,"max_lon":74.622}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"bounding-box_info","summary":"Info card for Bounding box around a point (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/coords-validate":{"post":{"operationId":"coords-validate","summary":"Coordinate validator ($0.001 per call)","description":"Validate latitude/longitude values and normalize various formats to clean decimal degrees.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"lat":"31.5204","lon":"74.3587"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"valid":true,"lat":31.5204,"lon":74.3587}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"coords-validate_info","summary":"Info card for Coordinate validator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/dms-decimal":{"post":{"operationId":"dms-decimal","summary":"DMS ↔ decimal degrees ($0.001 per call)","description":"Convert coordinates between degrees-minutes-seconds (31°31'13\"N) and decimal degrees (31.5204), both directions.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"dms":"31°31'13\"N"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"decimal":31.5203}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"dms-decimal_info","summary":"Info card for DMS ↔ decimal degrees (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/hex-to-rgb":{"post":{"operationId":"hex-to-rgb","summary":"Hex to RGB ($0.001 per call)","description":"Convert a hex color (#FFB000) to RGB and HSL values.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"hex":"#FFB000"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"rgb":{"r":255,"g":176,"b":0},"css":"rgb(255, 176, 0)"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"hex-to-rgb_info","summary":"Info card for Hex to RGB (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/rgb-to-hex":{"post":{"operationId":"rgb-to-hex","summary":"RGB to hex ($0.001 per call)","description":"Convert RGB values (0-255) to a hex color string.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"r":255,"g":176,"b":0}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"hex":"#ffb000"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"rgb-to-hex_info","summary":"Info card for RGB to hex (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/hex-to-hsl":{"post":{"operationId":"hex-to-hsl","summary":"Hex to HSL ($0.001 per call)","description":"Convert a hex color to HSL (hue, saturation, lightness) - the color space for programmatic adjustment.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"hex":"#FFB000"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"hsl":{"h":41,"s":100,"l":50},"css":"hsl(41, 100%, 50%)"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"hex-to-hsl_info","summary":"Info card for Hex to HSL (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/hsl-to-hex":{"post":{"operationId":"hsl-to-hex","summary":"HSL to hex ($0.001 per call)","description":"Convert HSL values back to a hex color string.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"h":41,"s":100,"l":50}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"hex":"#ffb000"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"hsl-to-hex_info","summary":"Info card for HSL to hex (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/contrast-ratio":{"post":{"operationId":"contrast-ratio","summary":"WCAG contrast checker ($0.001 per call)","description":"Compute the WCAG contrast ratio between two colors and whether they pass AA / AAA accessibility for normal and large text.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"foreground":"#0F1216","background":"#FFB000"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"ratio":9.4,"aa_normal":true,"aaa_normal":true}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"contrast-ratio_info","summary":"Info card for WCAG contrast checker (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/lighten-darken":{"post":{"operationId":"lighten-darken","summary":"Lighten / darken color ($0.001 per call)","description":"Lighten or darken a hex color by a percentage; also generates a 5-step tint/shade scale.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"hex":"#FFB000","amount":-20}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":"#cc8d00","scale":["#ffdf99","#ffc733","#ffb000","#cc8d00","#996a00"]}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"lighten-darken_info","summary":"Info card for Lighten / darken color (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/eth-unit-convert":{"post":{"operationId":"eth-unit-convert","summary":"Ethereum unit converter ($0.001 per call)","description":"Convert between wei, gwei and ETH with exact BigInt math - gas math, balances, transaction values.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"value":"1500000000","from":"wei","to":"gwei"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":"1.5"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"eth-unit-convert_info","summary":"Info card for Ethereum unit converter (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/eth-address-validate":{"post":{"operationId":"eth-address-validate","summary":"Ethereum address validator ($0.001 per call)","description":"Validate an Ethereum/EVM address: format check plus EIP-55 checksum verification; returns the correct checksummed form.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"address":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"valid":true,"checksum_valid":true,"checksummed":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"eth-address-validate_info","summary":"Info card for Ethereum address validator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/eth-checksum-address":{"post":{"operationId":"eth-checksum-address","summary":"EIP-55 checksum address ($0.001 per call)","description":"Convert any Ethereum address to its EIP-55 mixed-case checksummed form.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"address":"0xfb6916095ca1df60bb79ce92ce3ea74c37c5d359"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"checksummed":"0xfB6916095ca1df60bB79Ce92cE3Ea74c37c5d359"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"eth-checksum-address_info","summary":"Info card for EIP-55 checksum address (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/keccak256":{"post":{"operationId":"keccak256","summary":"Keccak-256 hash (Ethereum) ($0.001 per call)","description":"Compute the Keccak-256 hash used across Ethereum - event topics, storage slots, content addressing. Accepts UTF-8 text or 0x-hex input.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"text":"Transfer(address,address,uint256)"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"hex":"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"keccak256_info","summary":"Info card for Keccak-256 hash (Ethereum) (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/evm-selector":{"post":{"operationId":"evm-selector","summary":"EVM function selector ($0.001 per call)","description":"Compute the 4-byte function selector and full event topic hash from a Solidity signature like transfer(address,uint256).","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"signature":"transfer(address,uint256)"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"selector":"0xa9059cbb","topic":"0xa9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"evm-selector_info","summary":"Info card for EVM function selector (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/calldata-decode":{"post":{"operationId":"calldata-decode","summary":"EVM calldata splitter ($0.001 per call)","description":"Split raw EVM transaction calldata into the 4-byte function selector and its 32-byte argument words for inspection.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"calldata":"0xa9059cbb000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa960450000000000000000000000000000000000000000000000000de0b6b3a7640000"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"selector":"0xa9059cbb","words":["0x...45","0x0de0b6b3a7640000"]}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"calldata-decode_info","summary":"Info card for EVM calldata splitter (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/token-amount-format":{"post":{"operationId":"token-amount-format","summary":"Token amount formatter ($0.001 per call)","description":"Convert raw on-chain token amounts (uint) to human units and back, for any token decimals - USDC 6, ETH 18, WBTC 8.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"raw":"2500000","decimals":6}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"human":"2.5"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"token-amount-format_info","summary":"Info card for Token amount formatter (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/gas-cost":{"post":{"operationId":"gas-cost","summary":"Gas cost calculator ($0.001 per call)","description":"Compute transaction cost in ETH (and USD if you give a price) from gas used and gas price in gwei - fee estimation for EVM chains.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"gas_used":21000,"gas_price_gwei":0.05,"eth_price_usd":3500}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"eth":"0.00000105","usd":0.003675}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"gas-cost_info","summary":"Info card for Gas cost calculator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/btc-unit-convert":{"post":{"operationId":"btc-unit-convert","summary":"Bitcoin unit converter ($0.001 per call)","description":"Convert between satoshis, bits, mBTC and BTC with exact integer math.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"value":"150000","from":"sat","to":"btc"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":"0.0015"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"btc-unit-convert_info","summary":"Info card for Bitcoin unit converter (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/btc-address-validate":{"post":{"operationId":"btc-address-validate","summary":"Bitcoin address validator ($0.001 per call)","description":"Validate Bitcoin addresses: legacy Base58Check (1..., 3...) with checksum, and SegWit/Taproot bech32 (bc1q..., bc1p...).","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"address":"bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"valid":true,"type":"segwit_bech32"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"btc-address-validate_info","summary":"Info card for Bitcoin address validator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/sol-address-validate":{"post":{"operationId":"sol-address-validate","summary":"Solana address validator ($0.001 per call)","description":"Validate a Solana address: base58 decoding to exactly 32 bytes.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"address":"11111111111111111111111111111111"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"valid":true,"bytes":32}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"sol-address-validate_info","summary":"Info card for Solana address validator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/base58-convert":{"post":{"operationId":"base58-convert","summary":"Base58 encode / decode ($0.001 per call)","description":"Encode hex or text to Base58 (Bitcoin alphabet) and decode Base58 back to hex - addresses, IPFS CIDs, short IDs.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"decode":"StV1DL6CwTryKyV"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"hex":"68656c6c6f20776f726c64","text":"hello world"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"base58-convert_info","summary":"Info card for Base58 encode / decode (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/ens-namehash":{"post":{"operationId":"ens-namehash","summary":"ENS namehash ($0.001 per call)","description":"Compute the ENS namehash (EIP-137) of a .eth or any ENS name - resolver lookups and on-chain ENS work.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"name":"vitalik.eth"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"namehash":"0xee6c4522aab0003e8d14cd40a6af439055fd2577951148c14b6cea9a53475835"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"ens-namehash_info","summary":"Info card for ENS namehash (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/wei-safe-math":{"post":{"operationId":"wei-safe-math","summary":"BigInt token math ($0.001 per call)","description":"Exact add, subtract, multiply, divide and percentage on huge integer token amounts (wei, raw units) - no floating point errors ever.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"a":"1000000000000000000","op":"mul","b":"3"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":"3000000000000000000"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"wei-safe-math_info","summary":"Info card for BigInt token math (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/amortization-schedule":{"post":{"operationId":"amortization-schedule","summary":"Amortization schedule ($0.001 per call)","description":"Full month-by-month loan amortization table: payment, principal, interest and remaining balance per period - mortgages and business loans.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"principal":20000,"annual_rate":8,"years":2}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"monthly_payment":904.55,"schedule":[{"month":1,"interest":133.33,"principal":771.22,"balance":19228.78}]}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"amortization-schedule_info","summary":"Info card for Amortization schedule (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/npv":{"post":{"operationId":"npv","summary":"Net present value (NPV) ($0.001 per call)","description":"Compute the net present value of a series of cash flows at a discount rate - project and investment appraisal.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"rate":10,"cash_flows":[-10000,3000,4200,6800]}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"npv":1188.44,"verdict":"positive - creates value at this rate"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"npv_info","summary":"Info card for Net present value (NPV) (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/irr":{"post":{"operationId":"irr","summary":"Internal rate of return (IRR) ($0.001 per call)","description":"Find the internal rate of return of a cash-flow series - the discount rate where NPV is zero. Investment comparison standard.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"cash_flows":[-10000,3000,4200,6800]}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"irr_percent":15.57}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"irr_info","summary":"Info card for Internal rate of return (IRR) (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/depreciation":{"post":{"operationId":"depreciation","summary":"Depreciation calculator ($0.001 per call)","description":"Asset depreciation schedules: straight-line and declining-balance methods with year-by-year book values.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"cost":50000,"salvage":5000,"years":5,"method":"straight_line"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"annual":9000,"schedule":[{"year":1,"depreciation":9000,"book_value":41000}]}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"depreciation_info","summary":"Info card for Depreciation calculator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/cagr":{"post":{"operationId":"cagr","summary":"CAGR calculator ($0.001 per call)","description":"Compound annual growth rate between a start and end value over N years - the standard growth comparison metric.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"start_value":10000,"end_value":25000,"years":5}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"cagr_percent":20.11}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"cagr_info","summary":"Info card for CAGR calculator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/payback-period":{"post":{"operationId":"payback-period","summary":"Payback period ($0.001 per call)","description":"How long until an investment pays itself back from a series of cash inflows, with fractional-year precision.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"investment":10000,"cash_flows":[3000,4000,4000,4000]}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"payback_years":2.75}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"payback-period_info","summary":"Info card for Payback period (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/discount-chain":{"post":{"operationId":"discount-chain","summary":"Stacked discount calculator ($0.001 per call)","description":"Apply a chain of successive discounts and/or a tax to a price (e.g. 20% then 10% then +18% VAT) - the true final price.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"price":1000,"discounts":[20,10],"tax_percent":18}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"final":849.6,"effective_discount_percent":28}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"discount-chain_info","summary":"Info card for Stacked discount calculator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/invoice-total":{"post":{"operationId":"invoice-total","summary":"Invoice line-item totalizer ($0.001 per call)","description":"Total an invoice from line items (qty × unit price), with per-line and invoice-level discount and tax - returns the full computed invoice.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"items":[{"description":"Design","qty":10,"unit_price":50},{"description":"Hosting","qty":1,"unit_price":200,"discount_percent":10}],"tax_percent":18}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"subtotal":680,"tax":122.4,"total":802.4}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"invoice-total_info","summary":"Info card for Invoice line-item totalizer (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/land-unit-convert":{"post":{"operationId":"land-unit-convert","summary":"Land area converter ($0.001 per call)","description":"Convert land area between hectares, acres, square meters - and South Asian units: kanal, marla, bigha, guntha. Real-estate and farm math.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"value":5,"from":"acre","to":"kanal"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":40.01}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"land-unit-convert_info","summary":"Info card for Land area converter (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/crop-yield-convert":{"post":{"operationId":"crop-yield-convert","summary":"Crop yield converter ($0.001 per call)","description":"Convert crop yields between bushels/acre, tonnes/hectare, kg/ha and maunds/acre for major crops - corn, wheat, soybeans, rice.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"value":180,"from":"bu_acre","to":"t_ha","crop":"corn"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":11.29}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"crop-yield-convert_info","summary":"Info card for Crop yield converter (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/feed-conversion-ratio":{"post":{"operationId":"feed-conversion-ratio","summary":"Feed conversion ratio (FCR) ($0.001 per call)","description":"Compute FCR (feed consumed / weight gained) and cost per kg of gain for poultry, cattle, fish - the core livestock efficiency metric.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"feed_consumed_kg":3200,"weight_gain_kg":1855,"feed_cost_per_kg":0.55}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"fcr":1.73,"cost_per_kg_gain":0.95}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"feed-conversion-ratio_info","summary":"Info card for Feed conversion ratio (FCR) (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/dcad-calculator":{"post":{"operationId":"dcad-calculator","summary":"DCAD calculator (dairy nutrition) ($0.001 per call)","description":"Dietary cation-anion difference from Na, K, Cl, S percentages of dry matter - transition cow rations and milk fever prevention. Returns mEq/100g DM.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"na_percent":0.15,"k_percent":1.2,"cl_percent":0.35,"s_percent":0.2}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"dcad_meq_100g":16.4,"interpretation":"positive - lactation-type diet"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"dcad-calculator_info","summary":"Info card for DCAD calculator (dairy nutrition) (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/pearson-square":{"post":{"operationId":"pearson-square","summary":"Pearson square feed mixing ($0.001 per call)","description":"Classic Pearson square: what ratio of two feeds hits a target nutrient percentage - protein blending for rations and premixes.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"feed_a_percent":44,"feed_b_percent":9,"target_percent":16}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"parts_a":7,"parts_b":28,"percent_a":20,"percent_b":80}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"pearson-square_info","summary":"Info card for Pearson square feed mixing (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/grain-shrink":{"post":{"operationId":"grain-shrink","summary":"Grain moisture shrink ($0.001 per call)","description":"Weight loss when drying grain from one moisture percentage to another, with shrink percent and dry weight - grain trading and storage.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"weight_kg":10000,"moisture_from":20,"moisture_to":14}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"dried_weight_kg":9302.33,"shrink_percent":6.98}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"grain-shrink_info","summary":"Info card for Grain moisture shrink (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/stocking-rate":{"post":{"operationId":"stocking-rate","summary":"Livestock stocking rate ($0.001 per call)","description":"Animal units and stocking rate math: how many head a pasture carries from area, forage yield and utilization - grazing planning.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"area_ha":20,"forage_kg_dm_per_ha":4000,"utilization_percent":50,"intake_kg_dm_per_head_day":12,"grazing_days":120}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"head_supported":27}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"stocking-rate_info","summary":"Info card for Livestock stocking rate (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/seed-rate":{"post":{"operationId":"seed-rate","summary":"Seeding rate calculator ($0.001 per call)","description":"Seeds and kilograms of seed needed from target plant population, germination rate and thousand-seed weight - planting planning.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"target_plants_per_m2":250,"germination_percent":90,"thousand_seed_weight_g":45,"area_ha":10}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"kg_per_ha":125,"total_kg":1250}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"seed-rate_info","summary":"Info card for Seeding rate calculator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/abi-encode":{"post":{"operationId":"abi-encode","summary":"ABI encode ($0.001 per call)","description":"Encode Solidity function arguments into EVM calldata: give a signature like transfer(address,uint256) and values, get the full 0x calldata.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"signature":"transfer(address,uint256)","values":["0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","1000000000000000000"]}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"calldata":"0xa9059cbb000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa960450000000000000000000000000000000000000000000000000de0b6b3a7640000"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"abi-encode_info","summary":"Info card for ABI encode (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/abi-decode-words":{"post":{"operationId":"abi-decode-words","summary":"ABI decode by types ($0.001 per call)","description":"Decode ABI-encoded data (calldata body or return data) against a type list like address,uint256 - typed values out.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"types":"address,uint256","data":"0x000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa960450000000000000000000000000000000000000000000000000de0b6b3a7640000"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"values":["0xd8da6bf26964af9d7eed9e03e53415d37aa96045","1000000000000000000"]}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"abi-decode-words_info","summary":"Info card for ABI decode by types (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/solidity-pack-hash":{"post":{"operationId":"solidity-pack-hash","summary":"Solidity encodePacked + keccak ($0.001 per call)","description":"Compute keccak256(abi.encodePacked(...)) for address/uint/bytes/string values - commitment schemes, merkle leaves, signature digests.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"items":[{"type":"address","value":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"},{"type":"uint256","value":"42"}]}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"hash":"0x..."}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"solidity-pack-hash_info","summary":"Info card for Solidity encodePacked + keccak (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/rlp-encode":{"post":{"operationId":"rlp-encode","summary":"RLP encode ($0.001 per call)","description":"Encode values or nested lists into Ethereum RLP hex - transactions, tries, CREATE derivation.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"value":["0x636174","0x646f67"]}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"rlp":"0xc88363617483646f67"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"rlp-encode_info","summary":"Info card for RLP encode (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/rlp-decode":{"post":{"operationId":"rlp-decode","summary":"RLP decode ($0.001 per call)","description":"Decode Ethereum RLP hex into its nested structure of hex values.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"rlp":"0xc88363617483646f67"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"value":["0x636174","0x646f67"]}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"rlp-decode_info","summary":"Info card for RLP decode (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/eth-tx-decode":{"post":{"operationId":"eth-tx-decode","summary":"Raw transaction decoder ($0.001 per call)","description":"Decode a raw signed Ethereum transaction (legacy or EIP-1559 0x02) into nonce, gas, to, value, data and signature parts, plus its hash.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"raw":"0xf86c098504a817c800825208943535353535353535353535353535353535353535880de0b6b3a76400008025a028ef61340bd939bc2195fe537567866003e1a15d3c71ff63e1590620aa636276a067cbe9d8997f761aecb703304b3800ccf555c9f3dc64214b297fb1966a3b6d83"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"type":"legacy","nonce":"9","to":"0x3535353535353535353535353535353535353535","value_wei":"1000000000000000000"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"eth-tx-decode_info","summary":"Info card for Raw transaction decoder (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/signature-split":{"post":{"operationId":"signature-split","summary":"Signature splitter ($0.001 per call)","description":"Split a 65-byte Ethereum signature into r, s, v; detects EIP-155 chain ID and normalizes v to 27/28.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"signature":"0xababababababababababababababababababababababababababababababababcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd1b"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"r":"0xab...","s":"0xcd...","v":27}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"signature-split_info","summary":"Info card for Signature splitter (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/create-address":{"post":{"operationId":"create-address","summary":"CREATE contract address ($0.001 per call)","description":"Compute the contract address deployed by an account at a given nonce (CREATE opcode: keccak(rlp(sender, nonce))).","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"deployer":"0x6ac7ea33f8831ea9dcc53393aaa88b25a785dbf0","nonce":0}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"address":"0xcd234a471b72ba2f1ccf0a70fcaba648a5eecd8d"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"create-address_info","summary":"Info card for CREATE contract address (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/create2-address":{"post":{"operationId":"create2-address","summary":"CREATE2 contract address ($0.001 per call)","description":"Compute a deterministic CREATE2 contract address from deployer, salt and init-code hash (EIP-1014) - counterfactual deployments.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"deployer":"0x0000000000000000000000000000000000000000","salt":"0x0000000000000000000000000000000000000000000000000000000000000000","init_code":"0x00"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"address":"0x4d1a2e2bb4f88f0250f26ffff098b0b30b26bf38"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"create2-address_info","summary":"Info card for CREATE2 contract address (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/merkle-root":{"post":{"operationId":"merkle-root","summary":"Merkle root builder ($0.001 per call)","description":"Build a merkle root from leaf hashes with sorted-pair hashing (OpenZeppelin style) - airdrop lists, allowlists, commitments.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"leaves":["0x1111111111111111111111111111111111111111111111111111111111111111","0x2222222222222222222222222222222222222222222222222222222222222222","0x3333333333333333333333333333333333333333333333333333333333333333"]}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"root":"0x...","depth":2}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"merkle-root_info","summary":"Info card for Merkle root builder (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/merkle-verify":{"post":{"operationId":"merkle-verify","summary":"Merkle proof verifier ($0.001 per call)","description":"Verify a merkle proof (sorted-pair/OpenZeppelin style): leaf + proof path + root, true or false.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"leaf":"0x1111111111111111111111111111111111111111111111111111111111111111","proof":["0x2222222222222222222222222222222222222222222222222222222222222222"],"root":"0x0000000000000000000000000000000000000000000000000000000000000000"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"valid":false,"computed_root":"0x..."}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"merkle-verify_info","summary":"Info card for Merkle proof verifier (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/storage-slot":{"post":{"operationId":"storage-slot","summary":"Solidity storage slot ($0.001 per call)","description":"Compute storage slots for Solidity mappings and arrays: keccak(pad(key) ++ pad(slot)) - direct eth_getStorageAt reads.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"mapping_slot":0,"key":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","key_type":"address"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"slot":"0x..."}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"storage-slot_info","summary":"Info card for Solidity storage slot (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/bytes32-string":{"post":{"operationId":"bytes32-string","summary":"bytes32 ↔ string ($0.001 per call)","description":"Convert between Solidity bytes32 hex and UTF-8 strings (right-padded), both directions.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"bytes32":"0x494e4e45524e4554000000000000000000000000000000000000000000000000"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"text":"INNERNET"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"bytes32-string_info","summary":"Info card for bytes32 ↔ string (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/chain-id-lookup":{"post":{"operationId":"chain-id-lookup","summary":"EVM chain ID lookup ($0.001 per call)","description":"Look up EVM chain IDs offline: Ethereum, Base, Arbitrum, OP, Polygon, BSC, Avalanche and testnets - by ID or name.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"chain_id":8453}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"chain_id":8453,"name":"Base"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"chain-id-lookup_info","summary":"Info card for EVM chain ID lookup (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/block-time-estimate":{"post":{"operationId":"block-time-estimate","summary":"Block time estimator ($0.001 per call)","description":"Estimate the wall-clock time between two block numbers, or which block lands at a future time, per chain (Ethereum 12s, Base 2s, Arbitrum 0.25s...).","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"chain_id":8453,"from_block":22000000,"to_block":22043200}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"blocks":43200,"estimated":"1 day 0h"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"block-time-estimate_info","summary":"Info card for Block time estimator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/hd-path-parse":{"post":{"operationId":"hd-path-parse","summary":"HD derivation path parser ($0.001 per call)","description":"Parse and validate a BIP-32/44 derivation path like m/44'/60'/0'/0/0 - purpose, coin type (BTC/ETH/SOL...), account, change, index.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"path":"m/44'/60'/0'/0/0"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"valid":true,"coin":"Ethereum (60)","purpose":44}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"hd-path-parse_info","summary":"Info card for HD derivation path parser (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/address-detect":{"post":{"operationId":"address-detect","summary":"Multi-chain address detector ($0.001 per call)","description":"Detect which blockchain an address belongs to: EVM, Bitcoin (legacy/SegWit/Taproot), Solana, Tron, XRP, Litecoin, Dogecoin, Cosmos-family - with checksum verification.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"address":"TJRabPrwbZy45sbavfcjinPJC18kjpRTv8"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"detected":[{"chain":"tron","type":"base58check"}]}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"address-detect_info","summary":"Info card for Multi-chain address detector (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/ipfs-cid":{"post":{"operationId":"ipfs-cid","summary":"IPFS CID validator + converter ($0.001 per call)","description":"Validate IPFS content IDs and convert CIDv0 (Qm...) to CIDv1 (bafy...) - pinning, gateways, NFT metadata.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"cid":"QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"valid":true,"version":0,"v1":"bafybei..."}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"ipfs-cid_info","summary":"Info card for IPFS CID validator + converter (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/hex-endian-swap":{"post":{"operationId":"hex-endian-swap","summary":"Endian swapper ($0.001 per call)","description":"Reverse the byte order of a hex value - Bitcoin block hashes and little-endian protocol fields.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"hex":"0x1a2b3c4d"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"swapped":"0x4d3c2b1a"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"hex-endian-swap_info","summary":"Info card for Endian swapper (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/eip681-parse":{"post":{"operationId":"eip681-parse","summary":"Payment URI parser (EIP-681) ($0.001 per call)","description":"Parse an ethereum: payment URI into target address, chain ID, value and function parameters - wallet QR payment links.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"uri":"ethereum:0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045@8453?value=1000000000000000"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"address":"0xd8dA...","chain_id":8453,"value_wei":"1000000000000000"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"eip681-parse_info","summary":"Info card for Payment URI parser (EIP-681) (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/caip-parse":{"post":{"operationId":"caip-parse","summary":"CAIP-2/10 identifier parser ($0.001 per call)","description":"Parse and build CAIP chain and account identifiers like eip155:8453:0x... - the cross-chain standard used by WalletConnect and wallet APIs.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"id":"eip155:8453:0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"namespace":"eip155","chain_id":"8453","address":"0xd8dA...","kind":"caip10_account"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"caip-parse_info","summary":"Info card for CAIP-2/10 identifier parser (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/amm-quote":{"post":{"operationId":"amm-quote","summary":"AMM swap quote (x·y=k) ($0.001 per call)","description":"Constant-product AMM math: output amount, execution price and price impact for a swap given pool reserves and fee - Uniswap V2-style.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"reserve_in":"1000000","reserve_out":"2000000","amount_in":"10000","fee_percent":0.3}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"amount_out":"19702","price_impact_percent":1.28}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"amm-quote_info","summary":"Info card for AMM swap quote (x·y=k) (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/impermanent-loss":{"post":{"operationId":"impermanent-loss","summary":"Impermanent loss calculator ($0.001 per call)","description":"IL for a 50/50 liquidity position from the price-change ratio - what LPs lose versus holding.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"price_ratio":2}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"impermanent_loss_percent":-5.72}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"impermanent-loss_info","summary":"Info card for Impermanent loss calculator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/apr-apy-convert":{"post":{"operationId":"apr-apy-convert","summary":"APR ↔ APY converter ($0.001 per call)","description":"Convert between APR and APY at any compounding frequency (daily, weekly, continuous) - staking, lending and vault yields.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"apr_percent":10,"compounds_per_year":365}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"apy_percent":10.52}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"apr-apy-convert_info","summary":"Info card for APR ↔ APY converter (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/slippage-calc":{"post":{"operationId":"slippage-calc","summary":"Slippage calculator ($0.001 per call)","description":"Minimum received and slippage bounds for a trade: expected amount ± slippage tolerance in percent or bps.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"expected_out":1000,"slippage_percent":0.5}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"min_received":995,"max_slippage_lost":5}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"slippage-calc_info","summary":"Info card for Slippage calculator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/liquidation-price":{"post":{"operationId":"liquidation-price","summary":"Liquidation price calculator ($0.001 per call)","description":"The collateral price at which a loan gets liquidated, from collateral amount, debt and liquidation threshold - DeFi borrowing risk.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"collateral_amount":10,"debt_usd":15000,"liquidation_threshold_percent":80}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"liquidation_price":1875}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"liquidation-price_info","summary":"Info card for Liquidation price calculator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/dca-average":{"post":{"operationId":"dca-average","summary":"DCA cost basis calculator ($0.001 per call)","description":"Average cost basis, total units and P/L from a series of periodic buys at different prices - dollar-cost-averaging tracker.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"buys":[{"amount_usd":100,"price":50000},{"amount_usd":100,"price":40000}],"current_price":45000}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"avg_cost":44444.44,"units":0.0045,"pnl_percent":1.25}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"dca-average_info","summary":"Info card for DCA cost basis calculator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/csv-to-json":{"post":{"operationId":"csv-to-json","summary":"CSV to JSON ($0.001 per call)","description":"Parse CSV (or TSV) text into a JSON array of row objects, with headers, type inference and delimiter detection.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"csv":"name,age,city\nAda,36,London\nAlan,41,Manchester"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"rows":[{"name":"Ada","age":36,"city":"London"}],"count":2}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"csv-to-json_info","summary":"Info card for CSV to JSON (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/json-to-csv":{"post":{"operationId":"json-to-csv","summary":"JSON to CSV ($0.001 per call)","description":"Convert a JSON array of objects into CSV text, with column ordering and custom delimiter.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"rows":[{"name":"Ada","age":36},{"name":"Alan","age":41}]}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"csv":"name,age\r\nAda,36\r\nAlan,41"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"json-to-csv_info","summary":"Info card for JSON to CSV (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/ndjson-convert":{"post":{"operationId":"ndjson-convert","summary":"NDJSON ↔ JSON array ($0.001 per call)","description":"Convert between newline-delimited JSON (JSONL/NDJSON) and a JSON array, both directions - log files and streaming exports.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"ndjson":"{\"a\":1}\n{\"a\":2}\n{\"a\":3}"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"array":[{"a":1},{"a":2},{"a":3}]}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"ndjson-convert_info","summary":"Info card for NDJSON ↔ JSON array (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/markdown-table":{"post":{"operationId":"markdown-table","summary":"JSON to Markdown table ($0.001 per call)","description":"Turn a JSON array of objects into a formatted Markdown table - reports, GitHub issues, agent summaries.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"rows":[{"machine":"render","price":"$0.01"},{"machine":"qr","price":"$0.003"}]}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"markdown":"| machine | price |\n| --- | --- |\n| render | $0.01 |"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"markdown-table_info","summary":"Info card for JSON to Markdown table (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/html-strip":{"post":{"operationId":"html-strip","summary":"Strip HTML tags ($0.001 per call)","description":"Remove all HTML tags from markup and decode entities, leaving readable plain text with preserved line breaks.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"html":"<h1>Grid</h1><p>Machines &amp; slots<br>work all night.</p>"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"text":"Grid\nMachines & slots\nwork all night."}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"html-strip_info","summary":"Info card for Strip HTML tags (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/word-wrap":{"post":{"operationId":"word-wrap","summary":"Word wrap ($0.001 per call)","description":"Wrap text to a maximum line width at word boundaries - terminal output, emails, fixed-width formats.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"text":"The utility grid hums quietly while autonomous agents pay per call in stablecoins.","width":30}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"wrapped":"The utility grid hums quietly\nwhile autonomous agents pay\nper call in stablecoins."}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"word-wrap_info","summary":"Info card for Word wrap (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/cron-next":{"post":{"operationId":"cron-next","summary":"Cron next runs ($0.001 per call)","description":"Parse a 5-field cron expression and return the next N run times in UTC - schedule debugging for agents and ops.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"cron":"30 9 * * 1-5","count":3}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"next_runs":["2026-07-21T09:30:00Z","2026-07-22T09:30:00Z"],"description":"at 09:30 UTC on Mon-Fri"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"cron-next_info","summary":"Info card for Cron next runs (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/cidr-calc":{"post":{"operationId":"cidr-calc","summary":"CIDR subnet calculator ($0.001 per call)","description":"Subnet math for IPv4 CIDR blocks: network, broadcast, usable host range, mask, host count - and whether an IP is inside.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"cidr":"192.168.4.0/22","contains":"192.168.7.200"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"network":"192.168.4.0","broadcast":"192.168.7.255","hosts":1022,"contains_ip":true}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"cidr-calc_info","summary":"Info card for CIDR subnet calculator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/ip-convert":{"post":{"operationId":"ip-convert","summary":"IP address converter ($0.001 per call)","description":"Convert IPv4 addresses between dotted, integer, hex and binary forms, both directions.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"ip":"192.168.1.1"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"integer":3232235777,"hex":"0xc0a80101"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"ip-convert_info","summary":"Info card for IP address converter (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/mime-lookup":{"post":{"operationId":"mime-lookup","summary":"MIME type lookup ($0.001 per call)","description":"Look up the MIME content type for a file extension, or the common extension for a MIME type - uploads, headers, storage metadata.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"extension":"webp"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"mime":"image/webp"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"mime-lookup_info","summary":"Info card for MIME type lookup (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/http-status":{"post":{"operationId":"http-status","summary":"HTTP status code lookup ($0.001 per call)","description":"Explain any HTTP status code: name, class, and what it means - including 402 Payment Required, the x402 heartbeat.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"code":402}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"code":402,"name":"Payment Required","class":"4xx client error"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"http-status_info","summary":"Info card for HTTP status code lookup (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/idn-convert":{"post":{"operationId":"idn-convert","summary":"IDN / punycode domain converter ($0.001 per call)","description":"Convert internationalized domain names between Unicode and punycode (xn--) forms, both directions - non-Latin domains.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"domain":"münchen.de"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"ascii":"xn--mnchen-3ya.de","unicode":"münchen.de"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"idn-convert_info","summary":"Info card for IDN / punycode domain converter (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/user-agent-parse":{"post":{"operationId":"user-agent-parse","summary":"User-agent parser ($0.001 per call)","description":"Parse an HTTP User-Agent string into browser, version, OS and device class; flags known bots and crawlers.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"browser":"Chrome","version":"126","os":"Windows 10/11","bot":false}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"user-agent-parse_info","summary":"Info card for User-agent parser (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/sunrise-sunset":{"post":{"operationId":"sunrise-sunset","summary":"Sunrise / sunset calculator ($0.001 per call)","description":"Compute sunrise, sunset, solar noon and day length for any latitude, longitude and date - pure astronomy, no API.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"lat":31.5204,"lon":74.3587,"date":"2026-07-21"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"sunrise_utc":"00:14 UTC","sunset_utc":"14:07 UTC","day_length_hours":13.9}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"sunrise-sunset_info","summary":"Info card for Sunrise / sunset calculator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/moon-phase":{"post":{"operationId":"moon-phase","summary":"Moon phase ($0.001 per call)","description":"The moon phase for any date: phase name, illumination percent and age in days - pure astronomy.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"date":"2026-07-21"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"phase":"First Quarter","illumination_percent":45.3,"age_days":7.2}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"moon-phase_info","summary":"Info card for Moon phase (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/hijri-convert":{"post":{"operationId":"hijri-convert","summary":"Hijri ↔ Gregorian date converter ($0.001 per call)","description":"Convert dates between the Islamic Hijri calendar and Gregorian, both directions - tabular algorithm, ±1 day of official moon sightings.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"gregorian":"2026-07-21"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"hijri":"6 Safar 1448","hijri_year":1448}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"hijri-convert_info","summary":"Info card for Hijri ↔ Gregorian date converter (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/combinatorics":{"post":{"operationId":"combinatorics","summary":"Combinations and permutations ($0.001 per call)","description":"Exact nCr, nPr and factorials with BigInt precision - probability, sampling, lottery odds.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"n":52,"r":5,"operation":"combinations"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":"2598960"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"combinatorics_info","summary":"Info card for Combinations and permutations (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/gcd-lcm":{"post":{"operationId":"gcd-lcm","summary":"GCD and LCM ($0.001 per call)","description":"Greatest common divisor and least common multiple of a list of integers, exact BigInt math.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"numbers":[12,18,24]}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"gcd":"6","lcm":"72"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"gcd-lcm_info","summary":"Info card for GCD and LCM (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/quadratic-solver":{"post":{"operationId":"quadratic-solver","summary":"Quadratic equation solver ($0.001 per call)","description":"Solve ax² + bx + c = 0: real or complex roots, discriminant and vertex.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"a":1,"b":-3,"c":2}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"roots":[2,1],"discriminant":1}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"quadratic-solver_info","summary":"Info card for Quadratic equation solver (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/triangle-solver":{"post":{"operationId":"triangle-solver","summary":"Triangle solver ($0.001 per call)","description":"Solve any triangle from SSS or SAS or ASA: all sides, all angles, area and perimeter - law of sines and cosines.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"side_a":7,"side_b":10,"side_c":5}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"angles":{"A":40.5,"B":111.8,"C":27.7},"area":16.25}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"triangle-solver_info","summary":"Info card for Triangle solver (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/ohms-law":{"post":{"operationId":"ohms-law","summary":"Ohm's law + power calculator ($0.001 per call)","description":"Give any two of voltage, current, resistance, power - get the other two (V=IR, P=VI). Electronics and electrical work.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"voltage":12,"resistance":4}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"current":3,"power":36}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"ohms-law_info","summary":"Info card for Ohm's law + power calculator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/fuel-economy":{"post":{"operationId":"fuel-economy","summary":"Fuel economy converter ($0.001 per call)","description":"Convert between MPG (US and imperial), L/100km and km/L - the inverse-scale conversion everyone gets wrong.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"value":8.5,"from":"l_100km","to":"mpg_us"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":27.67}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"fuel-economy_info","summary":"Info card for Fuel economy converter (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/bmi-calc":{"post":{"operationId":"bmi-calc","summary":"BMI calculator ($0.001 per call)","description":"Body mass index from weight and height (metric or imperial) with WHO category.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"weight_kg":70,"height_cm":175}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"bmi":22.9,"category":"normal weight"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"bmi-calc_info","summary":"Info card for BMI calculator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/bmr-tdee":{"post":{"operationId":"bmr-tdee","summary":"BMR and TDEE calculator ($0.001 per call)","description":"Basal metabolic rate (Mifflin-St Jeor) and total daily energy expenditure by activity level - nutrition planning.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"weight_kg":70,"height_cm":175,"age":30,"sex":"male","activity":"moderate"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"bmr":1649,"tdee":2556}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"bmr-tdee_info","summary":"Info card for BMR and TDEE calculator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/cooking-convert":{"post":{"operationId":"cooking-convert","summary":"Cooking measurement converter ($0.001 per call)","description":"Convert cooking measures between cups, tablespoons, teaspoons, ml and grams for common ingredients (flour, sugar, butter, rice...).","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"value":2,"from":"cup","to":"g","ingredient":"flour"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"result":250.8}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"cooking-convert_info","summary":"Info card for Cooking measurement converter (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/position-size":{"post":{"operationId":"position-size","summary":"Position size calculator ($0.001 per call)","description":"Risk-based position sizing: account size, risk percent, entry and stop-loss - how many units to buy. Trading risk management.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"account":10000,"risk_percent":1,"entry":50,"stop_loss":47}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"units":33.33,"position_value":1666.67,"risk_amount":100}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"position-size_info","summary":"Info card for Position size calculator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/pnl-calc":{"post":{"operationId":"pnl-calc","summary":"PnL calculator (spot + leverage) ($0.001 per call)","description":"Profit and loss for a long or short position with optional leverage: absolute PnL, return percent, ROE and liquidation-adjacent metrics.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"side":"long","entry":100,"exit":112,"size_units":10,"leverage":3}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"pnl":120,"return_percent":12,"roe_percent":36}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"pnl-calc_info","summary":"Info card for PnL calculator (spot + leverage) (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/basis-points":{"post":{"operationId":"basis-points","summary":"Basis points converter ($0.001 per call)","description":"Convert between basis points, percent and decimal, and apply bps to an amount - fees, spreads, rate moves.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"bps":250}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"percent":2.5,"decimal":0.025}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"basis-points_info","summary":"Info card for Basis points converter (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/uniswap-v3-price":{"post":{"operationId":"uniswap-v3-price","summary":"Uniswap V3 price ↔ tick ↔ sqrtPriceX96 ($0.001 per call)","description":"Convert between Uniswap V3 sqrtPriceX96, tick and human token price, honoring token decimals - the V3 math everyone re-derives.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"sqrt_price_x96":"1961950050856814934708385399","decimals0":6,"decimals1":18}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"price_token1_per_token0":0.000613,"tick":-197760}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"uniswap-v3-price_info","summary":"Info card for Uniswap V3 price ↔ tick ↔ sqrtPriceX96 (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/allocation-split":{"post":{"operationId":"allocation-split","summary":"Exact money splitter ($0.001 per call)","description":"Split an amount by percentages or ratios with largest-remainder rounding so cents always sum exactly - invoices, revenue shares, bills.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"amount":100,"ratios":[1,1,1]}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"parts":[33.34,33.33,33.33],"sums_exactly":true}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"allocation-split_info","summary":"Info card for Exact money splitter (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/runway-calc":{"post":{"operationId":"runway-calc","summary":"Startup runway calculator ($0.001 per call)","description":"Months of runway from cash and burn rate, with optional revenue growth eating into net burn - when does the money run out.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"cash":500000,"monthly_burn":40000,"monthly_revenue":10000,"revenue_growth_percent":5}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"runway_months":16.2,"out_of_cash":"2027-11"}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"runway-calc_info","summary":"Info card for Startup runway calculator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/saas-metrics":{"post":{"operationId":"saas-metrics","summary":"SaaS metrics calculator ($0.001 per call)","description":"MRR, ARR, churn rate, net revenue retention and LTV from raw subscription numbers - the investor dashboard math.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"customers":200,"arpu":49,"monthly_churn_percent":3,"cac":300}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"mrr":9800,"arr":117600,"ltv":1633,"ltv_cac_ratio":5.4}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"saas-metrics_info","summary":"Info card for SaaS metrics calculator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/fifo-cogs":{"post":{"operationId":"fifo-cogs","summary":"FIFO inventory costing ($0.001 per call)","description":"Cost of goods sold and remaining inventory value using FIFO from purchase lots and a sale quantity - accounting-grade.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"lots":[{"qty":100,"unit_cost":10},{"qty":100,"unit_cost":12}],"sell_qty":150}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"cogs":1600,"remaining_value":600,"avg_cost_sold":10.67}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"fifo-cogs_info","summary":"Info card for FIFO inventory costing (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/dice-roll":{"post":{"operationId":"dice-roll","summary":"Dice roller (RPG notation) ($0.001 per call)","description":"Roll dice in standard notation like 3d6+2 or 2d20 - individual rolls, total, min/max - games and simulations.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"notation":"3d6+2"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"rolls":[4,2,6],"modifier":2,"total":14}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"dice-roll_info","summary":"Info card for Dice roller (RPG notation) (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/password-generate":{"post":{"operationId":"password-generate","summary":"Password generator ($0.001 per call)","description":"Generate cryptographically secure random passwords with length and character-class options, ambiguous-character exclusion, and entropy report.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"length":16,"symbols":true}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"password":"k7#mQ2...","entropy_bits":98}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"password-generate_info","summary":"Info card for Password generator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/lorem-ipsum":{"post":{"operationId":"lorem-ipsum","summary":"Lorem ipsum generator ($0.001 per call)","description":"Generate placeholder lorem ipsum text by word, sentence or paragraph count - deterministic with a seed if you need repeatability.","security":[{"x402":[]}],"x-x402":{"price":"$0.001","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"paragraphs":1,"sentences_per_paragraph":2}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","example":{"text":"Lorem ipsum dolor sit amet..."}}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"lorem-ipsum_info","summary":"Info card for Lorem ipsum generator (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/ask-fast":{"post":{"operationId":"ask-fast","summary":"Ask (fast) ($0.01 per call)","description":"One-shot question to a fast, cheap frontier model. Great for quick reasoning, extraction, classification. Powered by openai/gpt-4o-mini. Max 800 output tokens.","security":[{"x402":[]}],"x-x402":{"price":"$0.01","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string"},"text":{"type":"string"},"target_language":{"type":"string"},"fields":{"type":"array"},"max_tokens":{"type":"number"}}},"example":{"prompt":"In one sentence, what is an autonomous agent?"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"ask-fast_info","summary":"Info card for Ask (fast) (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/ask-smart":{"post":{"operationId":"ask-smart","summary":"Ask (smart) ($0.03 per call)","description":"One-shot question to a strong frontier reasoning model (latest Claude Sonnet). For harder analysis, writing, and code. Powered by anthropic/claude-sonnet-4.5. Max 1200 output tokens.","security":[{"x402":[]}],"x-x402":{"price":"$0.03","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string"},"text":{"type":"string"},"target_language":{"type":"string"},"fields":{"type":"array"},"max_tokens":{"type":"number"}}},"example":{"prompt":"In one sentence, what is an autonomous agent?"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"ask-smart_info","summary":"Info card for Ask (smart) (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/ask-cheap":{"post":{"operationId":"ask-cheap","summary":"Ask (cheapest) ($0.003 per call)","description":"Rock-bottom-cost inference for high-volume, simple tasks. Powered by meta-llama/llama-3.3-70b-instruct. Max 600 output tokens.","security":[{"x402":[]}],"x-x402":{"price":"$0.003","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string"},"text":{"type":"string"},"target_language":{"type":"string"},"fields":{"type":"array"},"max_tokens":{"type":"number"}}},"example":{"prompt":"In one sentence, what is an autonomous agent?"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"ask-cheap_info","summary":"Info card for Ask (cheapest) (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/summarize":{"post":{"operationId":"summarize","summary":"Summarize ($0.01 per call)","description":"Condense a block of text into a tight summary. Powered by openai/gpt-4o-mini. Max 500 output tokens.","security":[{"x402":[]}],"x-x402":{"price":"$0.01","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string"},"text":{"type":"string"},"target_language":{"type":"string"},"fields":{"type":"array"},"max_tokens":{"type":"number"}}},"example":{"prompt":"In one sentence, what is an autonomous agent?"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"summarize_info","summary":"Info card for Summarize (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/translate":{"post":{"operationId":"translate","summary":"Translate ($0.01 per call)","description":"Translate text to a target language. Powered by openai/gpt-4o-mini. Max 900 output tokens.","security":[{"x402":[]}],"x-x402":{"price":"$0.01","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string"},"text":{"type":"string"},"target_language":{"type":"string"},"fields":{"type":"array"},"max_tokens":{"type":"number"}}},"example":{"text":"Hello, world","target_language":"French"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"translate_info","summary":"Info card for Translate (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/extract-fields":{"post":{"operationId":"extract-fields","summary":"Extract fields (AI) ($0.012 per call)","description":"Pull structured JSON from messy text given a list of fields. Powered by openai/gpt-4o-mini. Max 700 output tokens.","security":[{"x402":[]}],"x-x402":{"price":"$0.012","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string"},"text":{"type":"string"},"target_language":{"type":"string"},"fields":{"type":"array"},"max_tokens":{"type":"number"}}},"example":{"text":"Ada Lovelace, born 1815 in London","fields":["name","birth_year","city"]}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"extract-fields_info","summary":"Info card for Extract fields (AI) (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/run-model":{"post":{"operationId":"run-model","summary":"Run any model ($0.05 per call)","description":"Call ANY current model on OpenRouter (Claude, GPT, Gemini, Grok, DeepSeek, Llama, Kimi, Mistral - 300+). Priced per-token with margin, always up to date. GET /machines/run-model/models for the live list. Body: {model, prompt|messages, max_tokens?}.","security":[{"x402":[]}],"x-x402":{"price":"$0.05","network":"base","accepts":["USDC","EURC"],"payTo":"0xDeA94ef76afa86bf1638B645F76108dF65890c0b"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["model"],"properties":{"model":{"type":"string","description":"OpenRouter model id, e.g. anthropic/claude-sonnet-4.5 or openai/gpt-4o"},"prompt":{"type":"string"},"messages":{"type":"array"},"max_tokens":{"type":"number"},"temperature":{"type":"number"},"system":{"type":"string"}}},"example":{"model":"openai/gpt-4o-mini","prompt":"In one sentence, what is x402?","max_tokens":200}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad request"},"402":{"description":"Payment required — an x402 signed payment challenge is returned; pay and retry."}}},"get":{"operationId":"run-model_info","summary":"Info card for Run any model (free)","security":[],"responses":{"200":{"description":"Machine metadata (free)"}}}},"/machines/verify-receipt":{"post":{"operationId":"verify-receipt","summary":"Verify a notary receipt (free)","description":"Check an Ed25519 notary receipt's signature and optionally that supplied data matches its hash. Free, forever.","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"receipt":{"type":"object"},"data":{"type":"string"}},"required":["receipt"]}}}},"responses":{"200":{"description":"Verification result"}}}},"/catalog":{"get":{"operationId":"catalog","summary":"Full machine catalog (free)","security":[],"responses":{"200":{"description":"Catalog JSON"}}}},"/llms.txt":{"get":{"operationId":"llms_txt","summary":"Agent-readable guide (free)","security":[],"responses":{"200":{"description":"Plain text"}}}},"/openapi.json":{"get":{"operationId":"openapi","summary":"This OpenAPI document (free)","security":[],"responses":{"200":{"description":"OpenAPI JSON"}}}},"/healthz":{"get":{"operationId":"healthz","summary":"Health check (free)","security":[],"responses":{"200":{"description":"OK"}}}}}}