402utils.com
402utils.com
· 402utils.com
Structural card-number check before hitting a PSP: Luhn checksum, network detection from public IIN prefixes (visa, mastercard, amex, discover, jcb, diners, unionpay) and per-network length validation. POST body on purpose: the number never appears in a URL, so it stays out of request logs and x402 payment metadata — never stored, logged or echoed back. No BIN/issuer lookup (BIN databases are licensed): well-formed does not mean the card exists.
402utils.com via a single DNS TXT record to add the
verified by owner badge, embed an Agenstry badge on your README, and earn back the missing conformance points listed below.
F
Conformance score: 19/100
F-grade: card is reachable but fails most operational signals.
click to expand breakdown ▾
click to collapse breakdown ▴
agent-card.json changed within the last 7 days. We track these so downstream callers can react.
Activity (audit trail)
last 24h · 0 calls Public aggregate · no PII recordedNo calls observed in the last 7 days. Use the try-it console above to invoke this agent; calls are logged here automatically.
Endpoints
| Endpoint | Price | Currency |
|---|---|---|
https://402utils.com/v1/batch
|
0.002 | USDC |
https://402utils.com/v1/business-days
|
0.002 | USDC |
https://402utils.com/v1/card-check
|
0.001 | USDC |
https://402utils.com/v1/country-info
|
0.001 | USDC |
https://402utils.com/v1/cron-next
|
0.002 | USDC |
https://402utils.com/v1/csv-profile
|
0.003 | USDC |
https://402utils.com/v1/csv-to-json
|
0.002 | USDC |
https://402utils.com/v1/diff
|
0.002 | USDC |
https://402utils.com/v1/dns-lookup
|
0.001 | USDC |
https://402utils.com/v1/docx-extract
|
0.005 | USDC |
https://402utils.com/v1/domain-check
|
0.002 | USDC |
https://402utils.com/v1/donate
|
0.01 | USDC |
https://402utils.com/v1/echo
|
0.001 | USDC |
https://402utils.com/v1/email-check
|
0.003 | USDC |
https://402utils.com/v1/fx-rates
|
0.001 | USDC |
https://402utils.com/v1/holidays
|
0.002 | USDC |
https://402utils.com/v1/html-tables
|
0.002 | USDC |
https://402utils.com/v1/html-to-md
|
0.003 | USDC |
https://402utils.com/v1/iban-check
|
0.001 | USDC |
https://402utils.com/v1/ics
|
0.002 | USDC |
https://402utils.com/v1/image-optimize
|
0.004 | USDC |
https://402utils.com/v1/invoice-ready
|
0.004 | USDC |
https://402utils.com/v1/json-to-csv
|
0.002 | USDC |
https://402utils.com/v1/link-check
|
0.002 | USDC |
https://402utils.com/v1/market-price
|
0.005 | USDC |
https://402utils.com/v1/md-to-html
|
0.002 | USDC |
https://402utils.com/v1/meta-extract
|
0.003 | USDC |
https://402utils.com/v1/og-image
|
0.003 | USDC |
https://402utils.com/v1/pdf
|
0.01 | USDC |
https://402utils.com/v1/pdf-extract
|
0.005 | USDC |
https://402utils.com/v1/phone-check
|
0.002 | USDC |
https://402utils.com/v1/qr
|
0.002 | USDC |
https://402utils.com/v1/receipt-verify
|
0.003 | USDC |
https://402utils.com/v1/rf-reference
|
0.001 | USDC |
https://402utils.com/v1/robots-check
|
0.001 | USDC |
https://402utils.com/v1/routing-check
|
0.001 | USDC |
https://402utils.com/v1/rss-to-json
|
0.002 | USDC |
https://402utils.com/v1/screenshot
|
0.008 | USDC |
https://402utils.com/v1/seller-report
|
0.01 | USDC |
https://402utils.com/v1/site-profile
|
0.007 | USDC |
https://402utils.com/v1/sitemap-to-json
|
0.003 | USDC |
https://402utils.com/v1/supplier-check
|
0.006 | USDC |
https://402utils.com/v1/timezone-convert
|
0.001 | USDC |
https://402utils.com/v1/us-tax-rates
|
0.002 | USDC |
https://402utils.com/v1/vat-check
|
0.002 | USDC |
https://402utils.com/v1/vat-rates
|
0.001 | USDC |
https://402utils.com/v1/wallet-name
|
0.002 | USDC |
https://402utils.com/v1/x402-lint
|
0.003 | USDC |
https://402utils.com/v1/x402-probe
|
0.002 | USDC |
https://402utils.com/v1/xlsx-extract
|
0.005 | USDC |
https://402utils.com/v1/xml-to-json
|
0.002 | USDC |
https://402utils.com/v1/yaml
|
0.001 | USDC |
https://402utils.com/v1/zip-inspect
|
0.003 | USDC |
0xc55a2d530b53cbad1001e4afd4720b7e71f9c291 · basescan ↗
| Agent card | https://402utils.com |
| Provider | https://402utils.com |
| Docs | https://402utils.com |
Health · last 0 probes
Similar agents embedding-nearest
Embed your Agenstry badge
Paste any of these into your README, agent card, or marketing page. Each badge auto-updates and links back to this page.
Markdown / HTML snippets
[](https://agenstry.com/agents/402utils.com) [](https://agenstry.com/agents/402utils.com) [](https://agenstry.com/agents/402utils.com) [](https://agenstry.com/agents/402utils.com)
Audit-grade evidence bundle
JSON snapshot for vendor-review files. Add ?sign=true for a JWS-signed envelope verifiable against
our JWKS. See the methodology.
Raw agent card JSON
{
"_source": "agentic.market",
"service": {
"id": "402utils-com",
"name": "402utils.com",
"description": "Structural card-number check before hitting a PSP: Luhn checksum, network detection from public IIN prefixes (visa, mastercard, amex, discover, jcb, diners, unionpay) and per-network length validation. POST body on purpose: the number never appears in a URL, so it stays out of request logs and x402 payment metadata \u2014 never stored, logged or echoed back. No BIN/issuer lookup (BIN databases are licensed): well-formed does not mean the card exists.",
"domain": "402utils.com",
"provider": "402utils.com",
"providerUrl": "",
"category": "",
"networks": [
"Base"
],
"enriched": false,
"endpoints": [
{
"url": "https://402utils.com/v1/batch",
"description": "Run up to 10 internal calls in one payment: POST {calls:[{path,input}]} and pay the SUM of the internal prices (\u2264 $0.05 total), executed in parallel, results returned in order. Batchable endpoints are the local, deterministic ones (validators, format transforms, time/locale) \u2014 no browser, network, composite or dynamic endpoints. Each result carries {path, status, body}; a bad request (unknown path, >10 calls, over cap) is a 400, not charged.",
"pricing": {
"amount": "0.002",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "POST",
"providerName": "",
"parameters": [
{
"group": "body",
"name": "calls",
"type": "array",
"description": "",
"example": [],
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "1",
"l30DaysUniquePayers": "1"
}
},
{
"url": "https://402utils.com/v1/business-days",
"description": "Business-day math with real holiday calendars for FR, DE, GB, US, ES, IT, NL, BE (2025-2027, official sources \u2014 same datasets as /v1/holidays). Count working/weekend/holiday days in a date range (?from&to&country) or shift a date by N business days (?from&add=10&country). Weekend configurable (?weekend=fri,sat), optional ?region= for L\u00e4nder/UK divisions. Holidays that suppress a working day are listed by name.",
"pricing": {
"amount": "0.002",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "GET",
"providerName": "",
"parameters": [
{
"group": "query",
"name": "country",
"type": "string",
"description": "",
"example": "FR",
"enumValues": [],
"default": null,
"required": false
},
{
"group": "query",
"name": "from",
"type": "string",
"description": "",
"example": "2026-07-01",
"enumValues": [],
"default": null,
"required": false
},
{
"group": "query",
"name": "to",
"type": "string",
"description": "",
"example": "2026-07-31",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "1",
"l30DaysUniquePayers": "1"
}
},
{
"url": "https://402utils.com/v1/card-check",
"description": "Structural card-number check before hitting a PSP: Luhn checksum, network detection from public IIN prefixes (visa, mastercard, amex, discover, jcb, diners, unionpay) and per-network length validation. POST body on purpose: the number never appears in a URL, so it stays out of request logs and x402 payment metadata \u2014 never stored, logged or echoed back. No BIN/issuer lookup (BIN databases are licensed): well-formed does not mean the card exists.",
"pricing": {
"amount": "0.001",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "POST",
"providerName": "",
"parameters": [
{
"group": "body",
"name": "number",
"type": "string",
"description": "",
"example": "4242 4242 4242 4242",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "1",
"l30DaysUniquePayers": "1"
}
},
{
"url": "https://402utils.com/v1/country-info",
"description": "Country reference card by ISO code (alpha-2/alpha-3/numeric) or English name: ISO 3166 codes, official name, current ISO 4217 currency (Bulgaria = EUR since 2026-01-01), dialling prefix, IANA ccTLDs (incl. IDN), languages, EU/EEA/Schengen/euro-area membership and the EU VAT prefix (Greece = EL). 56 countries: EU-27, EEA/EFTA, GB, US + 24 majors. Compiled from ISO/IANA/ITU/europa.eu sources, dated `asOf`.",
"pricing": {
"amount": "0.001",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "GET",
"providerName": "",
"parameters": [
{
"group": "query",
"name": "country",
"type": "string",
"description": "",
"example": "FR",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "1",
"l30DaysUniquePayers": "1"
}
},
{
"url": "https://402utils.com/v1/cron-next",
"description": "Next occurrences of a cron expression in any IANA time zone, DST-aware via the runtime's ICU tzdb (times skipped by DST shift forward by the gap; ambiguous times fire once). Dialect (croner): 5-7 fields with optional seconds and year, ranges, steps, lists, JAN-DEC/SUN-SAT names, L, W, #, ? and @daily-style aliases. Each occurrence is returned as local ISO with offset plus UTC. Bad expression \u2192 400 naming the offending field.",
"pricing": {
"amount": "0.002",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "GET",
"providerName": "",
"parameters": [
{
"group": "query",
"name": "count",
"type": "number",
"description": "",
"example": 5,
"enumValues": [],
"default": null,
"required": false
},
{
"group": "query",
"name": "expr",
"type": "string",
"description": "",
"example": "*/15 9-17 * * 1-5",
"enumValues": [],
"default": null,
"required": false
},
{
"group": "query",
"name": "tz",
"type": "string",
"description": "",
"example": "Europe/Paris",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "1",
"l30DaysUniquePayers": "1"
}
},
{
"url": "https://402utils.com/v1/csv-profile",
"description": "Profile a CSV before processing it: send the bytes directly or a JSON body with a public {url}. Returns per-column name, inferred type (string/int/float/bool/date/mixed), null and unique counts, min/max and samples, plus row count, detected delimiter and data-quality issues (malformed rows, inconsistent widths, duplicate headers). Query: delimiter (, ; tab |), header=false if row one is data. Max 10 MB.",
"pricing": {
"amount": "0.003",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "POST",
"providerName": "",
"parameters": [
{
"group": "body",
"name": "url",
"type": "string",
"description": "",
"example": "https://example.com/data.csv",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "2",
"l30DaysUniquePayers": "2"
}
},
{
"url": "https://402utils.com/v1/csv-to-json",
"description": "Convert CSV to JSON with a strict RFC 4180 parser: quoted fields, doubled quotes, delimiters and line breaks inside quotes, mixed CRLF/LF, BOM. Auto-detects comma, semicolon, tab or pipe (or set delimiter). First row becomes object keys; headers:false yields string arrays. Ragged rows and unterminated quotes are repaired and reported in errors[], never a crash. All values stay strings. Send raw CSV text or JSON {csv}. Max 5 MB.",
"pricing": {
"amount": "0.002",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "POST",
"providerName": "",
"parameters": [
{
"group": "body",
"name": "csv",
"type": "string",
"description": "",
"example": "name;city;signup\n\"Dupont, Jean\";Paris;2026-05-01\n\"M\u00fcller, Anna\";Berlin;2026-06-12",
"enumValues": [],
"default": null,
"required": false
},
{
"group": "body",
"name": "headers",
"type": "boolean",
"description": "",
"example": true,
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "1",
"l30DaysUniquePayers": "1"
}
},
{
"url": "https://402utils.com/v1/diff",
"description": "Compute the diff between two texts (a \u2192 b) \u2014 no git needed. Returns a standard unified patch (line-oriented in both modes, applies with git apply or patch), added/removed counts, and in word mode a token-level change list for inline highlighting (capped at 2000 entries). CRLF line endings and missing trailing newlines are preserved byte-exactly. Caps: 1 MB UTF-8 per input; pathologically divergent inputs return 422 diff_too_complex.",
"pricing": {
"amount": "0.002",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "POST",
"providerName": "",
"parameters": [
{
"group": "body",
"name": "a",
"type": "string",
"description": "",
"example": "name: farm\nprice: 1 USDC\n",
"enumValues": [],
"default": null,
"required": false
},
{
"group": "body",
"name": "b",
"type": "string",
"description": "",
"example": "name: farm\nprice: 2 USDC\n",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "1",
"l30DaysUniquePayers": "1"
}
},
{
"url": "https://402utils.com/v1/dns-lookup",
"description": "Resolve DNS records for a domain over DNS-over-HTTPS: A, AAAA, MX, TXT, NS and CNAME, one or several types per call (type=A,MX). Records come back normalised \u2014 MX priority split out, trailing dots stripped, TXT quoting removed \u2014 each with its TTL. Cloudflare DoH with automatic Google DoH fallback for resilience; NXDOMAIN is reported explicitly instead of as an error.",
"pricing": {
"amount": "0.001",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "GET",
"providerName": "",
"parameters": [
{
"group": "query",
"name": "domain",
"type": "string",
"description": "",
"example": "example.com",
"enumValues": [],
"default": null,
"required": false
},
{
"group": "query",
"name": "type",
"type": "string",
"description": "",
"example": "A,MX",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "3",
"l30DaysUniquePayers": "3"
}
},
{
"url": "https://402utils.com/v1/docx-extract",
"description": "Extract text from a .docx (Word) document: send the docx bytes directly, or a JSON body with a public {url}. Returns the plain text, a best-effort markdown rendering (headings, bold/italic and lists; tables are flattened to paragraphs), and metadata (title, author). Text layer only \u2014 no OCR of embedded images. Max 10 MB.",
"pricing": {
"amount": "0.005",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "POST",
"providerName": "",
"parameters": [
{
"group": "body",
"name": "url",
"type": "string",
"description": "",
"example": "https://example.com/contract.docx",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "1",
"l30DaysUniquePayers": "1"
}
},
{
"url": "https://402utils.com/v1/domain-check",
"description": "Domain availability and expiry intelligence via RDAP, the WHOIS successor. Queries the authoritative registry for any RDAP-enabled TLD: free domains return registered:false, taken ones return registrar, creation and expiry dates, nameservers and EPP status codes. TLDs without RDAP coverage return supported:false. Built for agents that buy, monitor or vet domains.",
"pricing": {
"amount": "0.002",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "GET",
"providerName": "",
"parameters": [
{
"group": "query",
"name": "domain",
"type": "string",
"description": "",
"example": "example.com",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "2",
"l30DaysUniquePayers": "2"
}
},
{
"url": "https://402utils.com/v1/donate",
"description": "Support 402utils \u2014 or use it as a parametric x402 payment-test endpoint: you set the price with ?amount= (USD, clamped to $0.001\u2013$0.05) and the 402 demands exactly that, so you can assert a client pays the precise amount and the on-chain USDC tx matches. After payment returns {thanks, amount, message}. The amount is a pure function of ?amount, identical on the unpaid probe and the paid retry.",
"pricing": {
"amount": "0.01",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "GET",
"providerName": "",
"parameters": [
{
"group": "query",
"name": "amount",
"type": "string",
"description": "",
"example": "0.013",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "1",
"l30DaysUniquePayers": "1"
}
},
{
"url": "https://402utils.com/v1/echo",
"description": "Echoes back the JSON body you send, with a server timestamp. Useful for verifying your x402 client integration end to end.",
"pricing": {
"amount": "0.001",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "POST",
"providerName": "",
"parameters": [
{
"group": "body",
"name": "msg",
"type": "string",
"description": "",
"example": "hello farm",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "3",
"l30DaysUniquePayers": "2"
}
},
{
"url": "https://402utils.com/v1/email-check",
"description": "Validate an email address before you accept a signup or send to it: RFC 5322 syntax, whether the domain resolves and its MX records, whether it is a disposable/throwaway domain (community blocklist), and whether it is a role account (info@, support@\u2026). DNS is checked over DoH. No SMTP probing (intrusive and spammy), so a true 'domainExists' does not guarantee the mailbox exists.",
"pricing": {
"amount": "0.003",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "GET",
"providerName": "",
"parameters": [
{
"group": "query",
"name": "email",
"type": "string",
"description": "",
"example": "user@example.com",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "2",
"l30DaysUniquePayers": "2"
}
},
{
"url": "https://402utils.com/v1/fx-rates",
"description": "Daily euro FX reference rates from the European Central Bank. ?base (default EUR), ?quote for a single rate, ?date=YYYY-MM-DD for history (last 90 ECB business days; older dates 404). Non-EUR bases are cross-rates derived via EUR (quote-per-EUR \u00f7 base-per-EUR). Weekend/holiday dates resolve to the last published ECB day \u2014 the date field says which. Published ~16:00 CET on ECB business days; informational rates, not for transaction pricing.",
"pricing": {
"amount": "0.001",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "GET",
"providerName": "",
"parameters": [
{
"group": "query",
"name": "base",
"type": "string",
"description": "",
"example": "EUR",
"enumValues": [],
"default": null,
"required": false
},
{
"group": "query",
"name": "quote",
"type": "string",
"description": "",
"example": "USD",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "2",
"l30DaysUniquePayers": "2"
}
},
{
"url": "https://402utils.com/v1/holidays",
"description": "Public and bank holidays for FR, DE, GB, US, ES, IT, NL, BE \u2014 years 2025-2027, each dataset verified against the country's official source (Etalab, Land statutes, gov.uk feed, OPM, BOE, normattiva, rijksoverheid, SPF Emploi). Movable feasts are computed (Gregorian computus), substitute days follow each country's official rule. Optional ?region= for sub-national holidays (German L\u00e4nder, UK divisions, Alsace-Moselle).",
"pricing": {
"amount": "0.002",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "GET",
"providerName": "",
"parameters": [
{
"group": "query",
"name": "country",
"type": "string",
"description": "",
"example": "FR",
"enumValues": [],
"default": null,
"required": false
},
{
"group": "query",
"name": "year",
"type": "number",
"description": "",
"example": 2026,
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "2",
"l30DaysUniquePayers": "2"
}
},
{
"url": "https://402utils.com/v1/html-tables",
"description": "Extract every table from HTML you provide into clean JSON \u2014 no fetching, send the markup itself as {html} or a raw text/html body. Returns per table: optional caption, headers[] (from thead or an all-th first row) and rectangular rows[][]. colspan/rowspan cells are grid-expanded with the value duplicated so rows align with the visual layout; nested tables are flattened into the outer cell's text. Caps: 5 MB HTML, 200 tables, 200k cells.",
"pricing": {
"amount": "0.002",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "POST",
"providerName": "",
"parameters": [
{
"group": "body",
"name": "html",
"type": "string",
"description": "",
"example": "<table><caption>Q2 revenue</caption><thead><tr><th>Product</th><th>Revenue</th></tr></thead><tbody><tr><td>Caf\u00e9 filtre</td><td>\u20ac12,400</td></tr></tbody></table>",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "2",
"l30DaysUniquePayers": "2"
}
},
{
"url": "https://402utils.com/v1/html-to-md",
"description": "Convert raw HTML into clean GitHub-Flavored Markdown: ATX headings, fenced code, pipe tables, strikethrough, task lists; script/style/iframe text is always stripped. mode=article isolates the main article with Mozilla Readability (returns title, byline, excerpt; drops nav/footer boilerplate; resolves relative links), else converts the whole document. Converts provided HTML only \u2014 never fetches URLs. Max 5 MB.",
"pricing": {
"amount": "0.003",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "POST",
"providerName": "",
"parameters": [
{
"group": "body",
"name": "html",
"type": "string",
"description": "",
"example": "<h1>Q3 results</h1><p>Revenue grew <strong>18%</strong>.</p><table><thead><tr><th>Region</th><th>Growth</th></tr></thead><tbody><tr><td>EMEA</td><td>+21%</td></tr></tbody></table>",
"enumValues": [],
"default": null,
"required": false
},
{
"group": "body",
"name": "mode",
"type": "string",
"description": "",
"example": "full",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "2",
"l30DaysUniquePayers": "2"
}
},
{
"url": "https://402utils.com/v1/iban-check",
"description": "Validate an IBAN structurally before you pay or store it: ISO 7064 mod-97 check digits plus the official per-country length and BBAN layout (~90 countries), returning the bank/branch/account breakdown for FR, DE, ES, IT, BE and NL. Structural validation only \u2014 no BIC directory lookup (SWIFT's BIC registry is proprietary) and no proof the account exists. Local, instant. ?attest=1 \u2192 Ed25519-signed.",
"pricing": {
"amount": "0.001",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "GET",
"providerName": "",
"parameters": [
{
"group": "query",
"name": "iban",
"type": "string",
"description": "",
"example": "FR76 3000 6000 0112 3456 7890 189",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "4",
"l30DaysUniquePayers": "3"
}
},
{
"url": "https://402utils.com/v1/ics",
"description": "Build a strictly RFC 5545-conformant .ics calendar file from a list of events: correct TEXT escaping, 75-octet line folding, generated UIDs, and unambiguous UTC timestamps (a per-event IANA timezone interprets naive wall-clock times). Supports all-day events, location, description and a passthrough RRULE. The fiddly conformance an agent shouldn't hand-roll.",
"pricing": {
"amount": "0.002",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "POST",
"providerName": "",
"parameters": [
{
"group": "body",
"name": "calendarName",
"type": "string",
"description": "",
"example": "Launch",
"enumValues": [],
"default": null,
"required": false
},
{
"group": "body",
"name": "events",
"type": "array",
"description": "",
"example": [],
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "2",
"l30DaysUniquePayers": "2"
}
},
{
"url": "https://402utils.com/v1/image-optimize",
"description": "Resize and convert an image (PNG, JPEG or WebP, up to 10 MB). Send the image bytes as the body and set options in the query: width, height, fit (contain or cover), format (webp/jpeg/png) and quality (JPEG). Returns the converted image bytes. WebP has no quality knob and AVIF is not supported (out of scope).",
"pricing": {
"amount": "0.004",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "POST",
"providerName": "",
"parameters": [
{
"group": "body",
"name": "format",
"type": "string",
"description": "",
"example": "webp",
"enumValues": [],
"default": null,
"required": false
},
{
"group": "body",
"name": "width",
"type": "number",
"description": "",
"example": 800,
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "1",
"l30DaysUniquePayers": "1"
}
},
{
"url": "https://402utils.com/v1/invoice-ready",
"description": "Pre-flight a SEPA invoice's identifiers in one paid call: validate the customer VAT (VIES, with company name), the IBAN (ISO 7064 mod-97 + BBAN layout) and an ISO 11649 RF creditor reference, run together with a per-field status. summary.allProvidedValid is true only if every provided identifier checked out. If all provided checks fail technically you get a 503 and no charge. ?attest=1 \u2192 Ed25519-signed.",
"pricing": {
"amount": "0.004",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "POST",
"providerName": "",
"parameters": [
{
"group": "body",
"name": "iban",
"type": "string",
"description": "",
"example": "IE29AIBK93115212345678",
"enumValues": [],
"default": null,
"required": false
},
{
"group": "body",
"name": "rfReference",
"type": "string",
"description": "",
"example": "RF18539007547034",
"enumValues": [],
"default": null,
"required": false
},
{
"group": "body",
"name": "vat",
"type": "string",
"description": "",
"example": "IE6388047V",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "2",
"l30DaysUniquePayers": "2"
}
},
{
"url": "https://402utils.com/v1/json-to-csv",
"description": "Convert a JSON array of objects into a clean RFC 4180 CSV: header row, CRLF records, correct quoting and quote-doubling. Nested objects flatten to dot-notation columns (a.b.c), arrays are JSON-encoded into their cell, and you can select and order columns explicitly. Delimiter: comma, semicolon, tab or pipe. Caps: 100,000 rows, 5 MB body, 20 MB CSV out. Returns text/csv ready for Excel, Google Sheets or a data pipeline.",
"pricing": {
"amount": "0.002",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "POST",
"providerName": "",
"parameters": [
{
"group": "body",
"name": "delimiter",
"type": "string",
"description": "",
"example": ",",
"enumValues": [],
"default": null,
"required": false
},
{
"group": "body",
"name": "rows",
"type": "array",
"description": "",
"example": [],
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "1",
"l30DaysUniquePayers": "1"
}
},
{
"url": "https://402utils.com/v1/link-check",
"description": "Verify a link before you cite or use it: HTTP status, the full redirect chain, the final URL, latency, and the final Content-Type/Content-Length. Redirects are followed manually (max 10) with SSRF validation on every hop; probes with HEAD by default and falls back to GET automatically when a server rejects HEAD. A dead or broken target (404, 410, 500\u2026) is a valid result, not an error. Response bodies are never downloaded.",
"pricing": {
"amount": "0.002",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "GET",
"providerName": "",
"parameters": [
{
"group": "query",
"name": "method",
"type": "string",
"description": "",
"example": "HEAD",
"enumValues": [],
"default": null,
"required": false
},
{
"group": "query",
"name": "url",
"type": "string",
"description": "",
"example": "https://example.com/pricing",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "2",
"l30DaysUniquePayers": "2"
}
},
{
"url": "https://402utils.com/v1/market-price",
"description": "Live market price stats for a kind of x402 service, from the public Bazaar catalog. Pass ?category=vat or ?query=pdf extraction and get {sampleSize, priceUsd:{min,p25,median,max,p75}, networks, examples} in USD \u2014 is your price fair, what should you charge? Computed over a live sample of up to 1000 resources; <3 matches returns an honest 'insufficient market data'. Neutral: our own endpoints are never featured.",
"pricing": {
"amount": "0.005",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "GET",
"providerName": "",
"parameters": [
{
"group": "query",
"name": "category",
"type": "string",
"description": "",
"example": "vat",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": null
},
{
"url": "https://402utils.com/v1/md-to-html",
"description": "Convert Markdown to sanitized HTML that is safe to embed directly in a page, email or app. GFM supported: tables, task lists, strikethrough, fenced code. Output passes a strict tag/attribute allowlist: scripts, styles, iframes, event handlers and javascript: URLs are removed; links keep only http(s)/mailto targets, images only http(s) or base64 image data URIs. Send JSON {markdown} or a raw text/markdown body, max 2 MB. Returns {html}.",
"pricing": {
"amount": "0.002",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "POST",
"providerName": "",
"parameters": [
{
"group": "body",
"name": "markdown",
"type": "string",
"description": "",
"example": "# Release notes\n\n- [x] Ship the *v2* API\n- [ ] Update docs\n\n| Feature | Status |\n|:--------|-------:|\n| Auth | done |\n\n~~Old plan~~ \u2014 see [the docs](https://example.com/docs).",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "1",
"l30DaysUniquePayers": "1"
}
},
{
"url": "https://402utils.com/v1/meta-extract",
"description": "Link preview for any web page: fetches a URL and parses only the <head> (no JS, no rendering). Returns title, meta description, canonical URL, language, an always-absolute favicon, all Open Graph and Twitter Card tags, and RSS/Atom/JSON-feed links. Tolerant of messy real-world HTML and non-UTF-8 charsets. The caller-supplied URL is SSRF-checked; the fetch is capped at 5 MB and 8 s.",
"pricing": {
"amount": "0.003",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "GET",
"providerName": "",
"parameters": [
{
"group": "query",
"name": "url",
"type": "string",
"description": "",
"example": "https://blog.cloudflare.com/",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "1",
"l30DaysUniquePayers": "1"
}
},
{
"url": "https://402utils.com/v1/og-image",
"description": "Generate a polished Open Graph / social share image (PNG) from text \u2014 no browser, no design tools. Pick a template (article, product, stat), pass a title and optional subtitle, set your brand accent colour and light/dark theme, and get back a crisp 1200\u00d7630 PNG ready for og:image, Twitter cards, blog headers and launch posts. Rendered with Satori + resvg; fast and cheap.",
"pricing": {
"amount": "0.003",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "POST",
"providerName": "",
"parameters": [
{
"group": "body",
"name": "accent",
"type": "string",
"description": "",
"example": "#2FBF71",
"enumValues": [],
"default": null,
"required": false
},
{
"group": "body",
"name": "subtitle",
"type": "string",
"description": "",
"example": "Charge for any resource behind Cloudflare via x402",
"enumValues": [],
"default": null,
"required": false
},
{
"group": "body",
"name": "template",
"type": "string",
"description": "",
"example": "article",
"enumValues": [],
"default": null,
"required": false
},
{
"group": "body",
"name": "theme",
"type": "string",
"description": "",
"example": "dark",
"enumValues": [],
"default": null,
"required": false
},
{
"group": "body",
"name": "title",
"type": "string",
"description": "",
"example": "Announcing the Monetization Gateway",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "1",
"l30DaysUniquePayers": "1"
}
},
{
"url": "https://402utils.com/v1/pdf",
"description": "Render HTML or a public web page into a pixel-perfect PDF using a headless Chrome browser. Send inline `html` (invoices, receipts, reports, tickets) or a `url` to snapshot; control paper size, orientation, margins, background graphics and scale. Returns the raw application/pdf bytes \u2014 no signup, no browser to run, pay per document.",
"pricing": {
"amount": "0.01",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "POST",
"providerName": "",
"parameters": [
{
"group": "body",
"name": "format",
"type": "string",
"description": "",
"example": "A4",
"enumValues": [],
"default": null,
"required": false
},
{
"group": "body",
"name": "html",
"type": "string",
"description": "",
"example": "<html><body><h1>Invoice #1042</h1><table><tr><td>Item</td><td>$20.00</td></tr></table></body></html>",
"enumValues": [],
"default": null,
"required": false
},
{
"group": "body",
"name": "printBackground",
"type": "boolean",
"description": "",
"example": true,
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "1",
"l30DaysUniquePayers": "1"
}
},
{
"url": "https://402utils.com/v1/pdf-extract",
"description": "Extract text from a PDF: send the PDF bytes directly, or a JSON body with a public {url}. Returns the full text, per-page text, and metadata (page count, title, author). Text layer only \u2014 scanned/image-only PDFs return empty text with a no_text_layer warning (no OCR). Max 10 MB.",
"pricing": {
"amount": "0.005",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "POST",
"providerName": "",
"parameters": [
{
"group": "body",
"name": "url",
"type": "string",
"description": "",
"example": "https://example.com/document.pdf",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "1",
"l30DaysUniquePayers": "1"
}
},
{
"url": "https://402utils.com/v1/phone-check",
"description": "Validate and normalize a phone number with full Google libphonenumber metadata: strict validity against each national numbering plan, E.164 / international / national formats, country detection (correct across shared codes like +1 and +44) and line type (mobile, fixed_line, toll_free, voip\u2026) where the plan distinguishes it. Pass ?country=FR to parse national formats. Purely local; the number is never stored.",
"pricing": {
"amount": "0.002",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "GET",
"providerName": "",
"parameters": [
{
"group": "query",
"name": "phone",
"type": "string",
"description": "",
"example": "+442079460958",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "1",
"l30DaysUniquePayers": "1"
}
},
{
"url": "https://402utils.com/v1/qr",
"description": "Generate a QR code as PNG or SVG from any text or URL. Pick the size, error-correction level (L/M/Q/H) and foreground/background colours; a 4-module quiet zone is always included so it scans reliably. Returns the raw image bytes. No logo overlay (compositing is out of scope).",
"pricing": {
"amount": "0.002",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "POST",
"providerName": "",
"parameters": [
{
"group": "body",
"name": "data",
"type": "string",
"description": "",
"example": "https://402utils.com",
"enumValues": [],
"default": null,
"required": false
},
{
"group": "body",
"name": "ecLevel",
"type": "string",
"description": "",
"example": "M",
"enumValues": [],
"default": null,
"required": false
},
{
"group": "body",
"name": "size",
"type": "number",
"description": "",
"example": 512,
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "1",
"l30DaysUniquePayers": "1"
}
},
{
"url": "https://402utils.com/v1/receipt-verify",
"description": "Verify on-chain that a transaction is the USDC payment you expected. Pass ?tx=0x\u2026 plus optional ?expectedPayTo=0x\u2026 and ?expectedAmount=0.01 (USD); ?network defaults to the deployment chain (base or base-sepolia). Decodes the tx's USDC Transfer logs and returns {verified, actualPayTo, actualAmount, asset, blockTime, confirmations, mismatch}. Unknown/unmined tx \u2192 503 (unbilled). Add ?attest=1 for a signed receipt.",
"pricing": {
"amount": "0.003",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "GET",
"providerName": "",
"parameters": [
{
"group": "query",
"name": "expectedAmount",
"type": "string",
"description": "",
"example": "0.001",
"enumValues": [],
"default": null,
"required": false
},
{
"group": "query",
"name": "expectedPayTo",
"type": "string",
"description": "",
"example": "0xc55A2D530b53CBaD1001e4AfD4720B7E71f9C291",
"enumValues": [],
"default": null,
"required": false
},
{
"group": "query",
"name": "tx",
"type": "string",
"description": "",
"example": "0xf1b23e5bf6e35c9601b91198645fe541fde1a6379c8378707abde0f8626a2c05",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": null
},
{
"url": "https://402utils.com/v1/rf-reference",
"description": "ISO 11649 RF creditor reference (SEPA structured reference) \u2014 validate or generate. ?ref=RF18539007547034 checks the ISO 7064 mod 97-10 checksum and format (RF + 2 check digits + up to 21 alphanumerics); ?generate=539007547034 computes the check digits and returns the full RF reference with print formatting. Complements iban-check and vat-check for SEPA invoicing agents. Purely local, instant.",
"pricing": {
"amount": "0.001",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "GET",
"providerName": "",
"parameters": [
{
"group": "query",
"name": "ref",
"type": "string",
"description": "",
"example": "RF18 5390 0754 7034",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "1",
"l30DaysUniquePayers": "1"
}
},
{
"url": "https://402utils.com/v1/robots-check",
"description": "Robots.txt compliance check for polite crawlers and AI agents (GPTBot, ClaudeBot, ...). Pass a page URL and optionally your crawler's product token; returns whether the URL may be fetched, the winning Allow/Disallow rule, crawl-delay and sitemap URLs. Full RFC 9309 matching: wildcards, $ anchors, longest-match, merged groups. A 4xx robots.txt allows all; 5xx or unreachable hosts report disallowed. Cached per host for 1 hour.",
"pricing": {
"amount": "0.001",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "GET",
"providerName": "",
"parameters": [
{
"group": "query",
"name": "url",
"type": "string",
"description": "",
"example": "https://example.com/search?q=demo",
"enumValues": [],
"default": null,
"required": false
},
{
"group": "query",
"name": "userAgent",
"type": "string",
"description": "",
"example": "GPTBot",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "2",
"l30DaysUniquePayers": "2"
}
},
{
"url": "https://402utils.com/v1/routing-check",
"description": "Validate a US ABA routing number before initiating a transfer: the 3-7-1 checksum, the public structure rules (9 digits; assigned prefixes 00-12 primary, 21-32 thrift, 61-72 electronic, 80 traveler's cheque) and the implied Federal Reserve district. Checksum and structure only \u2014 no bank-name directory (the Fed's is redistribution-restricted) and no proof of assignment. ?attest=1 \u2192 Ed25519-signed.",
"pricing": {
"amount": "0.001",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "GET",
"providerName": "",
"parameters": [
{
"group": "query",
"name": "routing",
"type": "string",
"description": "",
"example": "021000021",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "2",
"l30DaysUniquePayers": "2"
}
},
{
"url": "https://402utils.com/v1/rss-to-json",
"description": "Fetch an RSS 2.0 or Atom feed and return clean JSON: feed title, link and description, plus items with title, link, ISO-8601 publishedAt, summary and author. Handles both formats and normalises the dates. The caller-supplied URL is SSRF-checked; the fetch is capped at 2 MB and 8 s.",
"pricing": {
"amount": "0.002",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "GET",
"providerName": "",
"parameters": [
{
"group": "query",
"name": "limit",
"type": "number",
"description": "",
"example": 10,
"enumValues": [],
"default": null,
"required": false
},
{
"group": "query",
"name": "url",
"type": "string",
"description": "",
"example": "https://blog.cloudflare.com/rss/",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "2",
"l30DaysUniquePayers": "2"
}
},
{
"url": "https://402utils.com/v1/screenshot",
"description": "Capture a screenshot of any public web page with a headless Chrome browser. Set the viewport, grab the full scrollable page or just the fold, and choose PNG, JPEG or WebP with an optional quality. Returns the raw image bytes \u2014 ideal for link previews, thumbnails, visual monitoring and archiving. No browser to run, pay per capture.",
"pricing": {
"amount": "0.008",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "POST",
"providerName": "",
"parameters": [
{
"group": "body",
"name": "format",
"type": "string",
"description": "",
"example": "png",
"enumValues": [],
"default": null,
"required": false
},
{
"group": "body",
"name": "fullPage",
"type": "boolean",
"description": "",
"example": true,
"enumValues": [],
"default": null,
"required": false
},
{
"group": "body",
"name": "url",
"type": "string",
"description": "",
"example": "https://example.com",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "1",
"l30DaysUniquePayers": "1"
}
},
{
"url": "https://402utils.com/v1/seller-report",
"description": "On-chain + config reliability report for any x402 seller, public data only, computed live. Pass ?payTo=0x\u2026 or ?url= (a third-party x402 endpoint) \u2192 {onchain:{firstSeenAt,totalIncomingTransfers,uniqueSenders,last30dInflows,note}, config, liveness, discovery} plus factual flags (new_seller, single_sender, config_issues, unreachable). On-chain counts all incoming USDC transfers, not only x402 settlements. No score, no verdict; fails open.",
"pricing": {
"amount": "0.01",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "GET",
"providerName": "",
"parameters": [
{
"group": "query",
"name": "payTo",
"type": "string",
"description": "",
"example": "0xc55A2D530b53CBaD1001e4AfD4720B7E71f9C291",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": null
},
{
"url": "https://402utils.com/v1/site-profile",
"description": "Full profile of a web page in one paid call: <head> metadata (title, description, canonical, OpenGraph, favicon, feeds), DNS records (A/AAAA/MX/NS), robots.txt crawl permission for your user-agent, and domain registration/expiry (RDAP) \u2014 fanned out in parallel, each section with its own status. Pass ?userAgent= to test robots for a specific crawler. Page fetches are SSRF-checked. If every section fails technically you get a 503 and no charge.",
"pricing": {
"amount": "0.007",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "GET",
"providerName": "",
"parameters": [
{
"group": "query",
"name": "url",
"type": "string",
"description": "",
"example": "https://blog.cloudflare.com/",
"enumValues": [],
"default": null,
"required": false
},
{
"group": "query",
"name": "userAgent",
"type": "string",
"description": "",
"example": "GPTBot",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "2",
"l30DaysUniquePayers": "2"
}
},
{
"url": "https://402utils.com/v1/sitemap-to-json",
"description": "Turn any sitemap.xml into clean JSON: URL entries with loc, lastmod and priority, plus sitemap-index detection with the child sitemap list. Handles gzipped .gz sitemaps (magic-byte detection, zip-bomb guarded) and namespaced XML; pass follow=1 to also expand up to 3 child sitemaps of an index in one call. SSRF-checked fetches, 10 MB per document, up to 50,000 URLs with a truncated flag.",
"pricing": {
"amount": "0.003",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "GET",
"providerName": "",
"parameters": [
{
"group": "query",
"name": "follow",
"type": "string",
"description": "",
"example": "1",
"enumValues": [],
"default": null,
"required": false
},
{
"group": "query",
"name": "url",
"type": "string",
"description": "",
"example": "https://example.com/sitemap.xml",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "1",
"l30DaysUniquePayers": "1"
}
},
{
"url": "https://402utils.com/v1/supplier-check",
"description": "Vet a supplier in one paid call instead of four: give any of a VAT number, IBAN and domain and get VAT validity (VIES) with company name, IBAN structure (mod-97 + BBAN), domain status (RDAP) and the country (from the VAT prefix) \u2014 run in parallel, each with a per-field status. summary.allProvidedValid is true only if every provided check confirmed. If all provided checks fail technically you get a 503 and no charge. ?attest=1 \u2192 Ed25519-signed.",
"pricing": {
"amount": "0.006",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "POST",
"providerName": "",
"parameters": [
{
"group": "body",
"name": "domain",
"type": "string",
"description": "",
"example": "google.com",
"enumValues": [],
"default": null,
"required": false
},
{
"group": "body",
"name": "iban",
"type": "string",
"description": "",
"example": "IE29AIBK93115212345678",
"enumValues": [],
"default": null,
"required": false
},
{
"group": "body",
"name": "vat",
"type": "string",
"description": "",
"example": "IE6388047V",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "2",
"l30DaysUniquePayers": "2"
}
},
{
"url": "https://402utils.com/v1/timezone-convert",
"description": "Convert a datetime between any two IANA time zones using the runtime's ICU tzdb \u2014 always current, DST-correct, half-hour zones included. A datetime without offset is read as wall time in `from` (ambiguous fall-back times resolve to the earlier instant; times skipped by spring-forward shift ahead, flagged in `note`). Returns both ISO datetimes with offsets and DST status per side. Unknown zone \u2192 400 with a spelling suggestion.",
"pricing": {
"amount": "0.001",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "GET",
"providerName": "",
"parameters": [
{
"group": "query",
"name": "datetime",
"type": "string",
"description": "",
"example": "2026-07-14T09:30:00",
"enumValues": [],
"default": null,
"required": false
},
{
"group": "query",
"name": "from",
"type": "string",
"description": "",
"example": "Europe/Paris",
"enumValues": [],
"default": null,
"required": false
},
{
"group": "query",
"name": "to",
"type": "string",
"description": "",
"example": "Asia/Ho_Chi_Minh",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "1",
"l30DaysUniquePayers": "1"
}
},
{
"url": "https://402utils.com/v1/us-tax-rates",
"description": "US sales tax STATE-LEVEL base rates for the 50 states + DC, as statutory percent. ?state=CA for one state, omit for all. Returns the state-only rate, any mandatory statewide local add-on (CA/UT/VA) and their sum. STATE BASE RATE ONLY \u2014 optional city/county/district rates are EXCLUDED and can add several points; not tax advice. Compiled from state statutes, cross-checked against two dated published trackers (asOf field included).",
"pricing": {
"amount": "0.002",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "GET",
"providerName": "",
"parameters": [
{
"group": "query",
"name": "state",
"type": "string",
"description": "",
"example": "CA",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "2",
"l30DaysUniquePayers": "2"
}
},
{
"url": "https://402utils.com/v1/vat-check",
"description": "Validate an EU VAT number against the official VIES registry before invoicing, onboarding or a reverse charge. Per-country syntax is checked locally first, so invalid formats never touch the network. Valid numbers return the registered company name and address when disclosed, plus an optional consultation number (requesterVat). Never a false 'invalid': if VIES is down you get a 503 and are not charged. ?attest=1 \u2192 Ed25519-signed.",
"pricing": {
"amount": "0.002",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "GET",
"providerName": "",
"parameters": [
{
"group": "query",
"name": "vat",
"type": "string",
"description": "",
"example": "IE6388047V",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "2",
"l30DaysUniquePayers": "2"
}
},
{
"url": "https://402utils.com/v1/vat-rates",
"description": "Look up current VAT rates for any EU member state \u2014 standard, reduced, super-reduced and parking rates plus the currency \u2014 from the European Commission's official figures. Filter to one rate category if you only need one. Ideal for pricing, invoicing and tax-calculation logic that must apply the right rate per country. Returns the source and date verified. ?attest=1 \u2192 Ed25519-signed.",
"pricing": {
"amount": "0.001",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "GET",
"providerName": "",
"parameters": [
{
"group": "query",
"name": "country",
"type": "string",
"description": "",
"example": "FR",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "2",
"l30DaysUniquePayers": "2"
}
},
{
"url": "https://402utils.com/v1/wallet-name",
"description": "Resolve a Basename or ENS name to an address, or an address to its primary name. Pass ?name=402utils.base.eth (name\u2192address) or ?address=0x\u2026 (address\u2192primary name). Basenames resolve on Base L2, other .eth names on Ethereum mainnet. Reverse results are forward-verified. ASCII names only; offchain (CCIP-read) resolvers like cb.id are not supported.",
"pricing": {
"amount": "0.002",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "GET",
"providerName": "",
"parameters": [
{
"group": "query",
"name": "name",
"type": "string",
"description": "",
"example": "vitalik.eth",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "2",
"l30DaysUniquePayers": "2"
}
},
{
"url": "https://402utils.com/v1/x402-lint",
"description": "Lint an x402 endpoint before agents find it broken. Probes a third-party 402 (unpaid, SSRF-checked) and audits it: description \u2265450 chars (CDP silently rejects at settle \u2192 402 {} with no charge), missing Bazaar discovery or input/output schemas, resource.url host mismatch or *.workers.dev identity, x402Version 1 (frozen), non-CAIP-2 network, unparseable amount, unknown asset, odd maxTimeoutSeconds. Returns pass/warn/fail/info checks + summary.",
"pricing": {
"amount": "0.003",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "GET",
"providerName": "",
"parameters": [
{
"group": "query",
"name": "url",
"type": "string",
"description": "",
"example": "https://402utils.com/v1/rss-to-json",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "2",
"l30DaysUniquePayers": "2"
}
},
{
"url": "https://402utils.com/v1/x402-probe",
"description": "Quote an x402-paid API before you buy: probes a third-party endpoint with one unpaid GET (no payment is ever sent) and decodes its payment requirements \u2014 x402 v2 base64 PAYMENT-REQUIRED header or v1 JSON body. Returns normalised prices (atomic amount, asset, network, payTo), description, resource URL and Bazaar discovery metadata. Non-402 targets return {isX402:false, status}. SSRF-checked, 1 redirect max, 8 s timeout.",
"pricing": {
"amount": "0.002",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "GET",
"providerName": "",
"parameters": [
{
"group": "query",
"name": "url",
"type": "string",
"description": "",
"example": "https://402utils.com/v1/rss-to-json",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "4",
"l30DaysUniquePayers": "3"
}
},
{
"url": "https://402utils.com/v1/xlsx-extract",
"description": "Extract data from an .xlsx spreadsheet: send the bytes directly or a JSON body with a public {url}. Returns each sheet as rows (array-of-arrays) with its name and used range, plus workbook metadata. Query: sheet (name or 0-based index) for a single sheet, headers=true for array-of-objects. Formula cells return their cached computed value. Capped at 500000 cells. Max 10 MB.",
"pricing": {
"amount": "0.005",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "POST",
"providerName": "",
"parameters": [
{
"group": "body",
"name": "url",
"type": "string",
"description": "",
"example": "https://example.com/report.xlsx",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "1",
"l30DaysUniquePayers": "1"
}
},
{
"url": "https://402utils.com/v1/xml-to-json",
"description": "Convert XML to clean JSON. POST raw XML (XML or text/plain Content-Type) or a JSON envelope {xml, alwaysArray}. Attributes land under \"@_\" keys, mixed-content text under \"#text\", repeated siblings become arrays, and alwaysArray forces arrays for listed tags even on a single occurrence. Numeric character references decode. DTD entities and DOCTYPE internal subsets rejected (anti-XXE / billion-laughs). Max 5 MB.",
"pricing": {
"amount": "0.002",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "POST",
"providerName": "",
"parameters": [
{
"group": "body",
"name": "alwaysArray",
"type": "array",
"description": "",
"example": [],
"enumValues": [],
"default": null,
"required": false
},
{
"group": "body",
"name": "xml",
"type": "string",
"description": "",
"example": "<order id=\"A-17\"><item sku=\"X1\">Caf\u00e9 grinder</item><item sku=\"X2\">Filter</item></order>",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "1",
"l30DaysUniquePayers": "1"
}
},
{
"url": "https://402utils.com/v1/yaml",
"description": "Convert between YAML and JSON in one call. to:\"json\" parses a YAML document (config files, docker-compose, Kubernetes manifests, CI pipelines) into a plain JSON value; to:\"yaml\" renders any JSON value as clean block-style YAML. Hardened: safe core schema (tags like !!js/function never execute), alias bombs rejected, one document per call, parse errors return line/column. YAML input up to 2 MB UTF-8.",
"pricing": {
"amount": "0.001",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "POST",
"providerName": "",
"parameters": [
{
"group": "body",
"name": "input",
"type": "string",
"description": "",
"example": "services:\n web:\n image: nginx:1.29\n ports:\n - \"80:80\"\n",
"enumValues": [],
"default": null,
"required": false
},
{
"group": "body",
"name": "to",
"type": "string",
"description": "",
"example": "json",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "2",
"l30DaysUniquePayers": "2"
}
},
{
"url": "https://402utils.com/v1/zip-inspect",
"description": "Inspect a ZIP archive safely: send the bytes directly or a JSON body with a public {url}. Returns the entry list (path, size, compressedSize, isDir); entries with path traversal (../), absolute or malformed paths are flagged suspicious:true and never interpreted. Add ?extract=exact/entry/path to get that one file back (max 5 MB decompressed). Zip bombs are refused. Max 20 MB.",
"pricing": {
"amount": "0.003",
"currency": "USDC",
"network": "eip155:8453",
"scheme": "exact",
"maxAmount": "",
"minAmount": ""
},
"method": "POST",
"providerName": "",
"parameters": [
{
"group": "body",
"name": "url",
"type": "string",
"description": "",
"example": "https://example.com/archive.zip",
"enumValues": [],
"default": null,
"required": false
}
],
"serviceName": "",
"tags": [],
"quality": {
"l30DaysTotalCalls": "1",
"l30DaysUniquePayers": "1"
}
}
],
"integrationType": "",
"isNew": false,
"priceSummary": {
"minAmount": "0.001",
"maxAmount": "0.01",
"avgCostPerTransaction": "0.002981",
"avgCostBasis": "exact",
"currency": "USDC"
},
"serviceName": "",
"tags": [],
"iconUrl": ""
}
}