{"openapi":"3.1.0","info":{"title":"Ambolt data tools","version":"0.1.1","description":"Pay-per-call data endpoints using the x402 protocol (USDC on Base, Polygon and Solana). Failed calls are not charged.","x-guidance":"Call GET /v1/<tool> with the documented query parameters. Without payment the response is 402 with the price and payment requirements; an x402 client pays in USDC and retries. Add free=1 for one free call per tool and IP per day. Company, tender, document, rates, on-chain and web tools; every response carries source and date. The same tools are available as MCP tools at /mcp (free, 30 requests a minute) and as Apify Actors. Company-level data only: no personal data.","contact":{"email":"hello@ambolt.dev","url":"https://ambolt.dev"}},"servers":[{"url":"https://api.ambolt.dev"}],"paths":{"/v1/base-erc20-balance":{"get":{"operationId":"base_erc20_balance","summary":"Base ERC-20 Balance: Token Balance of Any Wallet on Base","description":"ERC-20 token balance of a wallet address on Base mainnet (USDC, WETH, any token): raw units, decimals, symbol and formatted amount, read live via eth_call.","tags":["Base"],"parameters":[{"name":"address","in":"query","required":true,"schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Wallet address."},"description":"Wallet address."},{"name":"token","in":"query","required":true,"schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"ERC-20 token contract address on Base."},"description":"ERC-20 token contract address on Base."},{"name":"free","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Set to 1 for one free call per tool and IP address per day (no payment)."}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result (JSON). Every result names its source and the time it was read.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input; not charged."},"402":{"description":"Payment required: 0.003 USD in USDC (x402 v2)."}}}},"/v1/base-token-facts":{"get":{"operationId":"base_token_facts","summary":"Base Token Facts: Owner, Proxy, Pause and Mint Powers","description":"Verifiable on-chain facts about an ERC-20 token on Base: name, symbol, supply, whether the contract has an owner (and whether it was renounced), whether it is an upgradeable proxy and who administers it, whether it is paused, and which privileged functions (mint, burn, pause, blacklist, fee setting, upgrade) appear in its bytecode. Facts only: no verdict and no recommendation.","tags":["Base"],"parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"ERC-20 token contract address on Base."},"description":"ERC-20 token contract address on Base."},{"name":"free","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Set to 1 for one free call per tool and IP address per day (no payment)."}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result (JSON). Every result names its source and the time it was read.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input; not charged."},"402":{"description":"Payment required: 0.01 USD in USDC (x402 v2)."}}}},"/v1/base-token-info":{"get":{"operationId":"base_token_info","summary":"Base Token Info: Name, Symbol, Decimals, Total Supply","description":"Basic facts about an ERC-20 token contract on Base mainnet: name, symbol, decimals and total supply (raw and formatted), read live via eth_call. Facts only, no price or recommendation.","tags":["Base"],"parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"ERC-20 token contract address on Base."},"description":"ERC-20 token contract address on Base."},{"name":"free","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Set to 1 for one free call per tool and IP address per day (no payment)."}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result (JSON). Every result names its source and the time it was read.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input; not charged."},"402":{"description":"Payment required: 0.003 USD in USDC (x402 v2)."}}}},"/v1/base-transaction":{"get":{"operationId":"base_transaction","summary":"Base Transaction Lookup: Status, Fee and Token Transfers","description":"Look up a transaction on Base by hash: success or revert, block and time, sender, recipient, ETH value, gas and fee, the called method selector, and decoded ERC-20 transfers with token symbols. Read live from the chain; facts only.","tags":["Base"],"parameters":[{"name":"hash","in":"query","required":true,"schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$","description":"Transaction hash on Base."},"description":"Transaction hash on Base."},{"name":"free","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Set to 1 for one free call per tool and IP address per day (no payment)."}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result (JSON). Every result names its source and the time it was read.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input; not charged."},"402":{"description":"Payment required: 0.005 USD in USDC (x402 v2)."}}}},"/v1/base-wallet-balances":{"get":{"operationId":"base_wallet_balances","summary":"Base Wallet Balances: ETH and Major Token Holdings","description":"ETH balance and balances of major tokens (USDC, WETH, cbBTC, DAI, USDbC, cbETH, AERO) for any address on Base, plus any extra token contracts you list. Read live from the chain. Shows only non-zero balances; there is no price data and no recommendation.","tags":["Base"],"parameters":[{"name":"address","in":"query","required":true,"schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Wallet address on Base."},"description":"Wallet address on Base."},{"name":"extraTokens","in":"query","required":false,"schema":{"type":"array","maxItems":20,"items":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"description":"Additional ERC-20 contract addresses to check (up to 20)."},"description":"Additional ERC-20 contract addresses to check (up to 20)."},{"name":"free","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Set to 1 for one free call per tool and IP address per day (no payment)."}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result (JSON). Every result names its source and the time it was read.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input; not charged."},"402":{"description":"Payment required: 0.005 USD in USDC (x402 v2)."}}}},"/v1/disposable-email-check":{"get":{"operationId":"disposable_email_check","summary":"Disposable Email Checker: Syntax, MX and Role Addresses","description":"Fast email address check without sending anything: syntax, domain MX records, disposable/temporary-mail domain (9,000+ listed), role address (info@, admin@) and likely typo of a popular provider. Does not confirm that a mailbox exists.","tags":["email validation"],"parameters":[{"name":"email","in":"query","required":true,"schema":{"type":"string","maxLength":254,"description":"Email address to check."},"description":"Email address to check."},{"name":"free","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Set to 1 for one free call per tool and IP address per day (no payment)."}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result (JSON). Every result names its source and the time it was read.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input; not charged."},"402":{"description":"Payment required: 0.003 USD in USDC (x402 v2)."}}}},"/v1/dk-co2-intensity":{"get":{"operationId":"dk_co2_intensity","summary":"Danish Electricity CO2 Intensity: Latest and Last 24 Hours","description":"CO2 emissions per kWh of electricity consumed in Denmark (DK1 West, DK2 East), latest 5-minute value plus 24-hour average, cleanest and dirtiest times.","tags":["CO2"],"parameters":[{"name":"area","in":"query","required":false,"schema":{"type":"string","enum":["DK1","DK2"],"default":"DK1","description":"Price area."},"description":"Price area."},{"name":"free","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Set to 1 for one free call per tool and IP address per day (no payment)."}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result (JSON). Every result names its source and the time it was read.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input; not charged."},"402":{"description":"Payment required: 0.005 USD in USDC (x402 v2)."}}}},"/v1/dk-electricity-prices":{"get":{"operationId":"dk_electricity_prices","summary":"Danish Electricity Day-Ahead Prices (DK1, DK2, NO2, SE3, SE4)","description":"Day-ahead electricity spot prices for one day and bidding area, in EUR and DKK per MWh, quarter-hourly or hourly, with min/max/average and the cheapest hours. Tomorrow's prices are normally published around 13:00 CET.","tags":["electricity price"],"parameters":[{"name":"area","in":"query","required":false,"schema":{"type":"string","enum":["DK1","DK2","DE","NO2","SE3","SE4"],"default":"DK1","description":"Bidding area."},"description":"Bidding area."},{"name":"date","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Danish local date, YYYY-MM-DD. Default: today."},"description":"Danish local date, YYYY-MM-DD. Default: today."},{"name":"resolution","in":"query","required":false,"schema":{"type":"string","enum":["hourly","quarter"],"default":"hourly","description":"Hourly averages or the native 15-minute prices."},"description":"Hourly averages or the native 15-minute prices."},{"name":"cheapestHours","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":24,"default":3,"description":"How many cheapest hourly slots to list."},"description":"How many cheapest hourly slots to list."},{"name":"free","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Set to 1 for one free call per tool and IP address per day (no payment)."}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result (JSON). Every result names its source and the time it was read.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input; not charged."},"402":{"description":"Payment required: 0.01 USD in USDC (x402 v2)."}}}},"/v1/dns-lookup":{"get":{"operationId":"dns_lookup","summary":"DNS Lookup: A, MX, TXT, NS Records with SPF and DMARC Check","description":"Resolve public DNS records for a domain (A, AAAA, MX, TXT, NS, CNAME) and report whether SPF and DMARC records are present, with their policies. DNS queries only; no connection is made to the domain itself.","tags":["DNS"],"parameters":[{"name":"domain","in":"query","required":true,"schema":{"type":"string","maxLength":253,"pattern":"^(?=.{1,253}$)([A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?\\.)+[A-Za-z]{2,63}$","description":"Domain name, e.g. example.com."},"description":"Domain name, e.g. example.com."},{"name":"types","in":"query","required":false,"schema":{"type":"array","maxItems":6,"items":{"type":"string","enum":["A","AAAA","MX","TXT","NS","CNAME"]},"description":"Record types. Default: all."},"description":"Record types. Default: all."},{"name":"free","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Set to 1 for one free call per tool and IP address per day (no payment)."}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result (JSON). Every result names its source and the time it was read.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input; not charged."},"402":{"description":"Payment required: 0.003 USD in USDC (x402 v2)."}}}},"/v1/doi-lookup":{"get":{"operationId":"doi_lookup","summary":"DOI Lookup: Paper Metadata and Citation Counts","description":"Scholarly metadata by DOI, or a best-match search by citation text: title, authors, journal, year, publisher, citation count, licence links and URL. Bibliographic facts only.","tags":["DOI"],"parameters":[{"name":"doi","in":"query","required":false,"schema":{"type":"string","maxLength":200,"pattern":"^10\\.\\d{4,9}/\\S+$","description":"DOI, e.g. 10.1038/nature14539."},"description":"DOI, e.g. 10.1038/nature14539."},{"name":"query","in":"query","required":false,"schema":{"type":"string","maxLength":300,"description":"Citation or title text to search when no DOI is known."},"description":"Citation or title text to search when no DOI is known."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":20,"default":5,"description":"Maximum search results."},"description":"Maximum search results."},{"name":"free","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Set to 1 for one free call per tool and IP address per day (no payment)."}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result (JSON). Every result names its source and the time it was read.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input; not charged."},"402":{"description":"Payment required: 0.003 USD in USDC (x402 v2)."}}}},"/v1/domain-rdap":{"get":{"operationId":"domain_rdap","summary":"Domain RDAP Lookup: Registration Dates, Status, Nameservers","description":"Look up a domain in the public RDAP registry: registration, last-changed and expiry dates, status codes, nameservers, DNSSEC flag and registrar name. Registrant and contact details are not returned.","tags":["RDAP"],"parameters":[{"name":"domain","in":"query","required":true,"schema":{"type":"string","maxLength":253,"pattern":"^([A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?\\.)+[A-Za-z]{2,63}$","description":"Domain name, e.g. example.com."},"description":"Domain name, e.g. example.com."},{"name":"free","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Set to 1 for one free call per tool and IP address per day (no payment)."}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result (JSON). Every result names its source and the time it was read.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input; not charged."},"402":{"description":"Payment required: 0.003 USD in USDC (x402 v2)."}}}},"/v1/domain-ssl-sweep":{"get":{"operationId":"domain_ssl_sweep","summary":"SSL and Domain Expiry Sweep: Renewal Dates for Many Domains","description":"Check SSL certificate and domain registration expiry for one domain or a whole list: certificate issuer, valid from and to, days left, trusted or not, domain registration and expiry dates, registrar and nameservers. Flags what expires within your warning window. Registrant details are never returned.","tags":["SSL expiry"],"parameters":[{"name":"domain","in":"query","required":false,"schema":{"type":"string","maxLength":253,"description":"One domain, for example example.com. Use this or domains."},"description":"One domain, for example example.com. Use this or domains."},{"name":"domains","in":"query","required":false,"schema":{"type":"array","maxItems":100,"items":{"type":"string","maxLength":253},"description":"Up to 100 domains in one run (Apify Actor only). Each domain that returns a result is one billable result."},"description":"Up to 100 domains in one run (Apify Actor only). Each domain that returns a result is one billable result."},{"name":"warnDays","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":365,"default":30,"description":"Flag certificates and registrations that expire within this many days."},"description":"Flag certificates and registrations that expire within this many days."},{"name":"checks","in":"query","required":false,"schema":{"type":"string","enum":["both","ssl","domain"],"default":"both","description":"Which checks to run for each domain."},"description":"Which checks to run for each domain."},{"name":"free","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Set to 1 for one free call per tool and IP address per day (no payment)."}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result (JSON). Every result names its source and the time it was read.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input; not charged."},"402":{"description":"Payment required: 0.005 USD in USDC (x402 v2)."}}}},"/v1/ecb-key-rates":{"get":{"operationId":"ecb_key_rates","summary":"ECB Key Interest Rates: Deposit, Refinancing, Marginal Lending","description":"The three ECB key interest rates with their latest change dates and recent history. Data only, not advice.","tags":["ECB"],"parameters":[{"name":"history","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":24,"default":4,"description":"Number of most recent rate observations per series."},"description":"Number of most recent rate observations per series."},{"name":"free","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Set to 1 for one free call per tool and IP address per day (no payment)."}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result (JSON). Every result names its source and the time it was read.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input; not charged."},"402":{"description":"Payment required: 0.003 USD in USDC (x402 v2)."}}}},"/v1/ens-resolve":{"get":{"operationId":"ens_resolve","summary":"ENS Resolve: ENS Name to Address and Address to Primary Name","description":"Resolve an ENS name (e.g. vitalik.eth) to its Ethereum address, or look up the reverse-record name of an address, via the ENS registry on Ethereum mainnet. Onchain resolvers only; off-chain (CCIP-read) names report resolved=false.","tags":["ENS"],"parameters":[{"name":"name","in":"query","required":false,"schema":{"type":"string","maxLength":255,"pattern":"^[a-z0-9-]+(\\.[a-z0-9-]+)+$","description":"Lower-case ENS name, e.g. vitalik.eth."},"description":"Lower-case ENS name, e.g. vitalik.eth."},{"name":"address","in":"query","required":false,"schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Address for a reverse lookup (used if name is not set)."},"description":"Address for a reverse lookup (used if name is not set)."},{"name":"free","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Set to 1 for one free call per tool and IP address per day (no payment)."}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result (JSON). Every result names its source and the time it was read.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input; not charged."},"402":{"description":"Payment required: 0.003 USD in USDC (x402 v2)."}}}},"/v1/entity-resolve":{"get":{"operationId":"entity_resolve","summary":"Company Registry Lookup: Name, Domain, ID, LEI to Legal Entity","description":"Resolve a company name, website domain, registry number, LEI or VAT number to its official legal entity: registry, registry number, legal form, status, address, industry codes, size where published and LEI. Searches national registers (Norway, Finland, Czechia, Slovakia, France, UK; Poland by KRS number) and GLEIF, scores the match and links every record to its source. Company-level only: no officers, no sole traders.","tags":["company registry"],"parameters":[{"name":"query","in":"query","required":false,"schema":{"type":"string","maxLength":200,"description":"Company name, website domain (example.com), registry number, LEI or VAT number. Use this or queries."},"description":"Company name, website domain (example.com), registry number, LEI or VAT number. Use this or queries."},{"name":"queries","in":"query","required":false,"schema":{"type":"array","maxItems":100,"items":{"type":"string","maxLength":200},"description":"Up to 100 queries in one run (Apify Actor only). Each query that finds a match is one billable result."},"description":"Up to 100 queries in one run (Apify Actor only). Each query that finds a match is one billable result."},{"name":"country","in":"query","required":false,"schema":{"type":"string","pattern":"^[A-Za-z]{2}$","description":"Optional ISO country code (NO, FI, CZ, SK, FR, GB, PL) to search one register only. Faster and more precise."},"description":"Optional ISO country code (NO, FI, CZ, SK, FR, GB, PL) to search one register only. Faster and more precise."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":10,"default":3,"description":"Maximum candidates per query."},"description":"Maximum candidates per query."},{"name":"free","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Set to 1 for one free call per tool and IP address per day (no payment)."}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result (JSON). Every result names its source and the time it was read.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input; not charged."},"402":{"description":"Payment required: 0.01 USD in USDC (x402 v2)."}}}},"/v1/eu-vat-validate":{"get":{"operationId":"eu_vat_validate","summary":"EU VAT Number Validator","description":"Check whether an EU VAT number is valid and active. Returns validity, registered name and address where the member state publishes them.","tags":["VAT"],"parameters":[{"name":"vat","in":"query","required":true,"schema":{"type":"string","maxLength":20,"description":"VAT number with country prefix, e.g. DK10150817. Spaces and dots are ignored. Greece uses EL, Northern Ireland XI."},"description":"VAT number with country prefix, e.g. DK10150817. Spaces and dots are ignored. Greece uses EL, Northern Ireland XI."},{"name":"free","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Set to 1 for one free call per tool and IP address per day (no payment)."}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result (JSON). Every result names its source and the time it was read.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input; not charged."},"402":{"description":"Payment required: 0.003 USD in USDC (x402 v2)."}}}},"/v1/fx-rate-ecb":{"get":{"operationId":"fx_rate_ecb","summary":"ECB Exchange Rates: Latest and Historical Reference Rates","description":"European Central Bank euro foreign-exchange reference rates for any date since 1999, converted to any base currency. Reference rates published around 16:00 CET on working days; not tradable quotes.","tags":["exchange rate"],"parameters":[{"name":"base","in":"query","required":false,"schema":{"type":"string","pattern":"^[A-Za-z]{3}$","default":"EUR","description":"Base currency, ISO 4217."},"description":"Base currency, ISO 4217."},{"name":"symbols","in":"query","required":false,"schema":{"type":"array","maxItems":40,"items":{"type":"string","pattern":"^[A-Za-z]{3}$"},"description":"Target currencies. Default: all."},"description":"Target currencies. Default: all."},{"name":"date","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"YYYY-MM-DD. Default: latest. Weekends and holidays return the previous working day."},"description":"YYYY-MM-DD. Default: latest. Weekends and holidays return the previous working day."},{"name":"amount","in":"query","required":false,"schema":{"type":"number","minimum":0,"maximum":1000000000000,"default":1,"description":"Amount of base currency to convert."},"description":"Amount of base currency to convert."},{"name":"free","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Set to 1 for one free call per tool and IP address per day (no payment)."}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result (JSON). Every result names its source and the time it was read.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input; not charged."},"402":{"description":"Payment required: 0.003 USD in USDC (x402 v2)."}}}},"/v1/iban-validate":{"get":{"operationId":"iban_validate","summary":"IBAN Validator: Checksum, Length and Country Check","description":"Validate an IBAN offline: ISO 13616 checksum (mod 97), registered length for the country, and a normalised and grouped format. Does not check that the account exists.","tags":["IBAN"],"parameters":[{"name":"iban","in":"query","required":true,"schema":{"type":"string","maxLength":50,"description":"IBAN, spaces allowed."},"description":"IBAN, spaces allowed."},{"name":"free","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Set to 1 for one free call per tool and IP address per day (no payment)."}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result (JSON). Every result names its source and the time it was read.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input; not charged."},"402":{"description":"Payment required: 0.003 USD in USDC (x402 v2)."}}}},"/v1/lei-lookup":{"get":{"operationId":"lei_lookup","summary":"LEI Lookup: Legal Entity Identifier by LEI or Company Name","description":"Look up a Legal Entity Identifier (LEI) record by 20-character LEI, or search legal entities by name and country. Returns legal name, registry number, legal form, addresses and LEI registration status. Company-level data only.","tags":["LEI"],"parameters":[{"name":"lei","in":"query","required":false,"schema":{"type":"string","pattern":"^[A-Za-z0-9]{20}$","description":"Exact 20-character LEI. If set, name and country are ignored."},"description":"Exact 20-character LEI. If set, name and country are ignored."},{"name":"name","in":"query","required":false,"schema":{"type":"string","maxLength":120,"description":"Legal name to search (exact match on registered legal name, e.g. \"Novo Nordisk A/S\")."},"description":"Legal name to search (exact match on registered legal name, e.g. \"Novo Nordisk A/S\")."},{"name":"country","in":"query","required":false,"schema":{"type":"string","pattern":"^[A-Za-z]{2}$","description":"ISO 3166 country code of the legal address, e.g. DK."},"description":"ISO 3166 country code of the legal address, e.g. DK."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":50,"default":10,"description":"Maximum records for a name search."},"description":"Maximum records for a name search."},{"name":"free","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Set to 1 for one free call per tool and IP address per day (no payment)."}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result (JSON). Every result names its source and the time it was read.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input; not charged."},"402":{"description":"Payment required: 0.005 USD in USDC (x402 v2)."}}}},"/v1/nordic-company-lookup":{"get":{"operationId":"nordic_company_lookup","summary":"Nordic Company Lookup: Norway and Finland Registers","description":"Look up companies in the Norwegian and Finnish company registers by registration number or name: name, legal form, industry, address, registration date and status. Company-level data only, no persons.","tags":["company register"],"parameters":[{"name":"country","in":"query","required":true,"schema":{"type":"string","enum":["NO","FI"],"description":"Register to query."},"description":"Register to query."},{"name":"id","in":"query","required":false,"schema":{"type":"string","pattern":"^[0-9-]{7,11}$","description":"Organisation number (NO, 9 digits) or business ID (FI, e.g. 0112038-9)."},"description":"Organisation number (NO, 9 digits) or business ID (FI, e.g. 0112038-9)."},{"name":"name","in":"query","required":false,"schema":{"type":"string","maxLength":100,"description":"Company name to search. Used if id is not set."},"description":"Company name to search. Used if id is not set."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":25,"default":10,"description":"Maximum results for a name search."},"description":"Maximum results for a name search."},{"name":"free","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Set to 1 for one free call per tool and IP address per day (no payment)."}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result (JSON). Every result names its source and the time it was read.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input; not charged."},"402":{"description":"Payment required: 0.005 USD in USDC (x402 v2)."}}}},"/v1/package-vulnerabilities":{"get":{"operationId":"package_vulnerabilities","summary":"Package Vulnerabilities: Known CVEs for npm and PyPI Versions","description":"Check an npm or PyPI package version against a public vulnerability database: advisory ids, aliases (CVE, GHSA), summary, severity label and first fixed version, plus the latest published version. Informational; not a full security audit.","tags":["vulnerability"],"parameters":[{"name":"ecosystem","in":"query","required":true,"schema":{"type":"string","enum":["npm","PyPI"],"description":"Package ecosystem."},"description":"Package ecosystem."},{"name":"name","in":"query","required":true,"schema":{"type":"string","maxLength":214,"pattern":"^[@A-Za-z0-9._/-]+$","description":"Package name, e.g. lodash or requests."},"description":"Package name, e.g. lodash or requests."},{"name":"version","in":"query","required":false,"schema":{"type":"string","maxLength":64,"pattern":"^[A-Za-z0-9._+-]+$","description":"Version to check. Default: latest published version."},"description":"Version to check. Default: latest published version."},{"name":"free","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Set to 1 for one free call per tool and IP address per day (no payment)."}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result (JSON). Every result names its source and the time it was read.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input; not charged."},"402":{"description":"Payment required: 0.003 USD in USDC (x402 v2)."}}}},"/v1/rss-feed-normaliser":{"get":{"operationId":"rss_feed_normaliser","summary":"RSS and Atom Feed Normaliser: One JSON Schema for Any Feed","description":"Turn any RSS 2.0, RSS 1.0, Atom or JSON Feed into one clean JSON schema: feed title, link and language, then items with id, title, URL, ISO published/updated dates, summary, categories and enclosure. Give a feed URL or a normal web page and the feed is discovered from its link tags. Author names are not returned.","tags":["RSS"],"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","maxLength":2000,"description":"Feed URL, or a web page that links to a feed."},"description":"Feed URL, or a web page that links to a feed."},{"name":"maxItems","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":50,"description":"Maximum number of items returned (newest first as published in the feed)."},"description":"Maximum number of items returned (newest first as published in the feed)."},{"name":"summaryChars","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":2000,"default":400,"description":"Maximum characters of the plain-text summary per item."},"description":"Maximum characters of the plain-text summary per item."},{"name":"free","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Set to 1 for one free call per tool and IP address per day (no payment)."}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result (JSON). Every result names its source and the time it was read.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input; not charged."},"402":{"description":"Payment required: 0.003 USD in USDC (x402 v2)."}}}},"/v1/sitemap-robots-doctor":{"get":{"operationId":"sitemap_robots_doctor","summary":"Sitemap and Robots.txt Doctor: Audit Crawl Files","description":"Audit a website's robots.txt and XML sitemaps in one call: user-agent groups and blocked paths, sitemap declarations, whether each sitemap loads, URL counts (indexes followed to 10 files), lastmod coverage and age, duplicates, off-host and non-HTTPS URLs, size-limit breaches, and a sample of listed URLs checked for status. Returns a list of concrete issues.","tags":["sitemap"],"parameters":[{"name":"site","in":"query","required":true,"schema":{"type":"string","maxLength":2000,"description":"Domain or URL of the site, for example example.com or https://example.com/blog."},"description":"Domain or URL of the site, for example example.com or https://example.com/blog."},{"name":"sampleUrls","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":10,"default":5,"description":"How many listed URLs to fetch and check for status (0 to skip)."},"description":"How many listed URLs to fetch and check for status (0 to skip)."},{"name":"free","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Set to 1 for one free call per tool and IP address per day (no payment)."}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result (JSON). Every result names its source and the time it was read.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input; not charged."},"402":{"description":"Payment required: 0.005 USD in USDC (x402 v2)."}}}},"/v1/solana-token-facts":{"get":{"operationId":"solana_token_facts","summary":"Solana Token Facts: Authorities, Supply, Holder Concentration","description":"Verifiable on-chain facts about a Solana token mint: whether the mint and freeze authorities are still set, total supply, decimals, token program, and how much of the supply the largest token accounts hold, plus public market metrics from a token index. Facts only: no verdict and no recommendation. Largest accounts can be liquidity pools or exchanges, not individual holders.","tags":["Solana"],"parameters":[{"name":"mint","in":"query","required":true,"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Token mint address."},"description":"Token mint address."},{"name":"free","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Set to 1 for one free call per tool and IP address per day (no payment)."}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result (JSON). Every result names its source and the time it was read.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input; not charged."},"402":{"description":"Payment required: 0.01 USD in USDC (x402 v2)."}}}},"/v1/solana-token-price":{"get":{"operationId":"solana_token_price","summary":"Solana Token Price: USD Price and 24h Change by Mint","description":"Current USD price, 24-hour change, liquidity and decimals for up to 50 Solana token mints in one call, from an aggregated market feed. Unknown or unpriced mints are listed as null. Data only, not a recommendation.","tags":["Solana"],"parameters":[{"name":"mints","in":"query","required":true,"schema":{"type":"array","maxItems":50,"items":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"description":"Token mint addresses (1-50)."},"description":"Token mint addresses (1-50)."},{"name":"free","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Set to 1 for one free call per tool and IP address per day (no payment)."}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result (JSON). Every result names its source and the time it was read.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input; not charged."},"402":{"description":"Payment required: 0.003 USD in USDC (x402 v2)."}}}},"/v1/solana-token-search":{"get":{"operationId":"solana_token_search","summary":"Solana Token Search: Mint, Symbol, Verification and Liquidity","description":"Find Solana tokens by symbol, name or mint address: mint, decimals, verification flag, organic score, liquidity, market cap and holder count. Facts and public metrics only; a high score is not a recommendation. Always check the mint address yourself because many tokens share symbols.","tags":["Solana"],"parameters":[{"name":"query","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":100,"description":"Symbol, name or mint address."},"description":"Symbol, name or mint address."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":20,"default":5,"description":"Maximum tokens."},"description":"Maximum tokens."},{"name":"free","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Set to 1 for one free call per tool and IP address per day (no payment)."}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result (JSON). Every result names its source and the time it was read.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input; not charged."},"402":{"description":"Payment required: 0.003 USD in USDC (x402 v2)."}}}},"/v1/solana-transaction":{"get":{"operationId":"solana_transaction","summary":"Solana Transaction Lookup: Status, Fee, Balance Changes","description":"Look up a confirmed Solana transaction by signature: success or error, time, fee, signers, programs used, and the resulting SOL and token balance changes per account. Public on-chain data; not advice.","tags":["Solana"],"parameters":[{"name":"signature","in":"query","required":true,"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{64,90}$","description":"Transaction signature (base58)."},"description":"Transaction signature (base58)."},{"name":"free","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Set to 1 for one free call per tool and IP address per day (no payment)."}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result (JSON). Every result names its source and the time it was read.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input; not charged."},"402":{"description":"Payment required: 0.005 USD in USDC (x402 v2)."}}}},"/v1/solana-wallet-balances":{"get":{"operationId":"solana_wallet_balances","summary":"Solana Wallet Balances: SOL and Token Holdings with USD Values","description":"SOL balance and token holdings of any Solana address, with symbols, USD prices and values, largest first. Sums multiple accounts of the same token and includes Token-2022 tokens. Public on-chain data and market prices; not advice. Very large wallets are limited to the most valuable holdings.","tags":["Solana"],"parameters":[{"name":"address","in":"query","required":true,"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Solana wallet address."},"description":"Solana wallet address."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":50,"default":20,"description":"Number of holdings to return, most valuable first."},"description":"Number of holdings to return, most valuable first."},{"name":"free","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Set to 1 for one free call per tool and IP address per day (no payment)."}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result (JSON). Every result names its source and the time it was read.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input; not charged."},"402":{"description":"Payment required: 0.01 USD in USDC (x402 v2)."}}}},"/v1/tech-stack-lookup":{"get":{"operationId":"tech_stack_lookup","summary":"Website Tech Stack Checker: CMS, Framework, CDN, Analytics","description":"Detect the technologies a public website uses: CMS or site builder, JavaScript framework, CDN and hosting, web server, analytics and tag managers, advertising pixels, support widgets, payments, consent tools. Each result shows its evidence (header, meta tag, script URL or page source) and a confidence level. Reads one page; respects robots.txt.","tags":["tech stack"],"parameters":[{"name":"url","in":"query","required":false,"schema":{"type":"string","maxLength":2000,"description":"One public http(s) URL or domain. Use this or urls."},"description":"One public http(s) URL or domain. Use this or urls."},{"name":"urls","in":"query","required":false,"schema":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":2000},"description":"Up to 20 URLs or domains; each successfully checked site is one billable result."},"description":"Up to 20 URLs or domains; each successfully checked site is one billable result."},{"name":"free","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Set to 1 for one free call per tool and IP address per day (no payment)."}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result (JSON). Every result names its source and the time it was read.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input; not charged."},"402":{"description":"Payment required: 0.005 USD in USDC (x402 v2)."}}}},"/v1/ted-notices-search":{"get":{"operationId":"ted_notices_search","summary":"EU Tender Alerts: Public Procurement by Country and CPV","description":"Find recent EU public procurement notices by buyer country, CPV code, keyword and notice type. Returns title, buyer organisation, CPV codes, deadline, estimated value and a link. Buyer organisations only, no contact persons. Run it on a schedule with publishedSince to get new tenders.","tags":["tenders"],"parameters":[{"name":"country","in":"query","required":false,"schema":{"type":"string","pattern":"^[A-Za-z]{3}$","description":"Buyer country, ISO 3166 alpha-3 (DNK, DEU, SWE ...)."},"description":"Buyer country, ISO 3166 alpha-3 (DNK, DEU, SWE ...)."},{"name":"cpv","in":"query","required":false,"schema":{"type":"array","maxItems":10,"items":{"type":"string","pattern":"^\\d{2,8}\\*?$"},"description":"CPV codes or prefixes with a trailing * (e.g. \"72*\" for IT services)."},"description":"CPV codes or prefixes with a trailing * (e.g. \"72*\" for IT services)."},{"name":"keyword","in":"query","required":false,"schema":{"type":"string","maxLength":80,"pattern":"^[\\p{L}\\p{N} -]+$","description":"Full-text keyword or words (letters, digits, spaces, hyphens)."},"description":"Full-text keyword or words (letters, digits, spaces, hyphens)."},{"name":"noticeType","in":"query","required":false,"schema":{"type":"string","pattern":"^[a-z0-9-]{2,30}$","description":"TED notice type, e.g. cn-standard (contract notice) or can-standard (award)."},"description":"TED notice type, e.g. cn-standard (contract notice) or can-standard (award)."},{"name":"publishedSince","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Only notices published on or after this date (YYYY-MM-DD). Default: 7 days ago."},"description":"Only notices published on or after this date (YYYY-MM-DD). Default: 7 days ago."},{"name":"deadlineAfter","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Only notices whose tender deadline is on or after this date."},"description":"Only notices whose tender deadline is on or after this date."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":50,"default":20,"description":"Maximum notices to return."},"description":"Maximum notices to return."},{"name":"free","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Set to 1 for one free call per tool and IP address per day (no payment)."}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result (JSON). Every result names its source and the time it was read.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input; not charged."},"402":{"description":"Payment required: 0.01 USD in USDC (x402 v2)."}}}},"/v1/tender-feed":{"get":{"operationId":"tender_feed","summary":"Tender Feed: EU, UK and US Public Procurement, One Schema","description":"Search public tenders across TED (EU), Find a Tender (UK) and SAM.gov (US) in one normalised schema: title, buyer organisation, country, CPV codes, deadline, estimated value, procurement method and source link. Filter by keyword, CPV prefix, country and publication date; export as OCDS JSON. Buyer organisations only, no contact persons.","tags":["tenders"],"parameters":[{"name":"sources","in":"query","required":false,"schema":{"type":"array","maxItems":3,"items":{"type":"string","enum":["ted","uk-fts","sam"]},"description":"Which sources to search: ted (EU), uk-fts (UK Find a Tender), sam (US SAM.gov, needs samApiKey). Default: ted and uk-fts."},"description":"Which sources to search: ted (EU), uk-fts (UK Find a Tender), sam (US SAM.gov, needs samApiKey). Default: ted and uk-fts."},{"name":"keyword","in":"query","required":false,"schema":{"type":"string","maxLength":80,"pattern":"^[\\p{L}\\p{N} -]+$","description":"Words that must appear in the title or description (letters, digits, spaces, hyphens)."},"description":"Words that must appear in the title or description (letters, digits, spaces, hyphens)."},{"name":"cpv","in":"query","required":false,"schema":{"type":"array","maxItems":10,"items":{"type":"string","pattern":"^\\d{2,8}\\*?$"},"description":"CPV codes or prefixes with a trailing * (for example 72* for IT services). Applies to TED and Find a Tender."},"description":"CPV codes or prefixes with a trailing * (for example 72* for IT services). Applies to TED and Find a Tender."},{"name":"country","in":"query","required":false,"schema":{"type":"string","pattern":"^[A-Za-z]{2,3}$","description":"Buyer country (ISO 3166, 2 or 3 letters) for TED. Find a Tender is always GB and SAM.gov always US."},"description":"Buyer country (ISO 3166, 2 or 3 letters) for TED. Find a Tender is always GB and SAM.gov always US."},{"name":"publishedSince","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Only notices published on or after this date (YYYY-MM-DD). Default: 7 days ago. Use the date of your last run for new tenders only."},"description":"Only notices published on or after this date (YYYY-MM-DD). Default: 7 days ago. Use the date of your last run for new tenders only."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":50,"default":20,"description":"Maximum notices per source."},"description":"Maximum notices per source."},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["notices","ocds"],"default":"notices","description":"notices returns the normalised list; ocds adds an OCDS 1.1 release package."},"description":"notices returns the normalised list; ocds adds an OCDS 1.1 release package."},{"name":"samApiKey","in":"query","required":false,"schema":{"type":"string","maxLength":80,"description":"Your own free SAM.gov API key, only needed for the sam source. Never stored."},"description":"Your own free SAM.gov API key, only needed for the sam source. Never stored."},{"name":"free","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Set to 1 for one free call per tool and IP address per day (no payment)."}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result (JSON). Every result names its source and the time it was read.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input; not charged."},"402":{"description":"Payment required: 0.02 USD in USDC (x402 v2)."}}}},"/v1/url-metadata":{"get":{"operationId":"url_metadata","summary":"URL Metadata: Title, Open Graph, Canonical, Favicon, Feeds","description":"Link-preview data for one or many public URLs: title, description, canonical URL, Open Graph and Twitter card fields, favicon, language, hreflang alternates, feed links and JSON-LD types. Respects robots.txt, refuses private addresses, no JavaScript rendering. Each page is one result; failed pages are listed with the reason and not charged.","tags":["URL metadata"],"parameters":[{"name":"url","in":"query","required":false,"schema":{"type":"string","maxLength":2000,"description":"One public http(s) URL. Use this or urls."},"description":"One public http(s) URL. Use this or urls."},{"name":"urls","in":"query","required":false,"schema":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":2000},"description":"Up to 20 public http(s) URLs; every page that returns metadata is one billable result."},"description":"Up to 20 public http(s) URLs; every page that returns metadata is one billable result."},{"name":"free","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Set to 1 for one free call per tool and IP address per day (no payment)."}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result (JSON). Every result names its source and the time it was read.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input; not charged."},"402":{"description":"Payment required: 0.003 USD in USDC (x402 v2)."}}}},"/v1/url-to-markdown":{"get":{"operationId":"url_to_markdown","summary":"URL to Markdown: Clean Page Text for LLMs and RAG","description":"Fetch a public web page and return its main text as Markdown with title, headings, lists, tables and absolute links. Respects robots.txt, refuses private and internal addresses, no JavaScript rendering. For pages that need a browser, use a rendering tool.","tags":["URL to markdown"],"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","maxLength":2000,"description":"Public http(s) URL."},"description":"Public http(s) URL."},{"name":"maxChars","in":"query","required":false,"schema":{"type":"integer","minimum":500,"maximum":100000,"default":20000,"description":"Maximum characters of Markdown returned."},"description":"Maximum characters of Markdown returned."},{"name":"free","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Set to 1 for one free call per tool and IP address per day (no payment)."}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result (JSON). Every result names its source and the time it was read.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input; not charged."},"402":{"description":"Payment required: 0.003 USD in USDC (x402 v2)."}}}},"/v1/us-treasury-rates":{"get":{"operationId":"us_treasury_rates","summary":"US Treasury Average Interest Rates by Security Type","description":"Monthly average interest rates on US Treasury marketable securities (bills, notes, bonds, TIPS, FRNs) Latest months first. Data only, not advice.","tags":["US Treasury"],"parameters":[{"name":"months","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":24,"default":3,"description":"Number of most recent months."},"description":"Number of most recent months."},{"name":"free","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Set to 1 for one free call per tool and IP address per day (no payment)."}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result (JSON). Every result names its source and the time it was read.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input; not charged."},"402":{"description":"Payment required: 0.003 USD in USDC (x402 v2)."}}}},"/v1/wikipedia-summary":{"get":{"operationId":"wikipedia_summary","summary":"Wikipedia Summary: Short Article Extract by Title","description":"Lead-section summary of a Wikipedia article by title and language: plain-text extract, short description, canonical URL and last-edit time. Text is CC BY-SA 4.0 from Wikipedia contributors and must be attributed.","tags":["Wikipedia"],"parameters":[{"name":"title","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":200,"description":"Article title, e.g. Copenhagen."},"description":"Article title, e.g. Copenhagen."},{"name":"lang","in":"query","required":false,"schema":{"type":"string","pattern":"^[a-z]{2,3}(-[a-z]{2,4})?$","default":"en","description":"Wikipedia language code."},"description":"Wikipedia language code."},{"name":"free","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Set to 1 for one free call per tool and IP address per day (no payment)."}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Result (JSON). Every result names its source and the time it was read.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input; not charged."},"402":{"description":"Payment required: 0.003 USD in USDC (x402 v2)."}}}}},"security":[],"components":{"securitySchemes":{}}}