Duo Data Utilities API

Data utilities API providing IBAN, ISIN, VAT, Tax ID, Barcode, Timezone, Geo and other identifier lookups via GET requests.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/duoleads-com:duo-data-utilities-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

duoleads-com-openapi.json Raw ↑
{"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":{}}