{"openapi":"3.1.1","info":{"title":"Duo Data Utilities: IBAN, ISIN, VAT and Tax ID, Barcode, Timezone, Geo APIs","version":"1.0.0","summary":"33 pay-per-call data utilities, $0.05 each, paid over x402 in USDC on Base.","description":"33 independent pay-per-call data utilities: identifiers and check digits, dates and zones, text and Unicode, encodings and digests, geodesy, blockchain primitives, static reference tables and number arithmetic. Every route is a GET, costs $0.05 flat, needs no account and no API key, and returns the same JSON envelope.\n\n## How payment works (x402)\nEvery route is paid per call over x402 v2: HTTP 402 plus USDC on Base (CAIP-2 eip155:8453). An unpaid request returns 402 with a base64 `PAYMENT-REQUIRED` header describing the price. Sign an EIP-3009 authorization for that amount and retry the same request with a base64 `PAYMENT-SIGNATURE` header; the 200 response carries a base64 `PAYMENT-RESPONSE` settlement receipt.\n\n`HEAD` on any route returns the 402 challenge headers without a body. Unknown query parameters are ignored. Enum values are lowercased before matching.\n\n## Disclaimer\nFactual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms\n\n## Operator and legal\nDuo Leads. Contact: hello@duoleads.com. [Terms of service](https://api.duoleads.com/terms) (machine-readable version and hash: https://api.duoleads.com/terms.json), [privacy notice](https://api.duoleads.com/privacy), [documentation](https://api.duoleads.com/docs).","x-guidance":"Every operation is a GET with query parameters and costs $0.05 (x402 v2, USDC on Base). Call it without payment to receive a 402 with a PAYMENT-REQUIRED header, sign an EIP-3009 authorization for accepts[0] and retry with PAYMENT-SIGNATURE. Each operation's parameters carry a working example; malformed input is a 400 and is never charged.","termsOfService":"https://api.duoleads.com/terms","contact":{"name":"Duo Leads","url":"https://api.duoleads.com","email":"hello@duoleads.com"},"license":{"name":"Output licence: Terms of Service clause 5","url":"https://api.duoleads.com/terms"}},"servers":[{"url":"https://api.duoleads.com","description":"Production"}],"tags":[{"name":"deterministic","description":"The same query always returns the same data."},{"name":"no-api-key","description":"No upstream API key is involved; the answer is computed locally."},{"name":"id","description":"Identifiers and check digits"},{"name":"identifiers","description":"Routes tagged identifiers"},{"name":"validation","description":"Routes tagged validation"},{"name":"checksum","description":"Routes tagged checksum"},{"name":"barcodes","description":"Routes tagged barcodes"},{"name":"finance","description":"Routes tagged finance"},{"name":"banking","description":"Routes tagged banking"},{"name":"time","description":"Routes tagged time"},{"name":"timezones","description":"Routes tagged timezones"},{"name":"dst","description":"Routes tagged dst"},{"name":"calendar","description":"Routes tagged calendar"},{"name":"business-days","description":"Routes tagged business-days"},{"name":"recurrence","description":"Routes tagged recurrence"},{"name":"text","description":"Routes tagged text"},{"name":"unicode","description":"Routes tagged unicode"},{"name":"slug","description":"Routes tagged slug"},{"name":"transliteration","description":"Routes tagged transliteration"},{"name":"security","description":"Routes tagged security"},{"name":"similarity","description":"Routes tagged similarity"},{"name":"phonetic","description":"Routes tagged phonetic"},{"name":"code","description":"Encoding, parsing and digests"},{"name":"url","description":"Routes tagged url"},{"name":"domains","description":"Routes tagged domains"},{"name":"psl","description":"Routes tagged psl"},{"name":"idna","description":"Routes tagged idna"},{"name":"punycode","description":"Routes tagged punycode"},{"name":"versions","description":"Routes tagged versions"},{"name":"semver","description":"Routes tagged semver"},{"name":"crypto","description":"Routes tagged crypto"},{"name":"hashing","description":"Routes tagged hashing"},{"name":"jwt","description":"Routes tagged jwt"},{"name":"geo","description":"Geodesy and geometry"},{"name":"geohash","description":"Routes tagged geohash"},{"name":"pluscode","description":"Routes tagged pluscode"},{"name":"geojson","description":"Routes tagged geojson"},{"name":"geometry","description":"Routes tagged geometry"},{"name":"geodesy","description":"Routes tagged geodesy"},{"name":"distance","description":"Routes tagged distance"},{"name":"chain","description":"Blockchain primitives (no RPC)"},{"name":"blockchain","description":"Routes tagged blockchain"},{"name":"addresses","description":"Routes tagged addresses"},{"name":"solidity","description":"Routes tagged solidity"},{"name":"keccak","description":"Routes tagged keccak"},{"name":"ref","description":"Static reference tables"},{"name":"eu","description":"Routes tagged eu"},{"name":"statistics","description":"Routes tagged statistics"},{"name":"regions","description":"Routes tagged regions"},{"name":"travel","description":"Routes tagged travel"},{"name":"airports","description":"Routes tagged airports"},{"name":"currency","description":"Routes tagged currency"},{"name":"iso-4217","description":"Routes tagged iso-4217"},{"name":"countries","description":"Routes tagged countries"},{"name":"iso-3166","description":"Routes tagged iso-3166"},{"name":"num","description":"Numbers and money arithmetic"},{"name":"numbers","description":"Routes tagged numbers"},{"name":"conversion","description":"Routes tagged conversion"},{"name":"localisation","description":"Routes tagged localisation"},{"name":"money","description":"Routes tagged money"},{"name":"allocation","description":"Routes tagged allocation"}],"externalDocs":{"description":"Human-readable documentation for every route","url":"https://api.duoleads.com/docs"},"paths":{}}