x402 List

x402 Protocol Service Directory

●

Duo Data Utilities

Data PAYMENT-READY

payment-ready until 2026-10-11

33 small deterministic data utilities for agents and developers, each a plain GET at $0.05 paid over x402 (USDC on Base). Identifier check digits (national IDs, IBAN, GS1, ISIN/CUSIP/SEDOL/FIGI), dates, calendars and time zones, text and Unicode, URL/IDN/semver/hash/JWT parsing, geohash and plus codes, geodesic distance, blockchain address and selector primitives, reference tables (NUTS, airports, currencies, countries), number words, statistics and allocation. No account, no API key.

Pay from $0.05 per request in USDC on Base, settled onchain via the x402 protocol, no signup, no API key needed.

listed 2026-10-04 · no on-chain settlement recorded yet

BASE URL https://api.duoleads.com │ WEBSITE https://duoleads.com │ ENDPOINTS 33 │ NETWORK Base │ ASSET USDC │ MEMBER SINCE 2026-10-04 │ MONITORED SINCE 2026-10-04

VERDICT

ranking generation 3

solid 83/100 #160 of 346 in Data by measured score

What the score read on this service: status online, 100% uptime, latest daily rollup (no 30d window yet), 118ms response p95, x402 compliance 14 of 14, $0.05 price against the category, on-chain traction measured. Each of those is measured, and each is published in full below.

The score comes from our own monitoring, never from reviews, operator claims, or a language model: reliability, x402 compliance, price against the category, a deterministic risk flag, and a small on-chain traction term, weighted by ranking generation 3. It is not placement anyone can buy: the paid verify tier is reported beside it and is not one of its inputs. Every component below stays published and read-only.

It is a score inside Data, and only there: price and speed are scored against the whole category field, every listing in it that carries no danger flag, the scored service included, which here means 346 listings, this one among them. That set is wider than the 346 the position above is counted against, because a listing we have measured too little of to rank still sits in the field the price and the speed are normalized over. The same service in a different field would read differently. The same engine answers GET /api/v1/best, and asked for a different pool (the whole directory, or another filter) it returns a different number for this service under this same ranking generation. Neither is more correct: they answer different questions, and the methodology states which is which.

Bands on the 0 to 100 measured score: strong at 93 and above, solid from 75, mixed from 55, weak below 55. Price and speed are scored against the whole category field, every listing in it that carries no danger flag, the scored service included, so the score places a service in its own field.

ALTERNATIVES IN DATA

Other Data services in this directory, ordered by the same measured score. The figures are ours: 30-day uptime from our own probes, 30-day settlement volume read on-chain (a conservative undercount, and null where we cannot measure it, never a zero).

Ranked alternative x402 services in the same category, with band, measured score, 30-day uptime and 30-day on-chain settlement volume
SERVICE BAND SCORE UPTIME 30D VOL 30D
SniperX•x402 strong 96 99.9% $322.77
glim.sh strong 94 100% $20.60
cn402 solid 93 100% $36.26
x402node solid 92 100% $36.26
twit.sh solid 92 100% $32.64
5 of 345 other ranked services in Data · see the whole category

ASSESSMENT

updated 1h ago

The parts the verdict above is computed from, each with its proof. Click any chip. Measured values stay read-only; unknown is honest, and an unknown is never counted as a zero.

reliability 100%
uptime · latest daily rollup
-
uptime 7d
-
uptime 30d
-
uptime 90d
-
response p95
118ms
avg response
118ms
total checks
1

Measured on the unpaid 402 handshake, not the paid call. A service can 402 correctly and still fail after payment.

compliance A (14/14)

14 of 14 x402 conformance checks pass. Full checklist below.

jump to compliance checklist

price $0.05 (p87 in Data)
price (min)
$0.05
category percentile (min)
p87 in Data
endpoints / prices
33 / 1
model
flat
stability
100%
risk clean

No deterministic risk flag. Risk fires only on an exact blocklist match, or a reserved-brand name with a mismatched verified payTo. Never from low uptime, a high price, or a model guess.

domain age
2166d
registrar
Key-Systems GmbH
hosting
custom
domain created
2020-10-29

Identity facts, not a risk score.

traction $0.00 30d · 0 buyers
volume 30d
$0.00
buyers 30d
0
settlements 30d
0
measured since
--- (start of our harvest window)
last settlement
---
top buyer share
-
trend 7d vs 30d
-
networks
eip155:8453
volume all-time
$0
settlements all-time
0
median settlement 30d
-
max settlement 30d
-
settled via
-

Conservative undercount: only USDC settlements via facilitators we measure are counted. A measured floor, not an estimate.

Top buyer share is part of the ranking score: a higher share lowers the traction part of the score, by up to half when one address holds all 30d volume.

WHAT IT DOES

ai-derived

No AI synthesis has been produced for this service yet.

ENDPOINTS

Service endpoints with HTTP method, path, description, pricing, and network
METHOD PATH DESCRIPTION PRICE NETWORK ASSET 402 CHANNEL
GET /v1/chain/address $0.05 Base USDC header
GET /v1/chain/selector $0.05 Base USDC header
GET /v1/code/hash $0.05 Base USDC header
GET /v1/code/idn $0.05 Base USDC header
GET /v1/code/jwt $0.05 Base USDC header
GET /v1/code/semver $0.05 Base USDC header
GET /v1/code/url $0.05 Base USDC header
GET /v1/geo/distance $0.05 Base USDC header
GET /v1/geo/geohash $0.05 Base USDC header
GET /v1/geo/pluscode $0.05 Base USDC header
GET /v1/geo/polygon $0.05 Base USDC header
GET /v1/id/gs1 $0.05 Base USDC header
GET /v1/id/iban $0.05 Base USDC header
GET /v1/id/iban-build $0.05 Base USDC header
GET /v1/id/national $0.05 Base USDC header
GET /v1/id/security $0.05 Base USDC header
GET /v1/num/allocate $0.05 Base USDC header
GET /v1/num/radix $0.05 Base USDC header
GET /v1/num/stats $0.05 Base USDC header
GET /v1/num/words $0.05 Base USDC header
GET /v1/ref/airport $0.05 Base USDC header
GET /v1/ref/country $0.05 Base USDC header
GET /v1/ref/currency $0.05 Base USDC header
GET /v1/ref/nuts $0.05 Base USDC header
GET /v1/text/similarity $0.05 Base USDC header
GET /v1/text/slug $0.05 Base USDC header
GET /v1/text/transliterate $0.05 Base USDC header
GET /v1/text/unicode $0.05 Base USDC header
GET /v1/time/business-days $0.05 Base USDC header
GET /v1/time/calendar $0.05 Base USDC header
GET /v1/time/dst $0.05 Base USDC header
GET /v1/time/rrule $0.05 Base USDC header
GET /v1/time/zone $0.05 Base USDC header
33 endpoints

REQUEST / RESPONSE EXAMPLE

An unpaid request to GET /v1/chain/address returns HTTP 402 with the payment terms. Settle onchain via your facilitator, then retry with the X-Payment header.

// request
curl -i 'https://api.duoleads.com/v1/chain/address'
// 402 response (captured by monitor) · 33 payloads · click to expand
[
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 120
      }
    ],
    "resource": {
      "url": "https://api.duoleads.com/v1/time/calendar",
      "tags": [
        "deterministic",
        "no-api-key",
        "time",
        "calendar"
      ],
      "iconUrl": "https://api.duoleads.com/logo.png",
      "mimeType": "application/json",
      "description": "Convert a Gregorian date to other calendar systems: Islamic (both the tabular civil calendar and the Umm al-Qura variant), Hebrew, Japanese imperial era, Republic of China, Buddhist and Persian. Also computes Easter Sunday for a year in both the Gregorian and Julian reckonings. Uses the calendar support built into the runtime, with the algorithm named in every response.",
      "serviceName": "Duo Data Utilities"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {
              "to": "islamic,hebrew,japanese",
              "date": "2026-09-28"
            }
          },
          "output": {
            "type": "json",
            "example": {
              "ok": true,
              "data": {
                "calendars": {
                  "hebrew": {
                    "day": 17,
                    "era": "AM",
                    "year": 5787,
                    "month": 1,
                    "algorithm": "Hebrew calendar (months numbered from Tishri = 1)",
                    "formatted": "17 Tishri 5787",
                    "month_name": "Tishri"
                  },
                  "islamic": {
                    "day": 15,
                    "era": "AH",
                    "year": 1448,
                    "month": 4,
                    "algorithm": "tabular civil (islamic-civil)",
                    "formatted": "Rabiʻ II 15, 1448 AH",
                    "month_name": "Rabiʻ II"
                  },
                  "japanese": {
                    "day": 28,
                    "era": "Reiwa",
                    "year": 8,
                    "month": 9,
                    "algorithm": "Japanese imperial eras on the Gregorian calendar",
                    "formatted": "September 28, 8 Reiwa",
                    "month_name": "September"
                  }
                },
                "gregorian": "2026-09-28"
              },
              "meta": {
                "price_usd": "0.05",
                "disclaimer": "Factual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms",
                "request_id": "01K6B7Q4ZC8H3F2M9WXR5TYN0D",
                "computed_at": "2026-09-28T12:00:00.000Z",
                "deterministic": true
              },
              "route": "/v1/time/calendar",
              "version": "1.0.0"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [],
                  "properties": {
                    "op": {
                      "enum": [
                        "convert",
                        "easter"
                      ],
                      "type": "string",
                      "default": "convert",
                      "maxLength": 64,
                      "description": "convert (default) a Gregorian date, or easter for a year."
                    },
                    "to": {
                      "type": "string",
                      "maxLength": 256,
                      "description": "Comma-separated calendar ids: islamic, islamic-umalqura, hebrew, japanese, roc, buddhist, persian. Default all."
                    },
                    "date": {
                      "type": "string",
                      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                      "maxLength": 32,
                      "description": "Gregorian date YYYY-MM-DD. Required when op=convert."
                    },
                    "rite": {
                      "enum": [
                        "western",
                        "eastern"
                      ],
                      "type": "string",
                      "default": "western",
                      "maxLength": 64,
                      "description": "Easter reckoning: western (default) or eastern."
                    },
                    "year": {
                      "type": "string",
                      "pattern": "^[+-]?\\d+$",
                      "maxLength": 64,
                      "description": "Year for op=easter, 326-9999."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "required": [
                    "ok",
                    "route",
                    "version",
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "const": true
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "date": {
                          "type": "string"
                        },
                        "rite": {
                          "type": "string"
                        },
                        "year": {
                          "type": "integer"
                        },
                        "algorithm": {
                          "type": "string"
                        },
                        "calendars": {
                          "type": "object",
                          "description": "keyed by caller-chosen names",
                          "additionalProperties": {
                            "type": "object",
                            "required": [
                              "year",
                              "month",
                              "month_name",
                              "day",
                              "era",
                              "formatted",
                              "algorithm"
                            ],
                            "properties": {
                              "day": {
                                "type": "integer"
                              },
                              "era": {
                                "type": "string"
                              },
                              "year": {
                                "type": "integer"
                              },
                              "month": {
                                "type": "integer"
                              },
                              "algorithm": {
                                "type": "string"
                              },
                              "formatted": {
                                "type": "string"
                              },
                              "month_name": {
                                "type": "string"
                              }
                            }
                          }
                        },
                        "gregorian": {
                          "type": "string"
                        },
                        "julian_date": {
                          "type": "string"
                        },
                        "unavailable": {
                          "type": "object",
                          "description": "keyed by caller-chosen names",
                          "additionalProperties": {
                            "type": "string"
                          }
                        },
                        "gregorian_date": {
                          "type": "string"
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "required": [
                        "request_id",
                        "computed_at",
                        "price_usd",
                        "deterministic",
                        "disclaimer"
                      ],
                      "properties": {
                        "sources": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "version",
                              "published"
                            ]
                          }
                        },
                        "price_usd": {
                          "type": "string"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "request_id": {
                          "type": "string"
                        },
                        "computed_at": {
                          "type": "string",
                          "description": "RFC 3339 UTC with milliseconds"
                        },
                        "deterministic": {
                          "type": "boolean"
                        }
                      }
                    },
                    "route": {
                      "const": "/v1/time/calendar"
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 120
      }
    ],
    "resource": {
      "url": "https://api.duoleads.com/v1/time/rrule",
      "tags": [
        "deterministic",
        "no-api-key",
        "time",
        "calendar",
        "recurrence"
      ],
      "iconUrl": "https://api.duoleads.com/logo.png",
      "mimeType": "application/json",
      "description": "Expand an RFC 5545 recurrence rule into concrete occurrence timestamps. Accepts an RRULE string with DTSTART, an IANA time zone, and optional EXDATE and RDATE lists, and returns up to 200 occurrences as both local wall-clock times and UTC instants. Supports FREQ, INTERVAL, COUNT, UNTIL, BYDAY, BYMONTHDAY, BYMONTH, BYSETPOS and WKST. Occurrences moved by a DST gap carry gap: true. Rules needing over 50,000 candidate evaluations are rejected.",
      "serviceName": "Duo Data Utilities"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {
              "zone": "Europe/Amsterdam",
              "rrule": "FREQ=MONTHLY;BYDAY=-1FR;COUNT=3",
              "dtstart": "2026-01-01T09:00:00"
            }
          },
          "output": {
            "type": "json",
            "example": {
              "ok": true,
              "data": {
                "rule": {
                  "freq": "MONTHLY",
                  "wkst": "MO",
                  "byday": [
                    "-1FR"
                  ],
                  "count": 3,
                  "interval": 1
                },
                "zone": "Europe/Amsterdam",
                "count": 3,
                "truncated": false,
                "occurrences": [
                  {
                    "dst": false,
                    "local": "2026-01-30T09:00:00",
                    "offset": "+01:00",
                    "instant": "2026-01-30T08:00:00.000Z",
                    "epoch_ms": 1769760000000
                  },
                  {
                    "dst": false,
                    "local": "2026-02-27T09:00:00",
                    "offset": "+01:00",
                    "instant": "2026-02-27T08:00:00.000Z",
                    "epoch_ms": 1772179200000
                  },
                  {
                    "dst": false,
                    "local": "2026-03-27T09:00:00",
                    "offset": "+01:00",
                    "instant": "2026-03-27T08:00:00.000Z",
                    "epoch_ms": 1774598400000
                  }
                ]
              },
              "meta": {
                "price_usd": "0.05",
                "disclaimer": "Factual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms",
                "request_id": "01K6B7Q4ZC8H3F2M9WXR5TYN0D",
                "computed_at": "2026-09-28T12:00:00.000Z",
                "deterministic": true
              },
              "route": "/v1/time/rrule",
              "version": "1.0.0"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [
                    "rrule",
                    "dtstart",
                    "zone"
                  ],
                  "properties": {
                    "zone": {
                      "type": "string",
                      "maxLength": 64,
                      "description": "IANA time zone id."
                    },
                    "after": {
                      "type": "string",
                      "maxLength": 64,
                      "description": "RFC 3339 instant; skip occurrences before it."
                    },
                    "count": {
                      "type": "string",
                      "default": "20",
                      "pattern": "^[+-]?\\d+$",
                      "maxLength": 64,
                      "description": "Maximum occurrences to return, 1-200. Default 20."
                    },
                    "rdate": {
                      "type": "string",
                      "maxLength": 1024,
                      "description": "Comma-separated local datetimes to add."
                    },
                    "rrule": {
                      "type": "string",
                      "maxLength": 512,
                      "description": "RFC 5545 RRULE, e.g. FREQ=MONTHLY;BYDAY=-1FR;COUNT=6."
                    },
                    "exdate": {
                      "type": "string",
                      "maxLength": 1024,
                      "description": "Comma-separated local datetimes to exclude."
                    },
                    "dtstart": {
                      "type": "string",
                      "maxLength": 32,
                      "description": "First occurrence, YYYY-MM-DDTHH:MM:SS local to zone."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "required": [
                    "ok",
                    "route",
                    "version",
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "const": true
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "occurrences",
                        "count",
                        "truncated",
                        "rule",
                        "zone"
                      ],
                      "properties": {
                        "rule": {
                          "type": "object",
                          "required": [
                            "freq",
                            "interval",
                            "wkst"
                          ],
                          "properties": {
                            "freq": {
                              "type": "string"
                            },
                            "wkst": {
                              "type": "string"
                            },
                            "byday": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "count": {
                              "type": "integer"
                            },
                            "until": {
                              "type": "string"
                            },
                            "byhour": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              }
                            },
                            "bymonth": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              }
                            },
                            "byminute": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              }
                            },
                            "bysecond": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              }
                            },
                            "bysetpos": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              }
                            },
                            "interval": {
                              "type": "integer"
                            },
                            "bymonthday": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              }
                            }
                          }
                        },
                        "zone": {
                          "type": "string"
                        },
                        "count": {
                          "type": "integer"
                        },
                        "truncated": {
                          "type": "boolean"
                        },
                        "occurrences": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "local",
                              "instant",
                              "epoch_ms",
                              "offset",
                              "dst"
                            ],
                            "properties": {
                              "dst": {
                                "type": "boolean"
                              },
                              "gap": {
                                "type": "boolean"
                              },
                              "local": {
                                "type": "string"
                              },
                              "offset": {
                                "type": "string"
                              },
                              "instant": {
                                "type": "string"
                              },
                              "epoch_ms": {
                                "type": "integer"
                              }
                            }
                          }
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "required": [
                        "request_id",
                        "computed_at",
                        "price_usd",
                        "deterministic",
                        "disclaimer"
                      ],
                      "properties": {
                        "sources": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "version",
                              "published"
                            ]
                          }
                        },
                        "price_usd": {
                          "type": "string"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "request_id": {
                          "type": "string"
                        },
                        "computed_at": {
                          "type": "string",
                          "description": "RFC 3339 UTC with milliseconds"
                        },
                        "deterministic": {
                          "type": "boolean"
                        }
                      }
                    },
                    "route": {
                      "const": "/v1/time/rrule"
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 120
      }
    ],
    "resource": {
      "url": "https://api.duoleads.com/v1/time/dst",
      "tags": [
        "no-api-key",
        "time",
        "timezones",
        "dst"
      ],
      "iconUrl": "https://api.duoleads.com/logo.png",
      "mimeType": "application/json",
      "description": "List the daylight-saving transitions for an IANA time zone over a date range: the exact instant of each shift, the offset before and after, and whether local clocks jump forward or back. Returns the current offset and DST state, and the next transition from a given instant. Zones without DST return an empty transition list rather than an error.",
      "serviceName": "Duo Data Utilities"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {
              "from": "2026-01-01",
              "zone": "Europe/Amsterdam",
              "years": "1"
            }
          },
          "output": {
            "type": "json",
            "example": {
              "ok": true,
              "data": {
                "next": {
                  "at": "2026-03-29T01:00:00.000Z",
                  "direction": "forward",
                  "local_after": "2026-03-29T03:00:00",
                  "local_before": "2026-03-29T01:59:59",
                  "offset_after": "+02:00",
                  "delta_seconds": 3600,
                  "offset_before": "+01:00",
                  "abbreviation_after": "GMT+2",
                  "abbreviation_before": "GMT+1"
                },
                "zone": "Europe/Amsterdam",
                "current": {
                  "dst": false,
                  "offset": "+01:00",
                  "abbreviation": "GMT+1",
                  "offset_seconds": 3600
                },
                "transitions": [
                  {
                    "at": "2026-03-29T01:00:00.000Z",
                    "direction": "forward",
                    "local_after": "2026-03-29T03:00:00",
                    "local_before": "2026-03-29T01:59:59",
                    "offset_after": "+02:00",
                    "delta_seconds": 3600,
                    "offset_before": "+01:00",
                    "abbreviation_after": "GMT+2",
                    "abbreviation_before": "GMT+1"
                  },
                  {
                    "at": "2026-10-25T01:00:00.000Z",
                    "direction": "back",
                    "local_after": "2026-10-25T02:00:00",
                    "local_before": "2026-10-25T02:59:59",
                    "offset_after": "+01:00",
                    "delta_seconds": -3600,
                    "offset_before": "+02:00",
                    "abbreviation_after": "GMT+1",
                    "abbreviation_before": "GMT+2"
                  }
                ],
                "observes_dst": true
              },
              "meta": {
                "price_usd": "0.05",
                "disclaimer": "Factual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms",
                "request_id": "01K6B7Q4ZC8H3F2M9WXR5TYN0D",
                "computed_at": "2026-09-28T12:00:00.000Z",
                "deterministic": true
              },
              "route": "/v1/time/dst",
              "version": "1.0.0"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [
                    "zone"
                  ],
                  "properties": {
                    "from": {
                      "type": "string",
                      "maxLength": 64,
                      "description": "Start of the range: RFC 3339 or YYYY-MM-DD. Default now."
                    },
                    "zone": {
                      "type": "string",
                      "maxLength": 64,
                      "description": "IANA time zone id."
                    },
                    "years": {
                      "type": "string",
                      "default": "2",
                      "pattern": "^[+-]?\\d+$",
                      "maxLength": 64,
                      "description": "Length of the range in years, 1-10. Default 2."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "required": [
                    "ok",
                    "route",
                    "version",
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "const": true
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "zone",
                        "observes_dst",
                        "current",
                        "next",
                        "transitions"
                      ],
                      "properties": {
                        "next": {
                          "type": [
                            "object",
                            "null"
                          ],
                          "required": [
                            "at",
                            "local_before",
                            "local_after",
                            "offset_before",
                            "offset_after",
                            "delta_seconds",
                            "direction",
                            "abbreviation_before",
                            "abbreviation_after"
                          ],
                          "properties": {
                            "at": {
                              "type": "string"
                            },
                            "direction": {
                              "type": "string"
                            },
                            "local_after": {
                              "type": "string"
                            },
                            "local_before": {
                              "type": "string"
                            },
                            "offset_after": {
                              "type": "string"
                            },
                            "delta_seconds": {
                              "type": "integer"
                            },
                            "offset_before": {
                              "type": "string"
                            },
                            "abbreviation_after": {
                              "type": "string"
                            },
                            "abbreviation_before": {
                              "type": "string"
                            }
                          }
                        },
                        "zone": {
                          "type": "string"
                        },
                        "current": {
                          "type": "object",
                          "required": [
                            "offset",
                            "offset_seconds",
                            "abbreviation",
                            "dst"
                          ],
                          "properties": {
                            "dst": {
                              "type": "boolean"
                            },
                            "offset": {
                              "type": "string"
                            },
                            "abbreviation": {
                              "type": "string"
                            },
                            "offset_seconds": {
                              "type": "integer"
                            }
                          }
                        },
                        "transitions": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "at",
                              "local_before",
                              "local_after",
                              "offset_before",
                              "offset_after",
                              "delta_seconds",
                              "direction",
                              "abbreviation_before",
                              "abbreviation_after"
                            ],
                            "properties": {
                              "at": {
                                "type": "string"
                              },
                              "direction": {
                                "type": "string"
                              },
                              "local_after": {
                                "type": "string"
                              },
                              "local_before": {
                                "type": "string"
                              },
                              "offset_after": {
                                "type": "string"
                              },
                              "delta_seconds": {
                                "type": "integer"
                              },
                              "offset_before": {
                                "type": "string"
                              },
                              "abbreviation_after": {
                                "type": "string"
                              },
                              "abbreviation_before": {
                                "type": "string"
                              }
                            }
                          }
                        },
                        "observes_dst": {
                          "type": "boolean"
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "required": [
                        "request_id",
                        "computed_at",
                        "price_usd",
                        "deterministic",
                        "disclaimer"
                      ],
                      "properties": {
                        "sources": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "version",
                              "published"
                            ]
                          }
                        },
                        "price_usd": {
                          "type": "string"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "request_id": {
                          "type": "string"
                        },
                        "computed_at": {
                          "type": "string",
                          "description": "RFC 3339 UTC with milliseconds"
                        },
                        "deterministic": {
                          "type": "boolean"
                        }
                      }
                    },
                    "route": {
                      "const": "/v1/time/dst"
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 120
      }
    ],
    "resource": {
      "url": "https://api.duoleads.com/v1/id/national",
      "tags": [
        "deterministic",
        "no-api-key",
        "id",
        "identifiers",
        "validation"
      ],
      "iconUrl": "https://api.duoleads.com/logo.png",
      "mimeType": "application/json",
      "description": "Validate a national identity, tax or company registration number against its country's official checksum rule. Covers 23 countries including NL BSN, ES NIF/NIE/CIF, IT codice fiscale, FR SIREN/SIRET, DE Steuer-ID, BE/PL/CZ national numbers, SE/NO/DK/FI personal numbers, BR CPF/CNPJ, AU ABN/TFN, UK NINo, IE PPS, US NPI/EIN. Structure and check digit only — no registry lookup; the number itself is never stored (logs keep only its length and character types).",
      "serviceName": "Duo Data Utilities"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {
              "kind": "bsn",
              "value": "111222333",
              "country": "NL"
            }
          },
          "output": {
            "type": "json",
            "example": {
              "ok": true,
              "data": {
                "kind": "bsn",
                "valid": true,
                "reason": null,
                "country": "NL",
                "derived": {},
                "algorithm": "elfproef-11",
                "formatted": "111.222.333",
                "normalised": "111222333"
              },
              "meta": {
                "price_usd": "0.05",
                "disclaimer": "Factual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms",
                "request_id": "01K6B7Q4ZC8H3F2M9WXR5TYN0D",
                "computed_at": "2026-09-28T12:00:00.000Z",
                "deterministic": true
              },
              "route": "/v1/id/national",
              "version": "1.0.0"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [
                    "country",
                    "kind",
                    "value"
                  ],
                  "properties": {
                    "kind": {
                      "type": "string",
                      "maxLength": 32,
                      "description": "Identifier type for that country, e.g. bsn, nif, cf, cpf."
                    },
                    "value": {
                      "type": "string",
                      "maxLength": 64,
                      "description": "The identifier. Separators (space . - /) are stripped before checking."
                    },
                    "country": {
                      "type": "string",
                      "maxLength": 16,
                      "description": "ISO 3166-1 alpha-2 country code, case-insensitive. One of the 23 supported countries; the United Kingdom is accepted as UK or GB (the response echoes what you sent)."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "required": [
                    "ok",
                    "route",
                    "version",
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "const": true
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "valid",
                        "country",
                        "kind",
                        "algorithm",
                        "normalised",
                        "formatted",
                        "reason",
                        "derived"
                      ],
                      "properties": {
                        "kind": {
                          "type": "string"
                        },
                        "valid": {
                          "type": "boolean"
                        },
                        "reason": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "country": {
                          "type": "string"
                        },
                        "derived": {
                          "type": "object",
                          "properties": {
                            "sex": {
                              "type": "string"
                            },
                            "birth_date": {
                              "type": "string"
                            },
                            "birth_month": {
                              "type": [
                                "number",
                                "null"
                              ]
                            },
                            "birth_year_yy": {
                              "type": "string"
                            },
                            "birthplace_code": {
                              "type": "string"
                            },
                            "century_assumed": {
                              "type": "boolean"
                            },
                            "department_code": {
                              "type": "string"
                            }
                          }
                        },
                        "algorithm": {
                          "type": "string"
                        },
                        "formatted": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "normalised": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "required": [
                        "request_id",
                        "computed_at",
                        "price_usd",
                        "deterministic",
                        "disclaimer"
                      ],
                      "properties": {
                        "sources": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "version",
                              "published"
                            ]
                          }
                        },
                        "price_usd": {
                          "type": "string"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "request_id": {
                          "type": "string"
                        },
                        "computed_at": {
                          "type": "string",
                          "description": "RFC 3339 UTC with milliseconds"
                        },
                        "deterministic": {
                          "type": "boolean"
                        }
                      }
                    },
                    "route": {
                      "const": "/v1/id/national"
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 120
      }
    ],
    "resource": {
      "url": "https://api.duoleads.com/v1/id/iban",
      "tags": [
        "deterministic",
        "no-api-key",
        "id",
        "identifiers",
        "banking"
      ],
      "iconUrl": "https://api.duoleads.com/logo.png",
      "mimeType": "application/json",
      "description": "Validate an IBAN: length for its country, permitted character classes per field, and the ISO 7064 mod-97-10 check digits. Returns the verdict with a specific failure reason, the electronic and print formats, and the decomposed bank code, branch code and account number according to that country's registered layout. Covers the 89 countries of the SWIFT IBAN registry. Structure and checksum only, it does not confirm the account exists.",
      "serviceName": "Duo Data Utilities"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {
              "iban": "NL91 ABNA 0417 1643 00"
            }
          },
          "output": {
            "type": "json",
            "example": {
              "ok": true,
              "data": {
                "bban": "ABNA0417164300",
                "iban": "NL91ABNA0417164300",
                "parts": {
                  "bank": "ABNA",
                  "branch": null,
                  "account": "0417164300"
                },
                "valid": true,
                "length": 18,
                "reason": null,
                "country": "NL",
                "algorithm": "mod-97-10",
                "iban_print": "NL91 ABNA 0417 1643 00",
                "check_digits": "91",
                "expected_length": 18
              },
              "meta": {
                "sources": [
                  {
                    "id": "iban-registry",
                    "licence": "MIT",
                    "version": "ibantools 4.5.4, field layout schwifty 2026.7.3",
                    "published": "2026-04-10",
                    "attribution": "IBAN registry via ibantools (MIT); field offsets via schwifty (MIT); underlying data: SWIFT IBAN Registry, public"
                  }
                ],
                "price_usd": "0.05",
                "disclaimer": "Factual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms",
                "request_id": "01K6B7Q4ZC8H3F2M9WXR5TYN0D",
                "computed_at": "2026-09-28T12:00:00.000Z",
                "deterministic": true
              },
              "route": "/v1/id/iban",
              "version": "1.0.0"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [
                    "iban"
                  ],
                  "properties": {
                    "iban": {
                      "type": "string",
                      "maxLength": 64,
                      "description": "The IBAN. Spaces and non-breaking spaces are stripped; lowercase is accepted and uppercased."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "required": [
                    "ok",
                    "route",
                    "version",
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "const": true
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "valid",
                        "iban",
                        "iban_print",
                        "country",
                        "check_digits",
                        "bban",
                        "parts",
                        "length",
                        "expected_length",
                        "reason",
                        "algorithm"
                      ],
                      "properties": {
                        "bban": {
                          "type": "string"
                        },
                        "iban": {
                          "type": "string"
                        },
                        "parts": {
                          "type": "object",
                          "required": [
                            "bank",
                            "branch",
                            "account"
                          ],
                          "properties": {
                            "bank": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "branch": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "account": {
                              "type": [
                                "string",
                                "null"
                              ]
                            }
                          }
                        },
                        "valid": {
                          "type": "boolean"
                        },
                        "length": {
                          "type": "integer"
                        },
                        "reason": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "country": {
                          "type": "string"
                        },
                        "algorithm": {
                          "type": "string"
                        },
                        "iban_print": {
                          "type": "string"
                        },
                        "check_digits": {
                          "type": "string"
                        },
                        "expected_length": {
                          "type": [
                            "integer",
                            "null"
                          ]
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "required": [
                        "request_id",
                        "computed_at",
                        "price_usd",
                        "deterministic",
                        "disclaimer"
                      ],
                      "properties": {
                        "sources": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "version",
                              "published"
                            ]
                          }
                        },
                        "price_usd": {
                          "type": "string"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "request_id": {
                          "type": "string"
                        },
                        "computed_at": {
                          "type": "string",
                          "description": "RFC 3339 UTC with milliseconds"
                        },
                        "deterministic": {
                          "type": "boolean"
                        }
                      }
                    },
                    "route": {
                      "const": "/v1/id/iban"
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 120
      }
    ],
    "resource": {
      "url": "https://api.duoleads.com/v1/id/iban-build",
      "tags": [
        "deterministic",
        "no-api-key",
        "id",
        "identifiers",
        "banking"
      ],
      "iconUrl": "https://api.duoleads.com/logo.png",
      "mimeType": "application/json",
      "description": "Construct an IBAN from a country code and the domestic account parts, computing the ISO 7064 mod-97-10 check digits. Takes either a single BBAN string or named parts (bank code, branch code, account number); digit fields are left-padded with zeros to the country's registered widths. Returns the IBAN in electronic and print formats with its bank, branch and account parts. Covers the 89 SWIFT registry countries. Named parts work only where they span the whole BBAN; otherwise pass the BBAN.",
      "serviceName": "Duo Data Utilities"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {
              "bank": "ABNA",
              "account": "0417164300",
              "country": "NL"
            }
          },
          "output": {
            "type": "json",
            "example": {
              "ok": true,
              "data": {
                "bban": "ABNA0417164300",
                "iban": "NL91ABNA0417164300",
                "parts": {
                  "bank": "ABNA",
                  "branch": null,
                  "account": "0417164300"
                },
                "valid": true,
                "length": 18,
                "country": "NL",
                "iban_print": "NL91 ABNA 0417 1643 00",
                "check_digits": "91"
              },
              "meta": {
                "sources": [
                  {
                    "id": "iban-registry",
                    "licence": "MIT",
                    "version": "ibantools 4.5.4, field layout schwifty 2026.7.3",
                    "published": "2026-04-10",
                    "attribution": "IBAN registry via ibantools (MIT); field offsets via schwifty (MIT); underlying data: SWIFT IBAN Registry, public"
                  }
                ],
                "price_usd": "0.05",
                "disclaimer": "Factual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms",
                "request_id": "01K6B7Q4ZC8H3F2M9WXR5TYN0D",
                "computed_at": "2026-09-28T12:00:00.000Z",
                "deterministic": true
              },
              "route": "/v1/id/iban-build",
              "version": "1.0.0"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [
                    "country"
                  ],
                  "properties": {
                    "bank": {
                      "type": "string",
                      "maxLength": 16,
                      "description": "Bank code. Requires account."
                    },
                    "bban": {
                      "type": "string",
                      "maxLength": 34,
                      "description": "The whole domestic account number (BBAN), alphanumeric. Use this or bank plus account."
                    },
                    "branch": {
                      "type": "string",
                      "maxLength": 16,
                      "description": "Branch code, for countries whose layout has a branch field."
                    },
                    "account": {
                      "type": "string",
                      "maxLength": 32,
                      "description": "Account number. Requires bank."
                    },
                    "country": {
                      "type": "string",
                      "maxLength": 16,
                      "description": "ISO 3166-1 alpha-2 country code in the SWIFT IBAN registry, case-insensitive."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "required": [
                    "ok",
                    "route",
                    "version",
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "const": true
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "iban",
                        "iban_print",
                        "country",
                        "check_digits",
                        "bban",
                        "parts",
                        "length",
                        "valid"
                      ],
                      "properties": {
                        "bban": {
                          "type": "string"
                        },
                        "iban": {
                          "type": "string"
                        },
                        "parts": {
                          "type": "object",
                          "required": [
                            "bank",
                            "branch",
                            "account"
                          ],
                          "properties": {
                            "bank": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "branch": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "account": {
                              "type": [
                                "string",
                                "null"
                              ]
                            }
                          }
                        },
                        "valid": {
                          "type": "boolean"
                        },
                        "length": {
                          "type": "integer"
                        },
                        "country": {
                          "type": "string"
                        },
                        "iban_print": {
                          "type": "string"
                        },
                        "check_digits": {
                          "type": "string"
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "required": [
                        "request_id",
                        "computed_at",
                        "price_usd",
                        "deterministic",
                        "disclaimer"
                      ],
                      "properties": {
                        "sources": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "version",
                              "published"
                            ]
                          }
                        },
                        "price_usd": {
                          "type": "string"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "request_id": {
                          "type": "string"
                        },
                        "computed_at": {
                          "type": "string",
                          "description": "RFC 3339 UTC with milliseconds"
                        },
                        "deterministic": {
                          "type": "boolean"
                        }
                      }
                    },
                    "route": {
                      "const": "/v1/id/iban-build"
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 120
      }
    ],
    "resource": {
      "url": "https://api.duoleads.com/v1/id/gs1",
      "tags": [
        "deterministic",
        "no-api-key",
        "id",
        "identifiers",
        "validation"
      ],
      "iconUrl": "https://api.duoleads.com/logo.png",
      "mimeType": "application/json",
      "description": "Validate and convert GS1 identifiers: GTIN-8, GTIN-12 (UPC-A), GTIN-13 (EAN-13), GTIN-14, GLN and SSCC. Returns the check-digit verdict, the computed correct check digit, the GTIN-14 form with its indicator digit, and conversion between GTIN-8, GTIN-12, GTIN-13 and GTIN-14. No company-prefix split is returned: GS1's prefix-length table is no longer public data. Also computes a missing check digit from a partial code. Structure only, no product database.",
      "serviceName": "Duo Data Utilities"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {
              "value": "5901234123457"
            }
          },
          "output": {
            "type": "json",
            "example": {
              "ok": true,
              "data": {
                "type": "gtin13",
                "valid": true,
                "gtin14": "05901234123457",
                "reason": null,
                "indicator": "0",
                "normalised": "5901234123457",
                "check_digit": "7",
                "also_valid_as": [
                  "gln"
                ],
                "check_digit_ok": true
              },
              "meta": {
                "price_usd": "0.05",
                "disclaimer": "Factual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms",
                "request_id": "01K6B7Q4ZC8H3F2M9WXR5TYN0D",
                "computed_at": "2026-09-28T12:00:00.000Z",
                "deterministic": true
              },
              "route": "/v1/id/gs1",
              "version": "1.0.0"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [
                    "value"
                  ],
                  "properties": {
                    "op": {
                      "enum": [
                        "validate",
                        "checkdigit",
                        "convert"
                      ],
                      "type": "string",
                      "default": "validate",
                      "maxLength": 64,
                      "description": "validate (default), checkdigit (compute the missing final digit) or convert."
                    },
                    "to": {
                      "enum": [
                        "gtin8",
                        "gtin12",
                        "gtin13",
                        "gtin14"
                      ],
                      "type": "string",
                      "maxLength": 64,
                      "description": "Target format. Required when op=convert."
                    },
                    "value": {
                      "type": "string",
                      "maxLength": 32,
                      "description": "GS1 code, digits with optional spaces or hyphens. For op=checkdigit, omit the final digit."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "required": [
                    "ok",
                    "route",
                    "version",
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "const": true
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string"
                        },
                        "valid": {
                          "type": "boolean"
                        },
                        "gtin14": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "reason": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "converted": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "indicator": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "normalised": {
                          "type": "string"
                        },
                        "check_digit": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "also_valid_as": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "check_digit_ok": {
                          "type": "boolean"
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "required": [
                        "request_id",
                        "computed_at",
                        "price_usd",
                        "deterministic",
                        "disclaimer"
                      ],
                      "properties": {
                        "sources": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "version",
                              "published"
                            ]
                          }
                        },
                        "price_usd": {
                          "type": "string"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "request_id": {
                          "type": "string"
                        },
                        "computed_at": {
                          "type": "string",
                          "description": "RFC 3339 UTC with milliseconds"
                        },
                        "deterministic": {
                          "type": "boolean"
                        }
                      }
                    },
                    "route": {
                      "const": "/v1/id/gs1"
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 120
      }
    ],
    "resource": {
      "url": "https://api.duoleads.com/v1/id/security",
      "tags": [
        "deterministic",
        "no-api-key",
        "id",
        "identifiers",
        "validation"
      ],
      "iconUrl": "https://api.duoleads.com/logo.png",
      "mimeType": "application/json",
      "description": "Validate the check digit of a financial security identifier: ISIN (ISO 6166), CUSIP, SEDOL and FIGI. Returns the verdict, the computed correct check character, and for an ISIN the issuing country prefix and the embedded NSIN. Also builds an ISIN from a country code plus a 9-character NSIN. Format and checksum only, no security master lookup.",
      "serviceName": "Duo Data Utilities"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {
              "value": "US0378331005"
            }
          },
          "output": {
            "type": "json",
            "example": {
              "ok": true,
              "data": {
                "nsin": "037833100",
                "type": "isin",
                "valid": true,
                "reason": null,
                "country": "US",
                "algorithm": "luhn-mod10-alpha",
                "check_char": "5",
                "normalised": "US0378331005",
                "check_char_ok": true
              },
              "meta": {
                "price_usd": "0.05",
                "disclaimer": "Factual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms",
                "request_id": "01K6B7Q4ZC8H3F2M9WXR5TYN0D",
                "computed_at": "2026-09-28T12:00:00.000Z",
                "deterministic": true
              },
              "route": "/v1/id/security",
              "version": "1.0.0"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [],
                  "properties": {
                    "op": {
                      "enum": [
                        "validate",
                        "build-isin"
                      ],
                      "type": "string",
                      "default": "validate",
                      "maxLength": 64,
                      "description": "validate (default) or build-isin."
                    },
                    "nsin": {
                      "type": "string",
                      "maxLength": 64,
                      "description": "Exactly 9 alphanumeric characters. Required when op=build-isin."
                    },
                    "value": {
                      "type": "string",
                      "maxLength": 24,
                      "description": "ISIN, CUSIP, SEDOL or FIGI to validate. Required when op=validate."
                    },
                    "country": {
                      "type": "string",
                      "maxLength": 16,
                      "description": "ISO 3166-1 alpha-2 code or XS. Required when op=build-isin."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "required": [
                    "ok",
                    "route",
                    "version",
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "const": true
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "isin": {
                          "type": "string"
                        },
                        "nsin": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "type": {
                          "type": "string"
                        },
                        "valid": {
                          "type": "boolean"
                        },
                        "reason": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "country": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "algorithm": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "check_char": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "normalised": {
                          "type": "string"
                        },
                        "check_char_ok": {
                          "type": "boolean"
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "required": [
                        "request_id",
                        "computed_at",
                        "price_usd",
                        "deterministic",
                        "disclaimer"
                      ],
                      "properties": {
                        "sources": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "version",
                              "published"
                            ]
                          }
                        },
                        "price_usd": {
                          "type": "string"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "request_id": {
                          "type": "string"
                        },
                        "computed_at": {
                          "type": "string",
                          "description": "RFC 3339 UTC with milliseconds"
                        },
                        "deterministic": {
                          "type": "boolean"
                        }
                      }
                    },
                    "route": {
                      "const": "/v1/id/security"
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 120
      }
    ],
    "resource": {
      "url": "https://api.duoleads.com/v1/time/zone",
      "tags": [
        "no-api-key",
        "time",
        "timezones"
      ],
      "iconUrl": "https://api.duoleads.com/logo.png",
      "mimeType": "application/json",
      "description": "Convert an instant to wall-clock time in a named IANA time zone, or a wall-clock time in a zone back to an instant. Returns the local date and time, the UTC offset in ±HH:MM and seconds, the zone abbreviation, whether DST is in effect, the ISO week date, and the day of year. Handles the ambiguous and skipped local times at DST boundaries explicitly rather than guessing.",
      "serviceName": "Duo Data Utilities"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {
              "zone": "Europe/Amsterdam",
              "instant": "2026-10-25T00:30:00Z"
            }
          },
          "output": {
            "type": "json",
            "example": {
              "ok": true,
              "data": {
                "dst": true,
                "gap": false,
                "zone": "Europe/Amsterdam",
                "local": "2026-10-25T02:30:00",
                "offset": "+02:00",
                "instant": "2026-10-25T00:30:00.000Z",
                "weekday": "sunday",
                "epoch_ms": 1792888200000,
                "iso_week": {
                  "week": 43,
                  "year": 2026,
                  "weekday": 7
                },
                "ambiguity": null,
                "resolution": null,
                "day_of_year": 298,
                "abbreviation": "GMT+2",
                "offset_seconds": 7200
              },
              "meta": {
                "price_usd": "0.05",
                "disclaimer": "Factual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms",
                "request_id": "01K6B7Q4ZC8H3F2M9WXR5TYN0D",
                "computed_at": "2026-09-28T12:00:00.000Z",
                "deterministic": true
              },
              "route": "/v1/time/zone",
              "version": "1.0.0"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [
                    "zone"
                  ],
                  "properties": {
                    "zone": {
                      "type": "string",
                      "maxLength": 64,
                      "description": "IANA time zone id, e.g. Europe/Amsterdam."
                    },
                    "local": {
                      "type": "string",
                      "maxLength": 64,
                      "description": "Wall-clock time YYYY-MM-DDTHH:MM[:SS] in zone, converted back to an instant. Mutually exclusive with instant."
                    },
                    "instant": {
                      "type": "string",
                      "maxLength": 64,
                      "description": "RFC 3339 timestamp or integer Unix seconds/milliseconds. Defaults to now. Mutually exclusive with local."
                    },
                    "ambiguous": {
                      "enum": [
                        "earlier",
                        "later",
                        "reject"
                      ],
                      "type": "string",
                      "maxLength": 64,
                      "description": "Only with local: which instant a repeated local time maps to. Default earlier."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "required": [
                    "ok",
                    "route",
                    "version",
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "const": true
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "zone",
                        "instant",
                        "epoch_ms",
                        "local",
                        "offset",
                        "offset_seconds",
                        "abbreviation",
                        "dst",
                        "weekday",
                        "iso_week",
                        "day_of_year",
                        "ambiguity",
                        "resolution"
                      ],
                      "properties": {
                        "dst": {
                          "type": "boolean"
                        },
                        "gap": {
                          "type": "boolean"
                        },
                        "zone": {
                          "type": "string"
                        },
                        "local": {
                          "type": "string"
                        },
                        "offset": {
                          "type": "string"
                        },
                        "instant": {
                          "type": "string"
                        },
                        "weekday": {
                          "type": "string"
                        },
                        "epoch_ms": {
                          "type": "integer"
                        },
                        "iso_week": {
                          "type": "object",
                          "required": [
                            "year",
                            "week",
                            "weekday"
                          ],
                          "properties": {
                            "week": {
                              "type": "integer"
                            },
                            "year": {
                              "type": "integer"
                            },
                            "weekday": {
                              "type": "integer"
                            }
                          }
                        },
                        "ambiguity": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "resolution": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "day_of_year": {
                          "type": "integer"
                        },
                        "abbreviation": {
                          "type": "string"
                        },
                        "offset_seconds": {
                          "type": "integer"
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "required": [
                        "request_id",
                        "computed_at",
                        "price_usd",
                        "deterministic",
                        "disclaimer"
                      ],
                      "properties": {
                        "sources": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "version",
                              "published"
                            ]
                          }
                        },
                        "price_usd": {
                          "type": "string"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "request_id": {
                          "type": "string"
                        },
                        "computed_at": {
                          "type": "string",
                          "description": "RFC 3339 UTC with milliseconds"
                        },
                        "deterministic": {
                          "type": "boolean"
                        }
                      }
                    },
                    "route": {
                      "const": "/v1/time/zone"
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 120
      }
    ],
    "resource": {
      "url": "https://api.duoleads.com/v1/time/business-days",
      "tags": [
        "deterministic",
        "no-api-key",
        "time",
        "calendar",
        "business-days"
      ],
      "iconUrl": "https://api.duoleads.com/logo.png",
      "mimeType": "application/json",
      "description": "Business-day arithmetic with a caller-supplied calendar: add or subtract N working days from a date, or count the working days between two dates. The weekend is a weekday mask (Friday-Saturday and Sunday-only weeks work) and holidays are an explicit date list, so nothing depends on a stale holiday table. Returns the result date, the day count and the skipped dates with reasons. The skipped list is capped at 1,000 entries (skipped_truncated flags it); skipped_total is always exact.",
      "serviceName": "Duo Data Utilities"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {
              "days": "5",
              "from": "2026-12-24",
              "holidays": "2026-12-25,2026-12-26,2027-01-01"
            }
          },
          "output": {
            "type": "json",
            "example": {
              "ok": true,
              "data": {
                "days": 5,
                "from": "2026-12-24",
                "result": "2027-01-04",
                "skipped": [
                  {
                    "date": "2026-12-25",
                    "reason": "holiday",
                    "weekday": "friday"
                  },
                  {
                    "date": "2026-12-26",
                    "reason": "weekend",
                    "weekday": "saturday"
                  },
                  {
                    "date": "2026-12-27",
                    "reason": "weekend",
                    "weekday": "sunday"
                  },
                  {
                    "date": "2027-01-01",
                    "reason": "holiday",
                    "weekday": "friday"
                  },
                  {
                    "date": "2027-01-02",
                    "reason": "weekend",
                    "weekday": "saturday"
                  },
                  {
                    "date": "2027-01-03",
                    "reason": "weekend",
                    "weekday": "sunday"
                  }
                ],
                "skipped_total": 6,
                "skipped_truncated": false,
                "calendar_days_spanned": 11
              },
              "meta": {
                "price_usd": "0.05",
                "disclaimer": "Factual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms",
                "request_id": "01K6B7Q4ZC8H3F2M9WXR5TYN0D",
                "computed_at": "2026-09-28T12:00:00.000Z",
                "deterministic": true
              },
              "route": "/v1/time/business-days",
              "version": "1.0.0"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [
                    "from"
                  ],
                  "properties": {
                    "op": {
                      "enum": [
                        "add",
                        "count"
                      ],
                      "type": "string",
                      "default": "add",
                      "maxLength": 64,
                      "description": "add (default) N business days to from, or count business days between from and to."
                    },
                    "to": {
                      "type": "string",
                      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                      "maxLength": 32,
                      "description": "End date YYYY-MM-DD, may precede from. Required when op=count."
                    },
                    "days": {
                      "type": "string",
                      "pattern": "^[+-]?\\d+$",
                      "maxLength": 64,
                      "description": "Business days to add, -3650 to 3650. Required when op=add."
                    },
                    "from": {
                      "type": "string",
                      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                      "maxLength": 32,
                      "description": "Start date, YYYY-MM-DD."
                    },
                    "weekend": {
                      "type": "string",
                      "default": "sat,sun",
                      "maxLength": 64,
                      "description": "Comma-separated weekday names or ISO numbers. Default sat,sun. Empty string = no weekend."
                    },
                    "holidays": {
                      "type": "string",
                      "maxLength": 2048,
                      "description": "Comma-separated YYYY-MM-DD holiday dates."
                    },
                    "inclusive": {
                      "enum": [
                        "start",
                        "both",
                        "neither"
                      ],
                      "type": "string",
                      "default": "start",
                      "maxLength": 64,
                      "description": "For op=count: start (default, half-open [from, to)), both or neither."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "required": [
                    "ok",
                    "route",
                    "version",
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "const": true
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "days": {
                          "type": "integer"
                        },
                        "from": {
                          "type": "string"
                        },
                        "result": {
                          "type": "string"
                        },
                        "skipped": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "date",
                              "reason",
                              "weekday"
                            ],
                            "properties": {
                              "date": {
                                "type": "string"
                              },
                              "reason": {
                                "type": "string"
                              },
                              "weekday": {
                                "type": "string"
                              }
                            }
                          }
                        },
                        "direction": {
                          "type": "string"
                        },
                        "holiday_days": {
                          "type": "integer"
                        },
                        "weekend_days": {
                          "type": "integer"
                        },
                        "business_days": {
                          "type": "integer"
                        },
                        "calendar_days": {
                          "type": "integer"
                        },
                        "skipped_total": {
                          "type": "integer"
                        },
                        "holidays_matched": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "skipped_truncated": {
                          "type": "boolean"
                        },
                        "calendar_days_spanned": {
                          "type": "integer"
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "required": [
                        "request_id",
                        "computed_at",
                        "price_usd",
                        "deterministic",
                        "disclaimer"
                      ],
                      "properties": {
                        "sources": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "version",
                              "published"
                            ]
                          }
                        },
                        "price_usd": {
                          "type": "string"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "request_id": {
                          "type": "string"
                        },
                        "computed_at": {
                          "type": "string",
                          "description": "RFC 3339 UTC with milliseconds"
                        },
                        "deterministic": {
                          "type": "boolean"
                        }
                      }
                    },
                    "route": {
                      "const": "/v1/time/business-days"
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 120
      }
    ],
    "resource": {
      "url": "https://api.duoleads.com/v1/text/slug",
      "tags": [
        "deterministic",
        "no-api-key",
        "text",
        "unicode",
        "slug"
      ],
      "iconUrl": "https://api.duoleads.com/logo.png",
      "mimeType": "application/json",
      "description": "Turn arbitrary text into a URL-safe slug. Decomposes accents, transliterates German umlauts, Scandinavian and Turkish letters, the ligatures that lose meaning under plain NFD, and Cyrillic (Russian, Ukrainian, Belarusian, Bulgarian, Serbian, Macedonian; language from lang or inferred from the letters). Lowercases, collapses separators, truncates on a word boundary. Returns the slug plus what was removed.",
      "serviceName": "Duo Data Utilities"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {
              "lang": "de",
              "text": "Crème Brûlée — Ærøskøbing, Straße 42"
            }
          },
          "output": {
            "type": "json",
            "example": {
              "ok": true,
              "data": {
                "slug": "creme-brulee-aeroeskoebing-strasse-42",
                "length": 37,
                "removed": "—,",
                "truncated": false,
                "source_length": 36,
                "transliterated": [
                  {
                    "to": "ae",
                    "from": "Æ"
                  },
                  {
                    "to": "oe",
                    "from": "ø"
                  },
                  {
                    "to": "ss",
                    "from": "ß"
                  }
                ]
              },
              "meta": {
                "price_usd": "0.05",
                "disclaimer": "Factual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms",
                "request_id": "01K6B7Q4ZC8H3F2M9WXR5TYN0D",
                "computed_at": "2026-09-28T12:00:00.000Z",
                "deterministic": true
              },
              "route": "/v1/text/slug",
              "version": "1.0.0"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [
                    "text"
                  ],
                  "properties": {
                    "max": {
                      "type": "string",
                      "default": "96",
                      "pattern": "^[+-]?\\d+$",
                      "maxLength": 64,
                      "description": "Maximum slug length 1-512, default 96. Truncates at the last complete word."
                    },
                    "case": {
                      "enum": [
                        "lower",
                        "preserve",
                        "upper"
                      ],
                      "type": "string",
                      "default": "lower",
                      "maxLength": 64,
                      "description": "lower (default), preserve or upper."
                    },
                    "lang": {
                      "type": "string",
                      "maxLength": 16,
                      "description": "ISO 639-1 code for locale-sensitive folding (de: ü->ue) and the Cyrillic table (ru, uk, be, bg, sr, mk). Default locale-neutral; for Cyrillic the language is then inferred from letters unique to Ukrainian, Belarusian, Serbian or Macedonian, else Russian BGN/PCGN letters with ISO 9 (accents folded) for the rest."
                    },
                    "text": {
                      "type": "string",
                      "maxLength": 2048,
                      "description": "Text to slugify, at most 2048 characters."
                    },
                    "separator": {
                      "enum": [
                        "-",
                        "_",
                        ".",
                        ""
                      ],
                      "type": "string",
                      "default": "-",
                      "maxLength": 64,
                      "description": "Separator: - (default), _, . or empty."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "required": [
                    "ok",
                    "route",
                    "version",
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "const": true
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "slug",
                        "length",
                        "truncated",
                        "source_length",
                        "transliterated",
                        "removed"
                      ],
                      "properties": {
                        "slug": {
                          "type": "string"
                        },
                        "length": {
                          "type": "integer"
                        },
                        "removed": {
                          "type": "string"
                        },
                        "truncated": {
                          "type": "boolean"
                        },
                        "source_length": {
                          "type": "integer"
                        },
                        "transliterated": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "from",
                              "to"
                            ],
                            "properties": {
                              "to": {
                                "type": "string"
                              },
                              "from": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "required": [
                        "request_id",
                        "computed_at",
                        "price_usd",
                        "deterministic",
                        "disclaimer"
                      ],
                      "properties": {
                        "sources": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "version",
                              "published"
                            ]
                          }
                        },
                        "price_usd": {
                          "type": "string"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "request_id": {
                          "type": "string"
                        },
                        "computed_at": {
                          "type": "string",
                          "description": "RFC 3339 UTC with milliseconds"
                        },
                        "deterministic": {
                          "type": "boolean"
                        }
                      }
                    },
                    "route": {
                      "const": "/v1/text/slug"
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 120
      }
    ],
    "resource": {
      "url": "https://api.duoleads.com/v1/text/transliterate",
      "tags": [
        "deterministic",
        "no-api-key",
        "text",
        "unicode",
        "transliteration"
      ],
      "iconUrl": "https://api.duoleads.com/logo.png",
      "mimeType": "application/json",
      "description": "Transliterate Cyrillic text into Latin using a named standard: ISO 9:1995 (one-to-one, with diacritics, covering the full standard: Russian, other Slavic, historic and non-Slavic Cyrillic letters) or BGN/PCGN, which is the Russian system only (Ukrainian, Serbian and other letters are passed through unmapped). Returns the transliteration, the source script, the standard, the mapped fraction and the unmapped characters. Other scripts are rejected with UNSUPPORTED_VALUE.",
      "serviceName": "Duo Data Utilities"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {
              "text": "Щука",
              "standard": "iso-9"
            }
          },
          "output": {
            "type": "json",
            "example": {
              "ok": true,
              "data": {
                "result": "Ŝuka",
                "coverage": 1,
                "standard": "iso-9",
                "unmapped": "",
                "source_script": "Cyrillic"
              },
              "meta": {
                "sources": [
                  {
                    "id": "romanisation-tables",
                    "licence": "character correspondences (facts); see sources/translit.md",
                    "version": "ISO 9:1995 (full Cyrillic repertoire) and BGN/PCGN Russian system",
                    "published": "2026-09-29"
                  }
                ],
                "price_usd": "0.05",
                "disclaimer": "Factual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms",
                "request_id": "01K6B7Q4ZC8H3F2M9WXR5TYN0D",
                "computed_at": "2026-09-28T12:00:00.000Z",
                "deterministic": true
              },
              "route": "/v1/text/transliterate",
              "version": "1.0.0"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [
                    "text"
                  ],
                  "properties": {
                    "case": {
                      "enum": [
                        "preserve",
                        "lower",
                        "upper"
                      ],
                      "type": "string",
                      "default": "preserve",
                      "maxLength": 64,
                      "description": "preserve (default), lower or upper."
                    },
                    "from": {
                      "type": "string",
                      "default": "auto",
                      "maxLength": 32,
                      "description": "Source script name (cyrillic), or auto (default)."
                    },
                    "text": {
                      "type": "string",
                      "maxLength": 2048,
                      "description": "Text to transliterate, at most 2048 characters."
                    },
                    "standard": {
                      "type": "string",
                      "maxLength": 32,
                      "description": "Romanisation standard: iso-9 (default; all ISO 9:1995 Cyrillic letters) or bgn-pcgn (BGN/PCGN Russian system, Russian letters only)."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "required": [
                    "ok",
                    "route",
                    "version",
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "const": true
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "result",
                        "source_script",
                        "standard",
                        "coverage",
                        "unmapped"
                      ],
                      "properties": {
                        "result": {
                          "type": "string"
                        },
                        "coverage": {
                          "type": "number"
                        },
                        "standard": {
                          "type": "string"
                        },
                        "unmapped": {
                          "type": "string"
                        },
                        "source_script": {
                          "type": "string"
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "required": [
                        "request_id",
                        "computed_at",
                        "price_usd",
                        "deterministic",
                        "disclaimer"
                      ],
                      "properties": {
                        "sources": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "version",
                              "published"
                            ]
                          }
                        },
                        "price_usd": {
                          "type": "string"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "request_id": {
                          "type": "string"
                        },
                        "computed_at": {
                          "type": "string",
                          "description": "RFC 3339 UTC with milliseconds"
                        },
                        "deterministic": {
                          "type": "boolean"
                        }
                      }
                    },
                    "route": {
                      "const": "/v1/text/transliterate"
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 120
      }
    ],
    "resource": {
      "url": "https://api.duoleads.com/v1/text/unicode",
      "tags": [
        "deterministic",
        "no-api-key",
        "text",
        "unicode",
        "security"
      ],
      "iconUrl": "https://api.duoleads.com/logo.png",
      "mimeType": "application/json",
      "description": "Analyse a string at the Unicode level: apply NFC, NFD, NFKC or NFKD, report which forms it is already in, list the scripts present (all Unicode scripts), and flag confusable and homoglyph characters — Cyrillic а in a Latin word, fullwidth or mathematical look-alikes, all-look-alike words — plus zero-width joiners, bidirectional overrides, invisible and blank characters. Returns per-character detail with code points, names and the ASCII character each imitates.",
      "serviceName": "Duo Data Utilities"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {
              "form": "nfd",
              "text": "café"
            }
          },
          "output": {
            "type": "json",
            "example": {
              "ok": true,
              "data": {
                "form": "nfd",
                "lengths": {
                  "graphemes": 4,
                  "utf8_bytes": 6,
                  "code_points": 5,
                  "utf16_units": 5
                },
                "scripts": [
                  "Latin"
                ],
                "ascii_safe": false,
                "normalised": "café",
                "suspicious": [],
                "mixed_script": false,
                "already_normalised": {
                  "nfc": true,
                  "nfd": false,
                  "nfkc": true,
                  "nfkd": false
                }
              },
              "meta": {
                "sources": [
                  {
                    "id": "unicode-confusables",
                    "licence": "Unicode License v3",
                    "version": "18.0.0",
                    "published": "2026-08-06",
                    "attribution": "Unicode confusables.txt (UTS #39), (c) Unicode, Inc."
                  }
                ],
                "price_usd": "0.05",
                "disclaimer": "Factual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms",
                "request_id": "01K6B7Q4ZC8H3F2M9WXR5TYN0D",
                "computed_at": "2026-09-28T12:00:00.000Z",
                "deterministic": true
              },
              "route": "/v1/text/unicode",
              "version": "1.0.0"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [
                    "text"
                  ],
                  "properties": {
                    "form": {
                      "enum": [
                        "nfc",
                        "nfd",
                        "nfkc",
                        "nfkd"
                      ],
                      "type": "string",
                      "default": "nfc",
                      "maxLength": 64,
                      "description": "Normalisation form to apply, default nfc."
                    },
                    "text": {
                      "type": "string",
                      "maxLength": 1024,
                      "description": "Text to analyse, at most 1024 characters."
                    },
                    "detail": {
                      "enum": [
                        "summary",
                        "full"
                      ],
                      "type": "string",
                      "default": "summary",
                      "maxLength": 64,
                      "description": "summary (default) or full per-code-point detail (capped at 256 entries)."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "required": [
                    "ok",
                    "route",
                    "version",
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "const": true
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "normalised",
                        "form",
                        "already_normalised",
                        "lengths",
                        "scripts",
                        "mixed_script",
                        "suspicious",
                        "ascii_safe"
                      ],
                      "properties": {
                        "form": {
                          "type": "string"
                        },
                        "lengths": {
                          "type": "object",
                          "required": [
                            "code_points",
                            "graphemes",
                            "utf8_bytes",
                            "utf16_units"
                          ],
                          "properties": {
                            "graphemes": {
                              "type": "integer"
                            },
                            "utf8_bytes": {
                              "type": "integer"
                            },
                            "code_points": {
                              "type": "integer"
                            },
                            "utf16_units": {
                              "type": "integer"
                            }
                          }
                        },
                        "scripts": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "ascii_safe": {
                          "type": "boolean"
                        },
                        "characters": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "index",
                              "char",
                              "code_point",
                              "name",
                              "category",
                              "script"
                            ],
                            "properties": {
                              "char": {
                                "type": "string"
                              },
                              "name": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "index": {
                                "type": "integer"
                              },
                              "script": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "category": {
                                "type": "string"
                              },
                              "code_point": {
                                "type": "string"
                              }
                            }
                          }
                        },
                        "normalised": {
                          "type": "string"
                        },
                        "suspicious": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "index",
                              "char",
                              "code_point",
                              "name",
                              "category",
                              "kind",
                              "looks_like"
                            ],
                            "properties": {
                              "char": {
                                "type": "string"
                              },
                              "kind": {
                                "type": "string"
                              },
                              "name": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "index": {
                                "type": "integer"
                              },
                              "category": {
                                "type": "string"
                              },
                              "code_point": {
                                "type": "string"
                              },
                              "looks_like": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              }
                            }
                          }
                        },
                        "mixed_script": {
                          "type": "boolean"
                        },
                        "already_normalised": {
                          "type": "object",
                          "required": [
                            "nfc",
                            "nfd",
                            "nfkc",
                            "nfkd"
                          ],
                          "properties": {
                            "nfc": {
                              "type": "boolean"
                            },
                            "nfd": {
                              "type": "boolean"
                            },
                            "nfkc": {
                              "type": "boolean"
                            },
                            "nfkd": {
                              "type": "boolean"
                            }
                          }
                        },
                        "characters_truncated": {
                          "type": "boolean"
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "required": [
                        "request_id",
                        "computed_at",
                        "price_usd",
                        "deterministic",
                        "disclaimer"
                      ],
                      "properties": {
                        "sources": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "version",
                              "published"
                            ]
                          }
                        },
                        "price_usd": {
                          "type": "string"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "request_id": {
                          "type": "string"
                        },
                        "computed_at": {
                          "type": "string",
                          "description": "RFC 3339 UTC with milliseconds"
                        },
                        "deterministic": {
                          "type": "boolean"
                        }
                      }
                    },
                    "route": {
                      "const": "/v1/text/unicode"
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 120
      }
    ],
    "resource": {
      "url": "https://api.duoleads.com/v1/text/similarity",
      "tags": [
        "deterministic",
        "no-api-key",
        "text",
        "similarity",
        "phonetic"
      ],
      "iconUrl": "https://api.duoleads.com/logo.png",
      "mimeType": "application/json",
      "description": "Compare two strings and return every standard similarity measure in one call: Levenshtein and Damerau-Levenshtein edit distance, normalised similarity, Jaro and Jaro-Winkler, longest common subsequence, Dice coefficient on character bigrams, and the Soundex, Metaphone and NYSIIS phonetic keys of each string. Optional case folding, accent folding and whitespace normalisation before comparison.",
      "serviceName": "Duo Data Utilities"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {
              "a": "kitten",
              "b": "sitting"
            }
          },
          "output": {
            "type": "json",
            "example": {
              "ok": true,
              "data": {
                "dice": 0.36363636363636365,
                "jaro": 0.746031746031746,
                "folded": {
                  "a": "kitten",
                  "b": "sitting"
                },
                "phonetic": {
                  "a": {
                    "nysiis": "CATAN",
                    "soundex": "K350",
                    "metaphone": "KTN"
                  },
                  "b": {
                    "nysiis": "SATANG",
                    "soundex": "S352",
                    "metaphone": "STNK"
                  }
                },
                "lcs_length": 4,
                "levenshtein": 3,
                "jaro_winkler": 0.746031746031746,
                "equal_after_fold": false,
                "damerau_levenshtein": 3,
                "normalised_similarity": 0.5714285714285714
              },
              "meta": {
                "price_usd": "0.05",
                "disclaimer": "Factual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms",
                "request_id": "01K6B7Q4ZC8H3F2M9WXR5TYN0D",
                "computed_at": "2026-09-28T12:00:00.000Z",
                "deterministic": true
              },
              "route": "/v1/text/similarity",
              "version": "1.0.0"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [
                    "a",
                    "b"
                  ],
                  "properties": {
                    "a": {
                      "type": "string",
                      "maxLength": 512,
                      "description": "First string, at most 512 characters."
                    },
                    "b": {
                      "type": "string",
                      "maxLength": 512,
                      "description": "Second string, at most 512 characters."
                    },
                    "fold": {
                      "type": "string",
                      "default": "case",
                      "maxLength": 64,
                      "description": "Comma-separated folds before comparing: case, accents, space, punct. Default case."
                    },
                    "only": {
                      "type": "string",
                      "maxLength": 256,
                      "description": "Comma-separated measure names to compute: levenshtein, damerau_levenshtein, normalised_similarity, jaro, jaro_winkler, lcs_length, dice, phonetic (all three keys), soundex, metaphone, nysiis. Default all."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "required": [
                    "ok",
                    "route",
                    "version",
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "const": true
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "equal_after_fold",
                        "folded"
                      ],
                      "properties": {
                        "dice": {
                          "type": "number"
                        },
                        "jaro": {
                          "type": "number"
                        },
                        "folded": {
                          "type": "object",
                          "required": [
                            "a",
                            "b"
                          ],
                          "properties": {
                            "a": {
                              "type": "string"
                            },
                            "b": {
                              "type": "string"
                            }
                          }
                        },
                        "phonetic": {
                          "type": "object",
                          "required": [
                            "a",
                            "b"
                          ],
                          "properties": {
                            "a": {
                              "type": "object",
                              "properties": {
                                "nysiis": {
                                  "type": "string"
                                },
                                "soundex": {
                                  "type": "string"
                                },
                                "metaphone": {
                                  "type": "string"
                                }
                              }
                            },
                            "b": {
                              "type": "object",
                              "properties": {
                                "nysiis": {
                                  "type": "string"
                                },
                                "soundex": {
                                  "type": "string"
                                },
                                "metaphone": {
                                  "type": "string"
                                }
                              }
                            }
                          }
                        },
                        "lcs_length": {
                          "type": "integer"
                        },
                        "levenshtein": {
                          "type": "number"
                        },
                        "jaro_winkler": {
                          "type": "number"
                        },
                        "equal_after_fold": {
                          "type": "boolean"
                        },
                        "damerau_levenshtein": {
                          "type": "number"
                        },
                        "normalised_similarity": {
                          "type": "number"
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "required": [
                        "request_id",
                        "computed_at",
                        "price_usd",
                        "deterministic",
                        "disclaimer"
                      ],
                      "properties": {
                        "sources": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "version",
                              "published"
                            ]
                          }
                        },
                        "price_usd": {
                          "type": "string"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "request_id": {
                          "type": "string"
                        },
                        "computed_at": {
                          "type": "string",
                          "description": "RFC 3339 UTC with milliseconds"
                        },
                        "deterministic": {
                          "type": "boolean"
                        }
                      }
                    },
                    "route": {
                      "const": "/v1/text/similarity"
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 120
      }
    ],
    "resource": {
      "url": "https://api.duoleads.com/v1/code/url",
      "tags": [
        "deterministic",
        "no-api-key",
        "code",
        "url",
        "domains"
      ],
      "iconUrl": "https://api.duoleads.com/logo.png",
      "mimeType": "application/json",
      "description": "Parse and canonicalise a URL, and extract its registrable domain using the Public Suffix List — the part an agent needs to decide whether two URLs belong to the same owner. Returns scheme, host, port, path, decoded query parameters and fragment, the public suffix, the registrable domain (eTLD+1), the subdomain, whether the suffix is an ICANN or a private entry, plus a canonical form with default port, dot-segments and percent-encoding normalised. unicode_host uses WHATWG/UTS 46 (non-strict).",
      "serviceName": "Duo Data Utilities"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {
              "url": "https://a.b.example.co.uk:443/x/../y?q=1&q=2#f"
            }
          },
          "output": {
            "type": "json",
            "example": {
              "ok": true,
              "data": {
                "host": "a.b.example.co.uk",
                "path": "/y",
                "port": null,
                "query": [
                  {
                    "key": "q",
                    "value": "1"
                  },
                  {
                    "key": "q",
                    "value": "2"
                  }
                ],
                "scheme": "https",
                "fragment": "f",
                "username": null,
                "canonical": "https://a.b.example.co.uk/y?q=1&q=2#f",
                "host_type": "domain",
                "subdomain": "a.b",
                "unicode_host": null,
                "public_suffix": "co.uk",
                "suffix_source": "icann",
                "registrable_domain": "example.co.uk"
              },
              "meta": {
                "sources": [
                  {
                    "id": "public-suffix-list",
                    "licence": "MPL-2.0",
                    "version": "a179a48c465e818cfd8d626691cb317985da87fb",
                    "published": "2026-09-24"
                  }
                ],
                "price_usd": "0.05",
                "disclaimer": "Factual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms",
                "request_id": "01K6B7Q4ZC8H3F2M9WXR5TYN0D",
                "computed_at": "2026-09-28T12:00:00.000Z",
                "deterministic": true
              },
              "route": "/v1/code/url",
              "version": "1.0.0"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [
                    "url"
                  ],
                  "properties": {
                    "url": {
                      "type": "string",
                      "maxLength": 2048,
                      "description": "Absolute URL, or a bare hostname (https:// assumed)."
                    },
                    "base": {
                      "type": "string",
                      "maxLength": 2048,
                      "description": "Base URL to resolve url against as a relative reference."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "required": [
                    "ok",
                    "route",
                    "version",
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "const": true
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "canonical",
                        "scheme",
                        "username",
                        "host",
                        "port",
                        "path",
                        "fragment",
                        "query",
                        "public_suffix",
                        "registrable_domain",
                        "subdomain",
                        "suffix_source",
                        "host_type",
                        "unicode_host"
                      ],
                      "properties": {
                        "host": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "path": {
                          "type": "string"
                        },
                        "port": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "query": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "key",
                              "value"
                            ],
                            "properties": {
                              "key": {
                                "type": "string"
                              },
                              "value": {
                                "type": "string"
                              }
                            }
                          }
                        },
                        "scheme": {
                          "type": "string"
                        },
                        "fragment": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "username": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "canonical": {
                          "type": "string"
                        },
                        "host_type": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "subdomain": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "unicode_host": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "public_suffix": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "suffix_source": {
                          "type": "string"
                        },
                        "registrable_domain": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "required": [
                        "request_id",
                        "computed_at",
                        "price_usd",
                        "deterministic",
                        "disclaimer"
                      ],
                      "properties": {
                        "sources": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "version",
                              "published"
                            ]
                          }
                        },
                        "price_usd": {
                          "type": "string"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "request_id": {
                          "type": "string"
                        },
                        "computed_at": {
                          "type": "string",
                          "description": "RFC 3339 UTC with milliseconds"
                        },
                        "deterministic": {
                          "type": "boolean"
                        }
                      }
                    },
                    "route": {
                      "const": "/v1/code/url"
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 120
      }
    ],
    "resource": {
      "url": "https://api.duoleads.com/v1/code/idn",
      "tags": [
        "deterministic",
        "no-api-key",
        "code",
        "domains",
        "idna"
      ],
      "iconUrl": "https://api.duoleads.com/logo.png",
      "mimeType": "application/json",
      "description": "Convert internationalised domain names between Unicode and ASCII punycode in either direction, label by label, and validate each label against IDNA2008: length, leading and trailing hyphens, the hyphen-hyphen rule at positions 3 and 4, disallowed code points and bidirectional rules. Returns both forms, the per-label breakdown and the first rule violated. Strict mode is IDNA2008 (UTS 46 non-transitional); it may reject names /v1/code/url displays.",
      "serviceName": "Duo Data Utilities"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {
              "domain": "bücher.example"
            }
          },
          "output": {
            "type": "json",
            "example": {
              "ok": true,
              "data": {
                "ascii": "xn--bcher-kva.example",
                "valid": true,
                "labels": [
                  {
                    "ascii": "xn--bcher-kva",
                    "index": 0,
                    "valid": true,
                    "length": 13,
                    "reason": null,
                    "unicode": "bücher",
                    "punycoded": true
                  },
                  {
                    "ascii": "example",
                    "index": 1,
                    "valid": true,
                    "length": 7,
                    "reason": null,
                    "unicode": "example",
                    "punycoded": false
                  }
                ],
                "reason": null,
                "unicode": "bücher.example",
                "total_length": 21
              },
              "meta": {
                "sources": [
                  {
                    "id": "unicode-idna-tables",
                    "licence": "Unicode License v3",
                    "version": "Unicode 17.0.0 (UTS #46 IdnaMappingTable via tr46 6.0.0)",
                    "published": "2026-09-29",
                    "attribution": "Unicode IdnaMappingTable via the tr46 package (MIT); (c) Unicode, Inc."
                  }
                ],
                "price_usd": "0.05",
                "disclaimer": "Factual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms",
                "request_id": "01K6B7Q4ZC8H3F2M9WXR5TYN0D",
                "computed_at": "2026-09-28T12:00:00.000Z",
                "deterministic": true
              },
              "route": "/v1/code/idn",
              "version": "1.0.0"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [
                    "domain"
                  ],
                  "properties": {
                    "to": {
                      "enum": [
                        "ascii",
                        "unicode",
                        "both"
                      ],
                      "type": "string",
                      "default": "both",
                      "maxLength": 64,
                      "description": "ascii, unicode or both (default). Validated only: the response always carries both forms."
                    },
                    "domain": {
                      "type": "string",
                      "maxLength": 512,
                      "description": "Domain name in Unicode or punycode form."
                    },
                    "strict": {
                      "enum": [
                        "true",
                        "false"
                      ],
                      "type": "string",
                      "default": "true",
                      "maxLength": 64,
                      "description": "true (default) applies IDNA2008 strictly; false uses UTS 46 transitional (IDNA2003-compatible) processing, which maps e.g. ß to ss; current browsers and /v1/code/url use non-transitional processing, so its output can differ from them."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "required": [
                    "ok",
                    "route",
                    "version",
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "const": true
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "ascii",
                        "unicode",
                        "valid",
                        "labels",
                        "reason",
                        "total_length"
                      ],
                      "properties": {
                        "ascii": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "valid": {
                          "type": "boolean"
                        },
                        "labels": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "index",
                              "unicode",
                              "ascii",
                              "length",
                              "punycoded",
                              "valid",
                              "reason"
                            ],
                            "properties": {
                              "ascii": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "index": {
                                "type": "integer"
                              },
                              "valid": {
                                "type": "boolean"
                              },
                              "length": {
                                "type": [
                                  "integer",
                                  "null"
                                ]
                              },
                              "reason": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "unicode": {
                                "type": "string"
                              },
                              "punycoded": {
                                "type": "boolean"
                              }
                            }
                          }
                        },
                        "reason": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "unicode": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "total_length": {
                          "type": [
                            "integer",
                            "null"
                          ]
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "required": [
                        "request_id",
                        "computed_at",
                        "price_usd",
                        "deterministic",
                        "disclaimer"
                      ],
                      "properties": {
                        "sources": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "version",
                              "published"
                            ]
                          }
                        },
                        "price_usd": {
                          "type": "string"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "request_id": {
                          "type": "string"
                        },
                        "computed_at": {
                          "type": "string",
                          "description": "RFC 3339 UTC with milliseconds"
                        },
                        "deterministic": {
                          "type": "boolean"
                        }
                      }
                    },
                    "route": {
                      "const": "/v1/code/idn"
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 120
      }
    ],
    "resource": {
      "url": "https://api.duoleads.com/v1/code/semver",
      "tags": [
        "deterministic",
        "no-api-key",
        "code",
        "versions",
        "semver"
      ],
      "iconUrl": "https://api.duoleads.com/logo.png",
      "mimeType": "application/json",
      "description": "Parse a semantic version into major, minor, patch, prerelease and build parts; compare two versions by precedence including prerelease ordering; or test whether a version satisfies a range expression using caret, tilde, hyphen, x-ranges and comparator sets. Returns the parsed structure, the comparison result and the reason a range did not match.",
      "serviceName": "Duo Data Utilities"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {
              "version": "1.2.3-rc.1+build.5"
            }
          },
          "output": {
            "type": "json",
            "example": {
              "ok": true,
              "data": {
                "build": [
                  "build",
                  "5"
                ],
                "major": 1,
                "minor": 2,
                "patch": 3,
                "valid": true,
                "reason": null,
                "canonical": "1.2.3-rc.1+build.5",
                "prerelease": [
                  "rc",
                  1
                ],
                "is_prerelease": true
              },
              "meta": {
                "price_usd": "0.05",
                "disclaimer": "Factual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms",
                "request_id": "01K6B7Q4ZC8H3F2M9WXR5TYN0D",
                "computed_at": "2026-09-28T12:00:00.000Z",
                "deterministic": true
              },
              "route": "/v1/code/semver",
              "version": "1.0.0"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [],
                  "properties": {
                    "a": {
                      "type": "string",
                      "maxLength": 256,
                      "description": "First version for op=compare."
                    },
                    "b": {
                      "type": "string",
                      "maxLength": 256,
                      "description": "Second version for op=compare."
                    },
                    "op": {
                      "enum": [
                        "parse",
                        "compare",
                        "satisfies",
                        "sort"
                      ],
                      "type": "string",
                      "default": "parse",
                      "maxLength": 64,
                      "description": "parse (default), compare, satisfies or sort."
                    },
                    "range": {
                      "type": "string",
                      "maxLength": 256,
                      "description": "Range expression for op=satisfies, e.g. ^1.2.0."
                    },
                    "version": {
                      "type": "string",
                      "maxLength": 256,
                      "description": "Version to parse (op=parse) or test (op=satisfies)."
                    },
                    "versions": {
                      "type": "string",
                      "maxLength": 2048,
                      "description": "Comma-separated versions for op=sort, at most 100."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "required": [
                    "ok",
                    "route",
                    "version",
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "const": true
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "a": {
                          "type": "string"
                        },
                        "b": {
                          "type": "string"
                        },
                        "build": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "major": {
                          "type": [
                            "integer",
                            "null"
                          ]
                        },
                        "minor": {
                          "type": [
                            "integer",
                            "null"
                          ]
                        },
                        "patch": {
                          "type": [
                            "integer",
                            "null"
                          ]
                        },
                        "range": {
                          "type": "string"
                        },
                        "valid": {
                          "type": "boolean"
                        },
                        "reason": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "result": {
                          "type": "integer"
                        },
                        "sorted": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "invalid": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "canonical": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "satisfies": {
                          "type": "boolean"
                        },
                        "prerelease": {
                          "type": "array",
                          "items": {
                            "type": [
                              "number",
                              "string"
                            ]
                          }
                        },
                        "comparators": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "is_prerelease": {
                          "type": "boolean"
                        },
                        "precedence_note": {
                          "type": "string"
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "required": [
                        "request_id",
                        "computed_at",
                        "price_usd",
                        "deterministic",
                        "disclaimer"
                      ],
                      "properties": {
                        "sources": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "version",
                              "published"
                            ]
                          }
                        },
                        "price_usd": {
                          "type": "string"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "request_id": {
                          "type": "string"
                        },
                        "computed_at": {
                          "type": "string",
                          "description": "RFC 3339 UTC with milliseconds"
                        },
                        "deterministic": {
                          "type": "boolean"
                        }
                      }
                    },
                    "route": {
                      "const": "/v1/code/semver"
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 120
      }
    ],
    "resource": {
      "url": "https://api.duoleads.com/v1/code/hash",
      "tags": [
        "deterministic",
        "no-api-key",
        "code",
        "crypto",
        "hashing"
      ],
      "iconUrl": "https://api.duoleads.com/logo.png",
      "mimeType": "application/json",
      "description": "Compute a cryptographic digest of supplied data: SHA-256, SHA-384, SHA-512, SHA-1, SHA3-256, SHA3-512, Keccak-256, BLAKE2b-256 and BLAKE2b-512, plus HMAC with any of them. Input is UTF-8 text, base64 or hex bytes; output is hex, base64, base64url or base32. Returns the digest, the byte length of the input, and the exact algorithm identifier used.",
      "serviceName": "Duo Data Utilities"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {
              "algo": "sha256",
              "data": "hello"
            }
          },
          "output": {
            "type": "json",
            "example": {
              "ok": true,
              "data": {
                "out": "hex",
                "algo": "sha256",
                "hmac": false,
                "digest": "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824",
                "bit_length": 256,
                "input_bytes": 5
              },
              "meta": {
                "price_usd": "0.05",
                "disclaimer": "Factual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms",
                "request_id": "01K6B7Q4ZC8H3F2M9WXR5TYN0D",
                "computed_at": "2026-09-28T12:00:00.000Z",
                "deterministic": true
              },
              "route": "/v1/code/hash",
              "version": "1.0.0"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [
                    "algo",
                    "data"
                  ],
                  "properties": {
                    "out": {
                      "enum": [
                        "hex",
                        "base64",
                        "base64url",
                        "base32"
                      ],
                      "type": "string",
                      "default": "hex",
                      "maxLength": 64,
                      "description": "Digest output encoding: hex (default), base64, base64url or base32."
                    },
                    "algo": {
                      "enum": [
                        "sha256",
                        "sha384",
                        "sha512",
                        "sha1",
                        "sha3-256",
                        "sha3-512",
                        "keccak256",
                        "blake2b-256",
                        "blake2b-512"
                      ],
                      "type": "string",
                      "maxLength": 64,
                      "description": "Digest algorithm."
                    },
                    "data": {
                      "type": "string",
                      "maxLength": 8192,
                      "description": "Input data, interpreted per encoding. At most 8192 characters. An empty value hashes the empty string."
                    },
                    "encoding": {
                      "enum": [
                        "utf8",
                        "base64",
                        "base64url",
                        "hex"
                      ],
                      "type": "string",
                      "default": "utf8",
                      "maxLength": 64,
                      "description": "Encoding of data: utf8 (default), base64, base64url or hex."
                    },
                    "hmac_key": {
                      "type": "string",
                      "maxLength": 512,
                      "description": "If present, computes HMAC with this key."
                    },
                    "hmac_key_encoding": {
                      "enum": [
                        "utf8",
                        "base64",
                        "base64url",
                        "hex"
                      ],
                      "type": "string",
                      "default": "utf8",
                      "maxLength": 64,
                      "description": "Encoding of hmac_key, as encoding."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "required": [
                    "ok",
                    "route",
                    "version",
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "const": true
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "digest",
                        "algo",
                        "out",
                        "input_bytes",
                        "hmac",
                        "bit_length"
                      ],
                      "properties": {
                        "out": {
                          "type": "string"
                        },
                        "algo": {
                          "type": "string"
                        },
                        "hmac": {
                          "type": "boolean"
                        },
                        "digest": {
                          "type": "string"
                        },
                        "bit_length": {
                          "type": "integer"
                        },
                        "input_bytes": {
                          "type": "integer"
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "required": [
                        "request_id",
                        "computed_at",
                        "price_usd",
                        "deterministic",
                        "disclaimer"
                      ],
                      "properties": {
                        "sources": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "version",
                              "published"
                            ]
                          }
                        },
                        "price_usd": {
                          "type": "string"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "request_id": {
                          "type": "string"
                        },
                        "computed_at": {
                          "type": "string",
                          "description": "RFC 3339 UTC with milliseconds"
                        },
                        "deterministic": {
                          "type": "boolean"
                        }
                      }
                    },
                    "route": {
                      "const": "/v1/code/hash"
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 120
      }
    ],
    "resource": {
      "url": "https://api.duoleads.com/v1/code/jwt",
      "tags": [
        "no-api-key",
        "code",
        "jwt",
        "security"
      ],
      "iconUrl": "https://api.duoleads.com/logo.png",
      "mimeType": "application/json",
      "description": "Decode a JSON Web Token without verifying it: returns the header, the claims, the signature length and algorithm, and a computed view of the time claims — whether exp has passed, whether nbf is in the future, and the remaining lifetime in seconds against a supplied or current instant. Reports structural problems such as a missing part, invalid base64url or an alg of none. It does not and cannot verify the signature; do not use it to decide trust.",
      "serviceName": "Duo Data Utilities"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {
              "at": "2026-09-28T00:00:00Z",
              "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
            }
          },
          "output": {
            "type": "json",
            "example": {
              "ok": true,
              "data": {
                "alg": "HS256",
                "kid": null,
                "typ": "JWT",
                "time": {
                  "expired": null,
                  "age_seconds": 274314578,
                  "evaluated_at": "2026-09-28T00:00:00Z",
                  "not_yet_valid": null,
                  "expires_in_seconds": null
                },
                "parts": 3,
                "claims": {
                  "aud": null,
                  "exp": null,
                  "iat": 1516239022,
                  "iss": null,
                  "jti": null,
                  "nbf": null,
                  "sub": "1234567890"
                },
                "header": {
                  "alg": "HS256",
                  "typ": "JWT"
                },
                "reason": null,
                "payload": {
                  "iat": 1516239022,
                  "sub": "1234567890",
                  "name": "John Doe"
                },
                "warnings": [],
                "signature_bytes": 32,
                "valid_structure": true,
                "signature_verified": false
              },
              "meta": {
                "price_usd": "0.05",
                "disclaimer": "Factual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms",
                "request_id": "01K6B7Q4ZC8H3F2M9WXR5TYN0D",
                "computed_at": "2026-09-28T12:00:00.000Z",
                "deterministic": true
              },
              "route": "/v1/code/jwt",
              "version": "1.0.0"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [
                    "token"
                  ],
                  "properties": {
                    "at": {
                      "type": "string",
                      "maxLength": 64,
                      "description": "Instant to evaluate exp/nbf against: RFC 3339 or epoch seconds. Default now."
                    },
                    "token": {
                      "type": "string",
                      "maxLength": 8192,
                      "description": "The JWT to decode (not verified). At most 8192 characters."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "required": [
                    "ok",
                    "route",
                    "version",
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "const": true
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "valid_structure",
                        "header",
                        "payload",
                        "alg",
                        "typ",
                        "kid",
                        "signature_bytes",
                        "parts",
                        "claims",
                        "time",
                        "signature_verified",
                        "warnings",
                        "reason"
                      ],
                      "properties": {
                        "alg": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "kid": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "typ": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "time": {
                          "type": "object",
                          "required": [
                            "evaluated_at",
                            "expired",
                            "not_yet_valid",
                            "expires_in_seconds",
                            "age_seconds"
                          ],
                          "properties": {
                            "expired": {
                              "type": [
                                "boolean",
                                "null"
                              ]
                            },
                            "age_seconds": {
                              "type": [
                                "integer",
                                "null"
                              ]
                            },
                            "evaluated_at": {
                              "type": "string"
                            },
                            "not_yet_valid": {
                              "type": [
                                "boolean",
                                "null"
                              ]
                            },
                            "expires_in_seconds": {
                              "type": [
                                "integer",
                                "null"
                              ]
                            }
                          }
                        },
                        "parts": {
                          "type": "integer"
                        },
                        "claims": {
                          "type": "object",
                          "required": [
                            "iss",
                            "sub",
                            "aud",
                            "exp",
                            "nbf",
                            "iat",
                            "jti"
                          ],
                          "properties": {
                            "aud": {
                              "type": [
                                "string",
                                "array",
                                "null"
                              ],
                              "items": {
                                "type": "string"
                              },
                              "description": "RFC 7519 4.1.3: string or array of strings; null when absent"
                            },
                            "exp": {
                              "type": [
                                "number",
                                "null"
                              ]
                            },
                            "iat": {
                              "type": [
                                "number",
                                "null"
                              ]
                            },
                            "iss": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "jti": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "nbf": {
                              "type": [
                                "number",
                                "null"
                              ]
                            },
                            "sub": {
                              "type": [
                                "string",
                                "null"
                              ]
                            }
                          }
                        },
                        "header": {
                          "type": [
                            "object",
                            "null"
                          ],
                          "description": "caller-supplied content echoed exactly as decoded: members are not typed"
                        },
                        "reason": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "payload": {
                          "type": [
                            "object",
                            "null"
                          ],
                          "description": "caller-supplied content echoed exactly as decoded: members are not typed"
                        },
                        "warnings": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "claim_errors": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "claim",
                              "reason"
                            ],
                            "properties": {
                              "claim": {
                                "type": "string"
                              },
                              "reason": {
                                "type": "string"
                              }
                            }
                          }
                        },
                        "signature_bytes": {
                          "type": "integer"
                        },
                        "valid_structure": {
                          "type": "boolean"
                        },
                        "signature_verified": {
                          "type": "boolean"
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "required": [
                        "request_id",
                        "computed_at",
                        "price_usd",
                        "deterministic",
                        "disclaimer"
                      ],
                      "properties": {
                        "sources": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "version",
                              "published"
                            ]
                          }
                        },
                        "price_usd": {
                          "type": "string"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "request_id": {
                          "type": "string"
                        },
                        "computed_at": {
                          "type": "string",
                          "description": "RFC 3339 UTC with milliseconds"
                        },
                        "deterministic": {
                          "type": "boolean"
                        }
                      }
                    },
                    "route": {
                      "const": "/v1/code/jwt"
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 120
      }
    ],
    "resource": {
      "url": "https://api.duoleads.com/v1/geo/geohash",
      "tags": [
        "deterministic",
        "no-api-key",
        "geo",
        "geohash"
      ],
      "iconUrl": "https://api.duoleads.com/logo.png",
      "mimeType": "application/json",
      "description": "Encode a WGS-84 latitude and longitude to a geohash at a chosen precision, or decode a geohash back to its bounding box, centre point and error bounds in metres. Encoding also returns the eight neighbouring cells, which is what a caller needs to do proximity search over a geohash-indexed store without a spatial database.",
      "serviceName": "Duo Data Utilities"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {
              "op": "encode",
              "lat": "52.3728",
              "lon": "4.8936",
              "precision": "9"
            }
          },
          "output": {
            "type": "json",
            "example": {
              "ok": true,
              "data": {
                "bbox": {
                  "max_lat": 52.37281322479248,
                  "max_lon": 4.893636703491211,
                  "min_lat": 52.37277030944824,
                  "min_lon": 4.893593788146973
                },
                "center": {
                  "lat": 52.37279176712036,
                  "lon": 4.893615245819092
                },
                "error_m": {
                  "lat": 2.39,
                  "lon": 1.46
                },
                "geohash": "u173zq5mt",
                "precision": 9,
                "neighbours": {
                  "e": "u173zq5mw",
                  "n": "u173zq5mv",
                  "s": "u173zq5mm",
                  "w": "u173zq5ms",
                  "ne": "u173zq5my",
                  "nw": "u173zq5mu",
                  "se": "u173zq5mq",
                  "sw": "u173zq5mk"
                }
              },
              "meta": {
                "price_usd": "0.05",
                "disclaimer": "Factual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms",
                "request_id": "01K6B7Q4ZC8H3F2M9WXR5TYN0D",
                "computed_at": "2026-09-28T12:00:00.000Z",
                "deterministic": true
              },
              "route": "/v1/geo/geohash",
              "version": "1.0.0"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [],
                  "properties": {
                    "op": {
                      "enum": [
                        "encode",
                        "decode"
                      ],
                      "type": "string",
                      "default": "encode",
                      "maxLength": 64,
                      "description": "encode (default): lat/lon to geohash. decode: geohash to bounding box."
                    },
                    "lat": {
                      "type": "string",
                      "pattern": "^[+-]?(\\d+(\\.\\d*)?|\\.\\d+)([eE][+-]?\\d+)?$",
                      "maxLength": 64,
                      "description": "WGS-84 latitude, -90 to 90. Required when op=encode."
                    },
                    "lon": {
                      "type": "string",
                      "pattern": "^[+-]?(\\d+(\\.\\d*)?|\\.\\d+)([eE][+-]?\\d+)?$",
                      "maxLength": 64,
                      "description": "WGS-84 longitude, -180 to 180. Required when op=encode."
                    },
                    "geohash": {
                      "type": "string",
                      "pattern": "^[0-9bcdefghjkmnpqrstuvwxyz]{1,12}$",
                      "maxLength": 64,
                      "description": "Geohash to decode, 1-12 characters. Required when op=decode."
                    },
                    "precision": {
                      "type": "string",
                      "default": "9",
                      "pattern": "^[+-]?\\d+$",
                      "maxLength": 64,
                      "description": "Geohash length 1-12, default 9 (about 4.8 m)."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "required": [
                    "ok",
                    "route",
                    "version",
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "const": true
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "geohash",
                        "precision",
                        "bbox",
                        "center",
                        "error_m"
                      ],
                      "properties": {
                        "bbox": {
                          "type": "object",
                          "required": [
                            "min_lat",
                            "min_lon",
                            "max_lat",
                            "max_lon"
                          ],
                          "properties": {
                            "max_lat": {
                              "type": "number"
                            },
                            "max_lon": {
                              "type": "number"
                            },
                            "min_lat": {
                              "type": "number"
                            },
                            "min_lon": {
                              "type": "number"
                            }
                          }
                        },
                        "center": {
                          "type": "object",
                          "required": [
                            "lat",
                            "lon"
                          ],
                          "properties": {
                            "lat": {
                              "type": "number"
                            },
                            "lon": {
                              "type": "number"
                            }
                          }
                        },
                        "error_m": {
                          "type": "object",
                          "required": [
                            "lat",
                            "lon"
                          ],
                          "properties": {
                            "lat": {
                              "type": "number"
                            },
                            "lon": {
                              "type": "number"
                            }
                          }
                        },
                        "geohash": {
                          "type": "string"
                        },
                        "precision": {
                          "type": "integer"
                        },
                        "neighbours": {
                          "type": "object",
                          "required": [
                            "n",
                            "ne",
                            "e",
                            "se",
                            "s",
                            "sw",
                            "w",
                            "nw"
                          ],
                          "properties": {
                            "e": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "n": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "s": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "w": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "ne": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "nw": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "se": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "sw": {
                              "type": [
                                "string",
                                "null"
                              ]
                            }
                          }
                        },
                        "cell_width_m": {
                          "type": "number"
                        },
                        "cell_height_m": {
                          "type": "number"
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "required": [
                        "request_id",
                        "computed_at",
                        "price_usd",
                        "deterministic",
                        "disclaimer"
                      ],
                      "properties": {
                        "sources": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "version",
                              "published"
                            ]
                          }
                        },
                        "price_usd": {
                          "type": "string"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "request_id": {
                          "type": "string"
                        },
                        "computed_at": {
                          "type": "string",
                          "description": "RFC 3339 UTC with milliseconds"
                        },
                        "deterministic": {
                          "type": "boolean"
                        }
                      }
                    },
                    "route": {
                      "const": "/v1/geo/geohash"
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 120
      }
    ],
    "resource": {
      "url": "https://api.duoleads.com/v1/geo/pluscode",
      "tags": [
        "deterministic",
        "no-api-key",
        "geo",
        "pluscode"
      ],
      "iconUrl": "https://api.duoleads.com/logo.png",
      "mimeType": "application/json",
      "description": "Encode coordinates as an Open Location Code (plus code) at a chosen length, or decode a full code back to its bounding box and centre. Also shortens a full code against a reference coordinate and recovers a shortened code given a reference, which is how plus codes are normally exchanged in text. Returns code length, precision in metres and validity.",
      "serviceName": "Duo Data Utilities"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {
              "lat": "52.3728",
              "lon": "4.8936"
            }
          },
          "output": {
            "type": "json",
            "example": {
              "ok": true,
              "data": {
                "bbox": {
                  "max_lat": 52.372875,
                  "max_lon": 4.893625,
                  "min_lat": 52.37275,
                  "min_lon": 4.8935
                },
                "code": "9F469VFV+4C",
                "valid": true,
                "center": {
                  "lat": 52.3728125,
                  "lon": 4.8935625
                },
                "length": 10,
                "reason": null,
                "is_full": true,
                "is_short": false,
                "precision_m": 13.9
              },
              "meta": {
                "price_usd": "0.05",
                "disclaimer": "Factual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms",
                "request_id": "01K6B7Q4ZC8H3F2M9WXR5TYN0D",
                "computed_at": "2026-09-28T12:00:00.000Z",
                "deterministic": true
              },
              "route": "/v1/geo/pluscode",
              "version": "1.0.0"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [],
                  "properties": {
                    "op": {
                      "enum": [
                        "encode",
                        "decode",
                        "shorten",
                        "recover"
                      ],
                      "type": "string",
                      "default": "encode",
                      "maxLength": 64,
                      "description": "encode (default), decode, shorten or recover."
                    },
                    "lat": {
                      "type": "string",
                      "pattern": "^[+-]?(\\d+(\\.\\d*)?|\\.\\d+)([eE][+-]?\\d+)?$",
                      "maxLength": 64,
                      "description": "Latitude for op=encode."
                    },
                    "lon": {
                      "type": "string",
                      "pattern": "^[+-]?(\\d+(\\.\\d*)?|\\.\\d+)([eE][+-]?\\d+)?$",
                      "maxLength": 64,
                      "description": "Longitude for op=encode."
                    },
                    "code": {
                      "type": "string",
                      "maxLength": 20,
                      "description": "Plus code for decode, shorten or recover."
                    },
                    "length": {
                      "type": "string",
                      "default": "10",
                      "pattern": "^[+-]?\\d+$",
                      "maxLength": 64,
                      "description": "Integer code length for op=encode: one of 2,4,6,8,10 (default),11,12,13,14,15. Other integers in 2-15 are 400 UNSUPPORTED_VALUE."
                    },
                    "ref_lat": {
                      "type": "string",
                      "pattern": "^[+-]?(\\d+(\\.\\d*)?|\\.\\d+)([eE][+-]?\\d+)?$",
                      "maxLength": 64,
                      "description": "Reference latitude for op=shorten/recover."
                    },
                    "ref_lon": {
                      "type": "string",
                      "pattern": "^[+-]?(\\d+(\\.\\d*)?|\\.\\d+)([eE][+-]?\\d+)?$",
                      "maxLength": 64,
                      "description": "Reference longitude for op=shorten/recover."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "required": [
                    "ok",
                    "route",
                    "version",
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "const": true
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "code",
                        "length",
                        "is_full",
                        "is_short",
                        "valid"
                      ],
                      "properties": {
                        "bbox": {
                          "type": "object",
                          "required": [
                            "min_lat",
                            "min_lon",
                            "max_lat",
                            "max_lon"
                          ],
                          "properties": {
                            "max_lat": {
                              "type": "number"
                            },
                            "max_lon": {
                              "type": "number"
                            },
                            "min_lat": {
                              "type": "number"
                            },
                            "min_lon": {
                              "type": "number"
                            }
                          }
                        },
                        "code": {
                          "type": "string"
                        },
                        "valid": {
                          "type": "boolean"
                        },
                        "center": {
                          "type": "object",
                          "required": [
                            "lat",
                            "lon"
                          ],
                          "properties": {
                            "lat": {
                              "type": "number"
                            },
                            "lon": {
                              "type": "number"
                            }
                          }
                        },
                        "length": {
                          "type": [
                            "integer",
                            "null"
                          ]
                        },
                        "reason": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "is_full": {
                          "type": "boolean"
                        },
                        "is_short": {
                          "type": "boolean"
                        },
                        "full_code": {
                          "type": "string"
                        },
                        "precision_m": {
                          "type": "number"
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "required": [
                        "request_id",
                        "computed_at",
                        "price_usd",
                        "deterministic",
                        "disclaimer"
                      ],
                      "properties": {
                        "sources": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "version",
                              "published"
                            ]
                          }
                        },
                        "price_usd": {
                          "type": "string"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "request_id": {
                          "type": "string"
                        },
                        "computed_at": {
                          "type": "string",
                          "description": "RFC 3339 UTC with milliseconds"
                        },
                        "deterministic": {
                          "type": "boolean"
                        }
                      }
                    },
                    "route": {
                      "const": "/v1/geo/pluscode"
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 120
      }
    ],
    "resource": {
      "url": "https://api.duoleads.com/v1/geo/polygon",
      "tags": [
        "deterministic",
        "no-api-key",
        "geo",
        "geojson",
        "geometry"
      ],
      "iconUrl": "https://api.duoleads.com/logo.png",
      "mimeType": "application/json",
      "description": "Geometric predicates on a GeoJSON geometry supplied in the request: point-in-polygon with correct hole handling, bounding box, centroid, signed area in square metres, perimeter length, and ring winding order. Accepts Polygon and MultiPolygon, and a GeoJSON Feature wrapping either. Area and length are geodesic on the WGS-84 ellipsoid, correct at any latitude; containment is planar in lon/lat.",
      "serviceName": "Duo Data Utilities"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {
              "lat": "52.3728",
              "lon": "4.8936",
              "geometry": "{\"type\":\"Polygon\",\"coordinates\":[[[4.85,52.35],[4.95,52.35],[4.95,52.40],[4.85,52.40],[4.85,52.35]]]}"
            }
          },
          "output": {
            "type": "json",
            "example": {
              "ok": true,
              "data": {
                "bbox": [
                  4.85,
                  52.35,
                  4.95,
                  52.4
                ],
                "rings": 1,
                "area_m2": 37890432.411,
                "winding": [
                  "ccw"
                ],
                "centroid": {
                  "lat": 52.37500000001563,
                  "lon": 4.900000000001667
                },
                "contains": true,
                "vertices": 4,
                "on_boundary": false,
                "perimeter_m": 24747.979
              },
              "meta": {
                "price_usd": "0.05",
                "disclaimer": "Factual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms",
                "request_id": "01K6B7Q4ZC8H3F2M9WXR5TYN0D",
                "computed_at": "2026-09-28T12:00:00.000Z",
                "deterministic": true
              },
              "route": "/v1/geo/polygon",
              "version": "1.0.0"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [
                    "geometry"
                  ],
                  "properties": {
                    "lat": {
                      "type": "string",
                      "pattern": "^[+-]?(\\d+(\\.\\d*)?|\\.\\d+)([eE][+-]?\\d+)?$",
                      "maxLength": 64,
                      "description": "Point latitude; with lon, runs the containment test."
                    },
                    "lon": {
                      "type": "string",
                      "pattern": "^[+-]?(\\d+(\\.\\d*)?|\\.\\d+)([eE][+-]?\\d+)?$",
                      "maxLength": 64,
                      "description": "Point longitude; with lat, runs the containment test."
                    },
                    "ops": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "Comma-separated subset of contains,bbox,centroid,area,perimeter,winding. Default all."
                    },
                    "geometry": {
                      "type": "string",
                      "maxLength": 3072,
                      "description": "URL-encoded GeoJSON Polygon, MultiPolygon or a Feature wrapping one. At most 3072 characters and 2000 coordinate pairs."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "required": [
                    "ok",
                    "route",
                    "version",
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "const": true
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "rings",
                        "vertices"
                      ],
                      "properties": {
                        "bbox": {
                          "type": "array",
                          "items": {
                            "type": "number"
                          }
                        },
                        "rings": {
                          "type": "integer"
                        },
                        "area_m2": {
                          "type": "number"
                        },
                        "winding": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "centroid": {
                          "type": "object",
                          "required": [
                            "lat",
                            "lon"
                          ],
                          "properties": {
                            "lat": {
                              "type": "number"
                            },
                            "lon": {
                              "type": "number"
                            }
                          }
                        },
                        "contains": {
                          "type": [
                            "boolean",
                            "null"
                          ]
                        },
                        "vertices": {
                          "type": "integer"
                        },
                        "on_boundary": {
                          "type": [
                            "boolean",
                            "null"
                          ]
                        },
                        "perimeter_m": {
                          "type": "number"
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "required": [
                        "request_id",
                        "computed_at",
                        "price_usd",
                        "deterministic",
                        "disclaimer"
                      ],
                      "properties": {
                        "sources": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "version",
                              "published"
                            ]
                          }
                        },
                        "price_usd": {
                          "type": "string"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "request_id": {
                          "type": "string"
                        },
                        "computed_at": {
                          "type": "string",
                          "description": "RFC 3339 UTC with milliseconds"
                        },
                        "deterministic": {
                          "type": "boolean"
                        }
                      }
                    },
                    "route": {
                      "const": "/v1/geo/polygon"
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 120
      }
    ],
    "resource": {
      "url": "https://api.duoleads.com/v1/geo/distance",
      "tags": [
        "deterministic",
        "no-api-key",
        "geo",
        "geodesy",
        "distance"
      ],
      "iconUrl": "https://api.duoleads.com/logo.png",
      "mimeType": "application/json",
      "description": "Distance and direction between WGS-84 coordinates: geodesic distance by Vincenty with a haversine fallback, initial and final bearing, the midpoint, and the destination point reached from a start point on a given bearing and distance. Also computes the cumulative length of a supplied coordinate path. Results in metres, kilometres, nautical miles and miles.",
      "serviceName": "Duo Data Utilities"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {
              "lat1": "52.3728",
              "lat2": "40.7128",
              "lon1": "4.8936",
              "lon2": "-74.0060"
            }
          },
          "output": {
            "type": "json",
            "example": {
              "ok": true,
              "data": {
                "method": "vincenty",
                "distance": {
                  "m": 5878232.354,
                  "km": 5878.232354,
                  "mi": 3652.564246,
                  "nmi": 3173.991552
                },
                "midpoint": {
                  "lat": 53.7242681,
                  "lon": -39.60892324
                },
                "converged": true,
                "bearing_final": 228.8713,
                "bearing_initial": 290.8461
              },
              "meta": {
                "price_usd": "0.05",
                "disclaimer": "Factual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms",
                "request_id": "01K6B7Q4ZC8H3F2M9WXR5TYN0D",
                "computed_at": "2026-09-28T12:00:00.000Z",
                "deterministic": true
              },
              "route": "/v1/geo/distance",
              "version": "1.0.0"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [],
                  "properties": {
                    "op": {
                      "enum": [
                        "distance",
                        "destination",
                        "midpoint",
                        "path"
                      ],
                      "type": "string",
                      "default": "distance",
                      "maxLength": 64,
                      "description": "distance (default), destination, midpoint or path."
                    },
                    "lat1": {
                      "type": "string",
                      "pattern": "^[+-]?(\\d+(\\.\\d*)?|\\.\\d+)([eE][+-]?\\d+)?$",
                      "maxLength": 64,
                      "description": "Start latitude."
                    },
                    "lat2": {
                      "type": "string",
                      "pattern": "^[+-]?(\\d+(\\.\\d*)?|\\.\\d+)([eE][+-]?\\d+)?$",
                      "maxLength": 64,
                      "description": "End latitude."
                    },
                    "lon1": {
                      "type": "string",
                      "pattern": "^[+-]?(\\d+(\\.\\d*)?|\\.\\d+)([eE][+-]?\\d+)?$",
                      "maxLength": 64,
                      "description": "Start longitude."
                    },
                    "lon2": {
                      "type": "string",
                      "pattern": "^[+-]?(\\d+(\\.\\d*)?|\\.\\d+)([eE][+-]?\\d+)?$",
                      "maxLength": 64,
                      "description": "End longitude."
                    },
                    "path": {
                      "type": "string",
                      "maxLength": 2048,
                      "description": "Comma-separated lat,lon pairs for op=path, at most 200 points."
                    },
                    "method": {
                      "enum": [
                        "vincenty",
                        "haversine"
                      ],
                      "type": "string",
                      "default": "vincenty",
                      "maxLength": 64,
                      "description": "vincenty (default, WGS-84) or haversine."
                    },
                    "bearing": {
                      "type": "string",
                      "pattern": "^[+-]?(\\d+(\\.\\d*)?|\\.\\d+)([eE][+-]?\\d+)?$",
                      "maxLength": 64,
                      "description": "Initial bearing in degrees for op=destination."
                    },
                    "distance_m": {
                      "type": "string",
                      "pattern": "^[+-]?(\\d+(\\.\\d*)?|\\.\\d+)([eE][+-]?\\d+)?$",
                      "maxLength": 64,
                      "description": "Distance in metres for op=destination, 0 to 1e9 (about 25 Earth circumferences); larger values are 400 INVALID_PARAM."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "required": [
                    "ok",
                    "route",
                    "version",
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "const": true
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "method",
                        "converged"
                      ],
                      "properties": {
                        "legs": {
                          "type": "integer"
                        },
                        "method": {
                          "type": "string"
                        },
                        "points": {
                          "type": "integer"
                        },
                        "distance": {
                          "type": "object",
                          "required": [
                            "m",
                            "km",
                            "nmi",
                            "mi"
                          ],
                          "properties": {
                            "m": {
                              "type": "number"
                            },
                            "km": {
                              "type": "number"
                            },
                            "mi": {
                              "type": "number"
                            },
                            "nmi": {
                              "type": "number"
                            }
                          }
                        },
                        "midpoint": {
                          "type": "object",
                          "required": [
                            "lat",
                            "lon"
                          ],
                          "properties": {
                            "lat": {
                              "type": "number"
                            },
                            "lon": {
                              "type": "number"
                            }
                          }
                        },
                        "converged": {
                          "type": "boolean"
                        },
                        "destination": {
                          "type": "object",
                          "required": [
                            "lat",
                            "lon"
                          ],
                          "properties": {
                            "lat": {
                              "type": "number"
                            },
                            "lon": {
                              "type": "number"
                            }
                          }
                        },
                        "bearing_final": {
                          "type": "number"
                        },
                        "bearing_initial": {
                          "type": "number"
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "required": [
                        "request_id",
                        "computed_at",
                        "price_usd",
                        "deterministic",
                        "disclaimer"
                      ],
                      "properties": {
                        "sources": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "version",
                              "published"
                            ]
                          }
                        },
                        "price_usd": {
                          "type": "string"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "request_id": {
                          "type": "string"
                        },
                        "computed_at": {
                          "type": "string",
                          "description": "RFC 3339 UTC with milliseconds"
                        },
                        "deterministic": {
                          "type": "boolean"
                        }
                      }
                    },
                    "route": {
                      "const": "/v1/geo/distance"
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 120
      }
    ],
    "resource": {
      "url": "https://api.duoleads.com/v1/chain/address",
      "tags": [
        "deterministic",
        "no-api-key",
        "chain",
        "blockchain",
        "addresses"
      ],
      "iconUrl": "https://api.duoleads.com/logo.png",
      "mimeType": "application/json",
      "description": "Identify which blockchain an address belongs to and validate its encoding: EVM EIP-55 checksum, Bitcoin base58check and bech32/bech32m with witness version, Solana base58 and on-curve check, Cosmos bech32 with its HRP, Tron, XRP, Litecoin, Dogecoin, Cardano, Polkadot SS58 and Algorand. Returns every chain the address is valid for (ambiguous when several match), the checksummed form for EVM addresses, and the reason a check failed, including unrecognised_format.",
      "serviceName": "Duo Data Utilities"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {
              "address": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045"
            }
          },
          "output": {
            "type": "json",
            "example": {
              "ok": true,
              "data": {
                "valid": true,
                "matches": [
                  {
                    "chain": "evm",
                    "valid": true,
                    "detail": {},
                    "format": "hex20",
                    "reason": "no_checksum"
                  }
                ],
                "checksum": {
                  "input_form": "lowercase",
                  "checksummed": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
                  "checksum_valid": true,
                  "eip1191_applied": false
                },
                "ambiguous": false
              },
              "meta": {
                "price_usd": "0.05",
                "disclaimer": "Factual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms",
                "request_id": "01K6B7Q4ZC8H3F2M9WXR5TYN0D",
                "computed_at": "2026-09-28T12:00:00.000Z",
                "deterministic": true
              },
              "route": "/v1/chain/address",
              "version": "1.0.0"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [
                    "address"
                  ],
                  "properties": {
                    "expect": {
                      "enum": [
                        "evm",
                        "bitcoin",
                        "solana",
                        "cosmos",
                        "tron",
                        "xrp",
                        "cardano",
                        "polkadot",
                        "algorand",
                        "litecoin",
                        "dogecoin"
                      ],
                      "type": "string",
                      "maxLength": 64,
                      "description": "Restrict the check to one chain id."
                    },
                    "address": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "Address to identify and validate."
                    },
                    "chain_id": {
                      "type": "string",
                      "pattern": "^[+-]?\\d+$",
                      "maxLength": 64,
                      "description": "EVM chain id; enables EIP-1191 chain-salted checksum validation."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "required": [
                    "ok",
                    "route",
                    "version",
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "const": true
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "valid",
                        "matches",
                        "checksum",
                        "ambiguous"
                      ],
                      "properties": {
                        "valid": {
                          "type": "boolean"
                        },
                        "reason": {
                          "type": "string"
                        },
                        "matches": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "chain",
                              "format",
                              "valid",
                              "reason",
                              "detail"
                            ],
                            "properties": {
                              "chain": {
                                "type": "string"
                              },
                              "valid": {
                                "type": "boolean"
                              },
                              "detail": {
                                "type": "object",
                                "properties": {
                                  "hrp": {
                                    "type": "string"
                                  },
                                  "bytes": {
                                    "type": "integer"
                                  },
                                  "network": {
                                    "type": "string"
                                  },
                                  "purpose": {
                                    "type": "string"
                                  },
                                  "encoding": {
                                    "type": "string"
                                  },
                                  "on_curve": {
                                    "type": "boolean"
                                  },
                                  "header_type": {
                                    "type": "integer"
                                  },
                                  "address_type": {
                                    "type": "string"
                                  },
                                  "version_byte": {
                                    "type": "integer"
                                  },
                                  "network_prefix": {
                                    "type": "integer"
                                  },
                                  "witness_version": {
                                    "type": "integer"
                                  }
                                }
                              },
                              "format": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "reason": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              }
                            }
                          }
                        },
                        "checksum": {
                          "type": [
                            "object",
                            "null"
                          ],
                          "required": [
                            "input_form",
                            "checksummed",
                            "checksum_valid",
                            "eip1191_applied"
                          ],
                          "properties": {
                            "input_form": {
                              "type": "string"
                            },
                            "checksummed": {
                              "type": "string"
                            },
                            "checksum_valid": {
                              "type": "boolean"
                            },
                            "eip1191_applied": {
                              "type": "boolean"
                            }
                          }
                        },
                        "ambiguous": {
                          "type": "boolean"
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "required": [
                        "request_id",
                        "computed_at",
                        "price_usd",
                        "deterministic",
                        "disclaimer"
                      ],
                      "properties": {
                        "sources": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "version",
                              "published"
                            ]
                          }
                        },
                        "price_usd": {
                          "type": "string"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "request_id": {
                          "type": "string"
                        },
                        "computed_at": {
                          "type": "string",
                          "description": "RFC 3339 UTC with milliseconds"
                        },
                        "deterministic": {
                          "type": "boolean"
                        }
                      }
                    },
                    "route": {
                      "const": "/v1/chain/address"
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 120
      }
    ],
    "resource": {
      "url": "https://api.duoleads.com/v1/chain/selector",
      "tags": [
        "deterministic",
        "no-api-key",
        "chain",
        "blockchain",
        "solidity"
      ],
      "iconUrl": "https://api.duoleads.com/logo.png",
      "mimeType": "application/json",
      "description": "Compute the Keccak-256 hash of a Solidity function or event signature and derive the 4-byte function selector and the 32-byte event topic. Normalises the signature first — strips parameter names, expands uint to uint256 and the other aliases, flattens tuples — so a signature copied from source code produces the same selector as the canonical form. Also hashes arbitrary text or hex bytes with Keccak-256.",
      "serviceName": "Duo Data Utilities"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {
              "signature": "transfer(address,uint256)"
            }
          },
          "output": {
            "type": "json",
            "example": {
              "ok": true,
              "data": {
                "inputs": [
                  "address",
                  "uint256"
                ],
                "topic0": null,
                "selector": "0xa9059cbb",
                "canonical": "transfer(address,uint256)",
                "keccak256": "0xa9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b",
                "normalisations": []
              },
              "meta": {
                "price_usd": "0.05",
                "disclaimer": "Factual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms",
                "request_id": "01K6B7Q4ZC8H3F2M9WXR5TYN0D",
                "computed_at": "2026-09-28T12:00:00.000Z",
                "deterministic": true
              },
              "route": "/v1/chain/selector",
              "version": "1.0.0"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [],
                  "properties": {
                    "data": {
                      "type": "string",
                      "maxLength": 8192,
                      "description": "Alternative to signature: raw data to Keccak-256 hash."
                    },
                    "kind": {
                      "enum": [
                        "function",
                        "event",
                        "error"
                      ],
                      "type": "string",
                      "default": "function",
                      "maxLength": 64,
                      "description": "function (default), event or error."
                    },
                    "encoding": {
                      "enum": [
                        "utf8",
                        "hex"
                      ],
                      "type": "string",
                      "default": "utf8",
                      "maxLength": 64,
                      "description": "Encoding of data: utf8 (default) or hex."
                    },
                    "signature": {
                      "type": "string",
                      "maxLength": 1024,
                      "description": "Solidity function, event or error signature, e.g. transfer(address to, uint amount)."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "required": [
                    "ok",
                    "route",
                    "version",
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "const": true
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "canonical",
                        "keccak256",
                        "selector",
                        "topic0",
                        "inputs",
                        "normalisations"
                      ],
                      "properties": {
                        "inputs": {
                          "type": [
                            "array",
                            "null"
                          ],
                          "items": {
                            "type": "string"
                          }
                        },
                        "topic0": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "encoding": {
                          "type": "string"
                        },
                        "selector": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "canonical": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "keccak256": {
                          "type": "string"
                        },
                        "input_bytes": {
                          "type": "integer"
                        },
                        "normalisations": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "from",
                              "to"
                            ],
                            "properties": {
                              "to": {
                                "type": "string"
                              },
                              "from": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "required": [
                        "request_id",
                        "computed_at",
                        "price_usd",
                        "deterministic",
                        "disclaimer"
                      ],
                      "properties": {
                        "sources": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "version",
                              "published"
                            ]
                          }
                        },
                        "price_usd": {
                          "type": "string"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "request_id": {
                          "type": "string"
                        },
                        "computed_at": {
                          "type": "string",
                          "description": "RFC 3339 UTC with milliseconds"
                        },
                        "deterministic": {
                          "type": "boolean"
                        }
                      }
                    },
                    "route": {
                      "const": "/v1/chain/selector"
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 120
      }
    ],
    "resource": {
      "url": "https://api.duoleads.com/v1/ref/nuts",
      "tags": [
        "deterministic",
        "no-api-key",
        "ref",
        "eu",
        "statistics"
      ],
      "iconUrl": "https://api.duoleads.com/logo.png",
      "mimeType": "application/json",
      "description": "Look up a NUTS statistical region of the European Union: resolve a NUTS code to its name, country and level, walk up to its parents or down to its children, or search regions by name. Covers all four levels (country, major region, basic region, small region) for the 27 member states and 12 further reporting countries, from the NUTS 2024 classification. Returns the Latin-script and local-language names plus the urbanisation, coastal and mountain typologies.",
      "serviceName": "Duo Data Utilities"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {
              "code": "NL32B",
              "include": "parents,typology"
            }
          },
          "output": {
            "type": "json",
            "example": {
              "ok": true,
              "data": {
                "code": "NL32B",
                "found": true,
                "level": 3,
                "country": "NL",
                "parents": [
                  {
                    "code": "NL",
                    "level": 0,
                    "name_latn": "Nederland"
                  },
                  {
                    "code": "NL3",
                    "level": 1,
                    "name_latn": "West-Nederland"
                  },
                  {
                    "code": "NL32",
                    "level": 2,
                    "name_latn": "Noord-Holland"
                  }
                ],
                "typology": {
                  "urban": "1",
                  "coastal": "1",
                  "mountain": "4",
                  "urban_label": "predominantly urban",
                  "coastal_label": "coastal",
                  "mountain_label": "non-mountain region"
                },
                "name_latn": "Groot-Amsterdam",
                "name_local": "Groot-Amsterdam",
                "canonical_country": "NL"
              },
              "meta": {
                "sources": [
                  {
                    "id": "eurostat-nuts",
                    "licence": "CC BY 4.0",
                    "version": "NUTS 2024",
                    "published": "2026-09-28",
                    "attribution": "© European Union, Eurostat/GISCO"
                  }
                ],
                "price_usd": "0.05",
                "disclaimer": "Factual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms",
                "request_id": "01K6B7Q4ZC8H3F2M9WXR5TYN0D",
                "computed_at": "2026-09-28T12:00:00.000Z",
                "deterministic": true
              },
              "route": "/v1/ref/nuts",
              "version": "1.0.0"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [],
                  "properties": {
                    "code": {
                      "type": "string",
                      "pattern": "^[A-Za-z]{2}[0-9A-Za-z]{0,3}$",
                      "maxLength": 16,
                      "description": "NUTS code, 2-5 characters, case-insensitive (level-3 codes may contain letters, e.g. NL32B). A GR or GB prefix is accepted for EL or UK."
                    },
                    "name": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "Substring search on region names, case- and accent-insensitive. Up to 25 matches."
                    },
                    "level": {
                      "type": "string",
                      "pattern": "^[+-]?\\d+$",
                      "maxLength": 64,
                      "description": "Restrict a name search to one level, 0-3."
                    },
                    "country": {
                      "type": "string",
                      "maxLength": 16,
                      "description": "ISO 3166-1 alpha-2 country filter (UK/GB and EL/GR both accepted)."
                    },
                    "include": {
                      "type": "string",
                      "default": "parents,typology",
                      "maxLength": 64,
                      "description": "Comma-separated: parents, children, typology. Default parents,typology."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "required": [
                    "ok",
                    "route",
                    "version",
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "const": true
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "found"
                      ],
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "found": {
                          "type": "boolean"
                        },
                        "level": {
                          "type": "integer"
                        },
                        "country": {
                          "type": "string"
                        },
                        "matches": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "code",
                              "level",
                              "country",
                              "name_latn",
                              "name_local"
                            ],
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "level": {
                                "type": "integer"
                              },
                              "country": {
                                "type": "string"
                              },
                              "name_latn": {
                                "type": "string"
                              },
                              "name_local": {
                                "type": "string"
                              }
                            }
                          }
                        },
                        "parents": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "code",
                              "level",
                              "name_latn"
                            ],
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "level": {
                                "type": "integer"
                              },
                              "name_latn": {
                                "type": "string"
                              }
                            }
                          }
                        },
                        "children": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "code",
                              "level",
                              "name_latn"
                            ],
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "level": {
                                "type": "integer"
                              },
                              "name_latn": {
                                "type": "string"
                              }
                            }
                          }
                        },
                        "typology": {
                          "type": "object",
                          "required": [
                            "urban",
                            "urban_label",
                            "coastal",
                            "coastal_label",
                            "mountain",
                            "mountain_label"
                          ],
                          "properties": {
                            "urban": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "coastal": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "mountain": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "urban_label": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "coastal_label": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "mountain_label": {
                              "type": [
                                "string",
                                "null"
                              ]
                            }
                          }
                        },
                        "name_latn": {
                          "type": "string"
                        },
                        "input_code": {
                          "type": "string"
                        },
                        "name_local": {
                          "type": "string"
                        },
                        "total_matches": {
                          "type": "integer"
                        },
                        "canonical_country": {
                          "type": "string"
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "required": [
                        "request_id",
                        "computed_at",
                        "price_usd",
                        "deterministic",
                        "disclaimer"
                      ],
                      "properties": {
                        "sources": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "version",
                              "published"
                            ]
                          }
                        },
                        "price_usd": {
                          "type": "string"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "request_id": {
                          "type": "string"
                        },
                        "computed_at": {
                          "type": "string",
                          "description": "RFC 3339 UTC with milliseconds"
                        },
                        "deterministic": {
                          "type": "boolean"
                        }
                      }
                    },
                    "route": {
                      "const": "/v1/ref/nuts"
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 120
      }
    ],
    "resource": {
      "url": "https://api.duoleads.com/v1/ref/airport",
      "tags": [
        "deterministic",
        "no-api-key",
        "ref",
        "travel",
        "airports"
      ],
      "iconUrl": "https://api.duoleads.com/logo.png",
      "mimeType": "application/json",
      "description": "Look up an airport by IATA or ICAO code and get its name, city, country, ISO 3166-2 region code, WGS-84 coordinates, elevation and IANA time zone, or find the nearest airports to a coordinate within a radius. Covers every airport worldwide that holds a three-letter IATA code and scheduled service. Returns the code type that matched and the distance in kilometres for proximity results.",
      "serviceName": "Duo Data Utilities"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {
              "code": "AMS"
            }
          },
          "output": {
            "type": "json",
            "example": {
              "ok": true,
              "data": {
                "found": true,
                "airport": {
                  "lat": 52.3086,
                  "lon": 4.76389,
                  "iata": "AMS",
                  "icao": "EHAM",
                  "name": "Amsterdam Airport Schiphol",
                  "type": "large_airport",
                  "region": "NL-NH",
                  "country": "NL",
                  "timezone": "Europe/Amsterdam",
                  "elevation_ft": -11,
                  "municipality": "Amsterdam"
                },
                "matched_on": "iata"
              },
              "meta": {
                "sources": [
                  {
                    "id": "ourairports",
                    "licence": "Public Domain",
                    "version": "2026-09-28 extract",
                    "published": "2026-09-28",
                    "attribution": "OurAirports (public domain)"
                  },
                  {
                    "id": "timezone-boundary-builder",
                    "licence": "ODbL-1.0",
                    "version": "2026d",
                    "published": "2026-09-29",
                    "attribution": "Time zones derived from timezone-boundary-builder data (https://github.com/evansiroky/timezone-boundary-builder), (c) contributors, ODbL 1.0, via timezonefinder 9.0.0"
                  }
                ],
                "price_usd": "0.05",
                "disclaimer": "Factual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms",
                "request_id": "01K6B7Q4ZC8H3F2M9WXR5TYN0D",
                "computed_at": "2026-09-28T12:00:00.000Z",
                "deterministic": true
              },
              "route": "/v1/ref/airport",
              "version": "1.0.0"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [],
                  "properties": {
                    "code": {
                      "type": "string",
                      "maxLength": 16,
                      "description": "3-letter IATA or 4-letter ICAO code, case-insensitive."
                    },
                    "near": {
                      "type": "string",
                      "maxLength": 64,
                      "description": "lat,lon to search around."
                    },
                    "limit": {
                      "type": "string",
                      "default": "5",
                      "pattern": "^[+-]?\\d+$",
                      "maxLength": 64,
                      "description": "Maximum results 1-25, default 5. Only with near."
                    },
                    "country": {
                      "type": "string",
                      "maxLength": 16,
                      "description": "ISO 3166-1 alpha-2 filter."
                    },
                    "radius_km": {
                      "type": "string",
                      "default": "100",
                      "pattern": "^[+-]?(\\d+(\\.\\d*)?|\\.\\d+)([eE][+-]?\\d+)?$",
                      "maxLength": 64,
                      "description": "Search radius in km, 1-1000, default 100. Only with near."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "required": [
                    "ok",
                    "route",
                    "version",
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "const": true
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "found"
                      ],
                      "properties": {
                        "found": {
                          "type": "boolean"
                        },
                        "nearby": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "iata",
                              "icao",
                              "name",
                              "municipality",
                              "country",
                              "region",
                              "lat",
                              "lon",
                              "elevation_ft",
                              "type",
                              "timezone",
                              "distance_km",
                              "bearing_deg"
                            ],
                            "properties": {
                              "lat": {
                                "type": "number"
                              },
                              "lon": {
                                "type": "number"
                              },
                              "iata": {
                                "type": "string"
                              },
                              "icao": {
                                "type": "string"
                              },
                              "name": {
                                "type": "string"
                              },
                              "type": {
                                "type": "string"
                              },
                              "region": {
                                "type": "string"
                              },
                              "country": {
                                "type": "string"
                              },
                              "timezone": {
                                "type": "string"
                              },
                              "bearing_deg": {
                                "type": "number"
                              },
                              "distance_km": {
                                "type": "number"
                              },
                              "elevation_ft": {
                                "type": [
                                  "number",
                                  "null"
                                ]
                              },
                              "municipality": {
                                "type": "string"
                              }
                            }
                          }
                        },
                        "airport": {
                          "type": "object",
                          "required": [
                            "iata",
                            "icao",
                            "name",
                            "municipality",
                            "country",
                            "region",
                            "lat",
                            "lon",
                            "elevation_ft",
                            "type",
                            "timezone"
                          ],
                          "properties": {
                            "lat": {
                              "type": "number"
                            },
                            "lon": {
                              "type": "number"
                            },
                            "iata": {
                              "type": "string"
                            },
                            "icao": {
                              "type": "string"
                            },
                            "name": {
                              "type": "string"
                            },
                            "type": {
                              "type": "string"
                            },
                            "region": {
                              "type": "string"
                            },
                            "country": {
                              "type": "string"
                            },
                            "timezone": {
                              "type": "string"
                            },
                            "elevation_ft": {
                              "type": [
                                "number",
                                "null"
                              ]
                            },
                            "municipality": {
                              "type": "string"
                            }
                          }
                        },
                        "matched_on": {
                          "type": "string"
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "required": [
                        "request_id",
                        "computed_at",
                        "price_usd",
                        "deterministic",
                        "disclaimer"
                      ],
                      "properties": {
                        "sources": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "version",
                              "published"
                            ]
                          }
                        },
                        "price_usd": {
                          "type": "string"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "request_id": {
                          "type": "string"
                        },
                        "computed_at": {
                          "type": "string",
                          "description": "RFC 3339 UTC with milliseconds"
                        },
                        "deterministic": {
                          "type": "boolean"
                        }
                      }
                    },
                    "route": {
                      "const": "/v1/ref/airport"
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 120
      }
    ],
    "resource": {
      "url": "https://api.duoleads.com/v1/ref/currency",
      "tags": [
        "deterministic",
        "no-api-key",
        "ref",
        "finance",
        "currency"
      ],
      "iconUrl": "https://api.duoleads.com/logo.png",
      "mimeType": "application/json",
      "description": "Look up a currency by its ISO 4217 alphabetic or numeric code: the official English name, minor-unit exponent, fund flag, the smallest cash denomination where it differs from the minor unit, the territories that use it, and historic codes on request. Returns the correct rounding increment for cash amounts, which is what a caller needs to render or settle a price. This route returns currency facts only and never an exchange rate.",
      "serviceName": "Duo Data Utilities"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {
              "code": "EUR",
              "include": "territories"
            }
          },
          "output": {
            "type": "json",
            "example": {
              "ok": true,
              "data": {
                "code": "EUR",
                "name": "Euro",
                "found": true,
                "status": "current",
                "is_fund": false,
                "numeric": "978",
                "minor_units": 2,
                "territories": [
                  "AD",
                  "AT",
                  "AX",
                  "BE",
                  "BG",
                  "BL",
                  "CY",
                  "DE",
                  "EE",
                  "ES",
                  "FI",
                  "FR",
                  "GF",
                  "GP",
                  "GR",
                  "HR",
                  "IE",
                  "IT",
                  "LT",
                  "LU",
                  "LV",
                  "MC",
                  "ME",
                  "MF",
                  "MQ",
                  "MT",
                  "NL",
                  "PM",
                  "PT",
                  "RE",
                  "SI",
                  "SK",
                  "SM",
                  "TF",
                  "VA",
                  "YT"
                ],
                "cash_rounding": null,
                "cash_minor_units": 2
              },
              "meta": {
                "sources": [
                  {
                    "id": "iso-4217",
                    "licence": "Public data (owner decision 2026-09-29)",
                    "version": "SIX list one 2026-09-17, list three 2026-01-01",
                    "published": "2026-09-17",
                    "attribution": "ISO 4217 currency and funds code lists, published by SIX Group as secretariat of the ISO 4217 Maintenance Agency (public data)"
                  },
                  {
                    "id": "cldr-currency-data",
                    "licence": "Unicode-3.0",
                    "version": "48.2.2",
                    "published": "2026-09-28",
                    "attribution": "Unicode CLDR, © Unicode, Inc."
                  }
                ],
                "price_usd": "0.05",
                "disclaimer": "Factual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms",
                "request_id": "01K6B7Q4ZC8H3F2M9WXR5TYN0D",
                "computed_at": "2026-09-28T12:00:00.000Z",
                "deterministic": true
              },
              "route": "/v1/ref/currency",
              "version": "1.0.0"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [],
                  "properties": {
                    "code": {
                      "type": "string",
                      "maxLength": 16,
                      "description": "ISO 4217 alpha-3 or 3-digit numeric code."
                    },
                    "country": {
                      "type": "string",
                      "maxLength": 16,
                      "description": "ISO 3166-1 alpha-2; returns the currencies in use there."
                    },
                    "include": {
                      "type": "string",
                      "maxLength": 64,
                      "description": "Comma-separated: territories, historic. Default none."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "required": [
                    "ok",
                    "route",
                    "version",
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "const": true
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "found"
                      ],
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "found": {
                          "type": "boolean"
                        },
                        "status": {
                          "type": "string"
                        },
                        "country": {
                          "type": "string"
                        },
                        "is_fund": {
                          "type": "boolean"
                        },
                        "numeric": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "withdrawn": {
                          "type": "string"
                        },
                        "currencies": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "code",
                              "numeric",
                              "name",
                              "minor_units",
                              "cash_minor_units",
                              "cash_rounding",
                              "is_fund",
                              "status"
                            ],
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "name": {
                                "type": "string"
                              },
                              "status": {
                                "type": "string"
                              },
                              "is_fund": {
                                "type": "boolean"
                              },
                              "numeric": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "minor_units": {
                                "type": [
                                  "integer",
                                  "null"
                                ]
                              },
                              "territories": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "cash_rounding": {
                                "type": [
                                  "number",
                                  "null"
                                ]
                              },
                              "cash_minor_units": {
                                "type": [
                                  "integer",
                                  "null"
                                ]
                              }
                            }
                          }
                        },
                        "minor_units": {
                          "type": [
                            "integer",
                            "null"
                          ]
                        },
                        "territories": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "cash_rounding": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "cash_minor_units": {
                          "type": [
                            "integer",
                            "null"
                          ]
                        },
                        "numeric_shared_with": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "required": [
                        "request_id",
                        "computed_at",
                        "price_usd",
                        "deterministic",
                        "disclaimer"
                      ],
                      "properties": {
                        "sources": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "version",
                              "published"
                            ]
                          }
                        },
                        "price_usd": {
                          "type": "string"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "request_id": {
                          "type": "string"
                        },
                        "computed_at": {
                          "type": "string",
                          "description": "RFC 3339 UTC with milliseconds"
                        },
                        "deterministic": {
                          "type": "boolean"
                        }
                      }
                    },
                    "route": {
                      "const": "/v1/ref/currency"
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 120
      }
    ],
    "resource": {
      "url": "https://api.duoleads.com/v1/ref/country",
      "tags": [
        "deterministic",
        "no-api-key",
        "ref",
        "countries",
        "iso-3166"
      ],
      "iconUrl": "https://api.duoleads.com/logo.png",
      "mimeType": "application/json",
      "description": "Look up a country or territory by ISO 3166-1 alpha-2, alpha-3 or numeric code, or by name, and get the other codes, the official and common English names, the UN M49 region and sub-region, the currencies in use, the country-code top-level domain, and optionally the full ISO 3166-2 subdivision list with each subdivision's type. Also resolves an ISO 3166-2 subdivision code such as NL-NH directly. Names are matched case- and accent-insensitively.",
      "serviceName": "Duo Data Utilities"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {
              "code": "NL"
            }
          },
          "output": {
            "type": "json",
            "example": {
              "ok": true,
              "data": {
                "m49": {
                  "region": "150",
                  "subregion": "155",
                  "region_name": "Europe",
                  "intermediate": null,
                  "subregion_name": "Western Europe",
                  "intermediate_name": null
                },
                "tld": [
                  ".nl"
                ],
                "kind": "country",
                "name": "Netherlands",
                "found": true,
                "alpha_2": "NL",
                "alpha_3": "NLD",
                "numeric": "528",
                "currencies": [
                  "EUR"
                ],
                "official_name": "Kingdom of the Netherlands",
                "subdivision_count": 18
              },
              "meta": {
                "sources": [
                  {
                    "id": "iso-codes",
                    "licence": "LGPL-2.1-or-later",
                    "version": "Debian iso-codes data/iso_3166-1.json (official_name) and data/iso_3166-2.json, retrieved 2026-09-28",
                    "published": "2026-09-28",
                    "attribution": "ISO 3166-1 official names and ISO 3166-2 subdivision data from Debian iso-codes (https://salsa.debian.org/iso-codes-team/iso-codes), (c) 2016 Dr. Tobias Quathamer, LGPL-2.1-or-later"
                  },
                  {
                    "id": "country-codes",
                    "licence": "PDDL-1.0",
                    "version": "datasets/country-codes, retrieved 2026-09-28",
                    "published": "2026-09-28",
                    "attribution": "Open Knowledge Foundation datasets/country-codes (ISO 3166-1 codes)"
                  },
                  {
                    "id": "cldr",
                    "licence": "Unicode-3.0",
                    "version": "48.2.2",
                    "published": "2026-09-28",
                    "attribution": "Unicode CLDR, © Unicode, Inc."
                  }
                ],
                "price_usd": "0.05",
                "disclaimer": "Factual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms",
                "request_id": "01K6B7Q4ZC8H3F2M9WXR5TYN0D",
                "computed_at": "2026-09-28T12:00:00.000Z",
                "deterministic": true
              },
              "route": "/v1/ref/country",
              "version": "1.0.0"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [],
                  "properties": {
                    "code": {
                      "type": "string",
                      "maxLength": 16,
                      "description": "ISO 3166-1 alpha-2, alpha-3 or numeric code, or an ISO 3166-2 subdivision code such as NL-NH."
                    },
                    "name": {
                      "type": "string",
                      "maxLength": 128,
                      "description": "Substring search on country names, case- and accent-insensitive."
                    },
                    "include": {
                      "type": "string",
                      "default": "m49,currency,tld",
                      "maxLength": 64,
                      "description": "Comma-separated: subdivisions, m49, currency, tld. Default m49,currency,tld."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "required": [
                    "ok",
                    "route",
                    "version",
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "const": true
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "found"
                      ],
                      "properties": {
                        "m49": {
                          "type": "object",
                          "required": [
                            "region",
                            "region_name",
                            "subregion",
                            "subregion_name",
                            "intermediate",
                            "intermediate_name"
                          ],
                          "properties": {
                            "region": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "subregion": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "region_name": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "intermediate": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "subregion_name": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "intermediate_name": {
                              "type": [
                                "string",
                                "null"
                              ]
                            }
                          }
                        },
                        "tld": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "kind": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "found": {
                          "type": "boolean"
                        },
                        "alpha_2": {
                          "type": "string"
                        },
                        "alpha_3": {
                          "type": "string"
                        },
                        "matches": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "alpha_2",
                              "alpha_3",
                              "numeric",
                              "name"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "alpha_2": {
                                "type": "string"
                              },
                              "alpha_3": {
                                "type": "string"
                              },
                              "numeric": {
                                "type": "string"
                              }
                            }
                          }
                        },
                        "numeric": {
                          "type": "string"
                        },
                        "currencies": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "subdivision": {
                          "type": "object",
                          "required": [
                            "code",
                            "name",
                            "type",
                            "parent"
                          ],
                          "properties": {
                            "code": {
                              "type": "string"
                            },
                            "name": {
                              "type": "string"
                            },
                            "type": {
                              "type": "string"
                            },
                            "parent": {
                              "type": [
                                "string",
                                "null"
                              ]
                            }
                          }
                        },
                        "subdivisions": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "code",
                              "name",
                              "type",
                              "parent"
                            ],
                            "properties": {
                              "code": {
                                "type": "string"
                              },
                              "name": {
                                "type": "string"
                              },
                              "type": {
                                "type": "string"
                              },
                              "parent": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              }
                            }
                          }
                        },
                        "official_name": {
                          "type": "string"
                        },
                        "total_matches": {
                          "type": "integer"
                        },
                        "subdivision_count": {
                          "type": "integer"
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "required": [
                        "request_id",
                        "computed_at",
                        "price_usd",
                        "deterministic",
                        "disclaimer"
                      ],
                      "properties": {
                        "sources": {
                          "type": "array"
                        },
                        "price_usd": {
                          "type": "string"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "request_id": {
                          "type": "string"
                        },
                        "computed_at": {
                          "type": "string"
                        },
                        "deterministic": {
                          "type": "boolean"
                        }
                      }
                    },
                    "route": {
                      "const": "/v1/ref/country"
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 120
      }
    ],
    "resource": {
      "url": "https://api.duoleads.com/v1/num/radix",
      "tags": [
        "deterministic",
        "no-api-key",
        "num",
        "numbers",
        "conversion"
      ],
      "iconUrl": "https://api.duoleads.com/logo.png",
      "mimeType": "application/json",
      "description": "Convert an integer between any two numeric bases from 2 to 36, with arbitrary precision so values far beyond 2^53 are exact. Accepts an optional sign and common prefixes (0x, 0b, 0o), validates every digit against the source base, and returns the value in the target base, in decimal, and as its bit length and digit count.",
      "serviceName": "Duo Data Utilities"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {
              "to": "10",
              "value": "0xdeadbeef"
            }
          },
          "output": {
            "type": "json",
            "example": {
              "ok": true,
              "data": {
                "to": 10,
                "from": 16,
                "exact": true,
                "digits": 10,
                "result": "3735928559",
                "decimal": "3735928559",
                "negative": false,
                "bit_length": 32
              },
              "meta": {
                "price_usd": "0.05",
                "disclaimer": "Factual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms",
                "request_id": "01K6B7Q4ZC8H3F2M9WXR5TYN0D",
                "computed_at": "2026-09-28T12:00:00.000Z",
                "deterministic": true
              },
              "route": "/v1/num/radix",
              "version": "1.0.0"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [
                    "value"
                  ],
                  "properties": {
                    "to": {
                      "type": "string",
                      "default": "10",
                      "pattern": "^[+-]?\\d+$",
                      "maxLength": 64,
                      "description": "Target base 2-36, default 10."
                    },
                    "case": {
                      "enum": [
                        "lower",
                        "upper"
                      ],
                      "type": "string",
                      "default": "lower",
                      "maxLength": 64,
                      "description": "Digit case for bases above 10: lower (default) or upper."
                    },
                    "from": {
                      "type": "string",
                      "default": "auto",
                      "maxLength": 8,
                      "description": "Source base 2-36, or auto (default) to read a 0x/0b/0o prefix."
                    },
                    "value": {
                      "type": "string",
                      "maxLength": 1024,
                      "description": "Integer to convert; optional sign and 0x/0b/0o prefix."
                    },
                    "prefix": {
                      "enum": [
                        "true",
                        "false"
                      ],
                      "type": "string",
                      "default": "false",
                      "maxLength": 64,
                      "description": "Emit 0x/0b/0o where conventional. Default false."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "required": [
                    "ok",
                    "route",
                    "version",
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "const": true
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "result",
                        "decimal",
                        "from",
                        "to",
                        "negative",
                        "digits",
                        "bit_length",
                        "exact"
                      ],
                      "properties": {
                        "to": {
                          "type": "integer"
                        },
                        "from": {
                          "type": "integer"
                        },
                        "exact": {
                          "type": "boolean"
                        },
                        "digits": {
                          "type": "integer"
                        },
                        "result": {
                          "type": "string"
                        },
                        "decimal": {
                          "type": "string"
                        },
                        "negative": {
                          "type": "boolean"
                        },
                        "bit_length": {
                          "type": "integer"
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "required": [
                        "request_id",
                        "computed_at",
                        "price_usd",
                        "deterministic",
                        "disclaimer"
                      ],
                      "properties": {
                        "sources": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "version",
                              "published"
                            ]
                          }
                        },
                        "price_usd": {
                          "type": "string"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "request_id": {
                          "type": "string"
                        },
                        "computed_at": {
                          "type": "string",
                          "description": "RFC 3339 UTC with milliseconds"
                        },
                        "deterministic": {
                          "type": "boolean"
                        }
                      }
                    },
                    "route": {
                      "const": "/v1/num/radix"
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 120
      }
    ],
    "resource": {
      "url": "https://api.duoleads.com/v1/num/words",
      "tags": [
        "deterministic",
        "no-api-key",
        "num",
        "numbers",
        "localisation"
      ],
      "iconUrl": "https://api.duoleads.com/logo.png",
      "mimeType": "application/json",
      "description": "Spell a number out in words in English, Dutch, German, French, Spanish, Italian, Portuguese, Polish, Russian, Turkish, Swedish or Japanese, in cardinal, ordinal or currency form. Currency form agrees the number with the currency noun and gives real minor-unit names for 19 currencies (EUR, USD, GBP, CHF, SEK, NOK, DKK, PLN, RUB, TRY, CNY, INR, BRL, MXN, CAD, AUD, NZD, CZK, HUF); any other ISO 4217 code uses a fraction such as 56/100. Values up to 10^15.",
      "serviceName": "Duo Data Utilities"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {
              "lang": "nl",
              "value": "1234"
            }
          },
          "output": {
            "type": "json",
            "example": {
              "ok": true,
              "data": {
                "form": "cardinal",
                "lang": "nl",
                "parts": null,
                "value": "1234",
                "words": "duizend tweehonderdvierendertig",
                "currency": null
              },
              "meta": {
                "price_usd": "0.05",
                "disclaimer": "Factual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms",
                "request_id": "01K6B7Q4ZC8H3F2M9WXR5TYN0D",
                "computed_at": "2026-09-28T12:00:00.000Z",
                "deterministic": true
              },
              "route": "/v1/num/words",
              "version": "1.0.0"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [
                    "value"
                  ],
                  "properties": {
                    "case": {
                      "enum": [
                        "lower",
                        "sentence",
                        "title"
                      ],
                      "type": "string",
                      "default": "lower",
                      "maxLength": 64,
                      "description": "lower (default), sentence or title."
                    },
                    "form": {
                      "enum": [
                        "cardinal",
                        "ordinal",
                        "currency",
                        "year"
                      ],
                      "type": "string",
                      "default": "cardinal",
                      "maxLength": 64,
                      "description": "cardinal (default), ordinal, currency or year."
                    },
                    "lang": {
                      "enum": [
                        "en",
                        "nl",
                        "de",
                        "fr",
                        "es",
                        "it",
                        "pt",
                        "pl",
                        "ru",
                        "tr",
                        "sv",
                        "ja"
                      ],
                      "type": "string",
                      "default": "en",
                      "maxLength": 64,
                      "description": "Language, ISO 639-1. Default en."
                    },
                    "value": {
                      "type": "string",
                      "maxLength": 32,
                      "description": "Integer or decimal, absolute value below 1e15."
                    },
                    "currency": {
                      "type": "string",
                      "maxLength": 16,
                      "description": "ISO 4217 code. Required when form=currency, rejected otherwise."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "required": [
                    "ok",
                    "route",
                    "version",
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "const": true
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "words",
                        "value",
                        "lang",
                        "form",
                        "currency"
                      ],
                      "properties": {
                        "form": {
                          "type": "string"
                        },
                        "lang": {
                          "type": "string"
                        },
                        "parts": {
                          "type": [
                            "object",
                            "null"
                          ],
                          "required": [
                            "integer_words",
                            "minor_words"
                          ],
                          "properties": {
                            "minor_words": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "integer_words": {
                              "type": "string"
                            }
                          }
                        },
                        "value": {
                          "type": "string"
                        },
                        "words": {
                          "type": "string"
                        },
                        "currency": {
                          "type": [
                            "object",
                            "null"
                          ],
                          "required": [
                            "code",
                            "unit_singular",
                            "unit_plural",
                            "minor_singular",
                            "minor_plural",
                            "minor_units"
                          ],
                          "properties": {
                            "code": {
                              "type": "string"
                            },
                            "minor_units": {
                              "type": "integer"
                            },
                            "unit_plural": {
                              "type": "string"
                            },
                            "minor_plural": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "unit_singular": {
                              "type": "string"
                            },
                            "minor_singular": {
                              "type": [
                                "string",
                                "null"
                              ]
                            }
                          }
                        },
                        "rounding_applied": {
                          "type": "boolean"
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "required": [
                        "request_id",
                        "computed_at",
                        "price_usd",
                        "deterministic",
                        "disclaimer"
                      ],
                      "properties": {
                        "sources": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "version",
                              "published"
                            ]
                          }
                        },
                        "price_usd": {
                          "type": "string"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "request_id": {
                          "type": "string"
                        },
                        "computed_at": {
                          "type": "string",
                          "description": "RFC 3339 UTC with milliseconds"
                        },
                        "deterministic": {
                          "type": "boolean"
                        }
                      }
                    },
                    "route": {
                      "const": "/v1/num/words"
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 120
      }
    ],
    "resource": {
      "url": "https://api.duoleads.com/v1/num/stats",
      "tags": [
        "deterministic",
        "no-api-key",
        "num",
        "numbers",
        "statistics"
      ],
      "iconUrl": "https://api.duoleads.com/logo.png",
      "mimeType": "application/json",
      "description": "Descriptive statistics for a supplied numeric array in one call: count, sum, mean, median, mode, variance and standard deviation with variance and standard deviation honouring ddof (default 1, the sample form; 0 gives the population form) and always-population *_population fields, min, max, range, the quartiles and interquartile range, skewness, kurtosis, and any requested percentiles. Percentiles use a named interpolation method so the result is reproducible rather than implementation-defined.",
      "serviceName": "Duo Data Utilities"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {
              "values": "1,2,3,4,5"
            }
          },
          "output": {
            "type": "json",
            "example": {
              "ok": true,
              "data": {
                "n": 5,
                "q1": 2,
                "q3": 4,
                "iqr": 2,
                "max": 5,
                "min": 1,
                "sum": 15,
                "ddof": 1,
                "mean": 3,
                "mode": null,
                "range": 4,
                "stdev": 1.5811388300841898,
                "median": 3,
                "method": "linear",
                "skewness": 0,
                "variance": 2.5,
                "percentiles": {
                  "25": 2,
                  "50": 3,
                  "75": 4
                },
                "outliers_tukey": [],
                "kurtosis_excess": -1.1999999999999993,
                "stdev_population": 1.4142135623730951,
                "variance_population": 2
              },
              "meta": {
                "price_usd": "0.05",
                "disclaimer": "Factual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms",
                "request_id": "01K6B7Q4ZC8H3F2M9WXR5TYN0D",
                "computed_at": "2026-09-28T12:00:00.000Z",
                "deterministic": true
              },
              "route": "/v1/num/stats",
              "version": "1.0.0"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [
                    "values"
                  ],
                  "properties": {
                    "ddof": {
                      "type": "string",
                      "default": "1",
                      "pattern": "^[+-]?\\d+$",
                      "maxLength": 64,
                      "description": "Delta degrees of freedom for variance/stdev: 1 (default, sample, n-1) or 0 (population, n). The *_population fields are always population."
                    },
                    "method": {
                      "enum": [
                        "linear",
                        "nearest",
                        "lower",
                        "higher",
                        "midpoint"
                      ],
                      "type": "string",
                      "default": "linear",
                      "maxLength": 64,
                      "description": "Percentile interpolation (NumPy/R names): linear (default), nearest, lower, higher, midpoint."
                    },
                    "values": {
                      "type": "string",
                      "maxLength": 4096,
                      "description": "Comma-separated finite numbers, at most 500 values."
                    },
                    "percentiles": {
                      "type": "string",
                      "default": "25,50,75",
                      "maxLength": 256,
                      "description": "Comma-separated percentiles 0-100, at most 20. Default 25,50,75."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "required": [
                    "ok",
                    "route",
                    "version",
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "const": true
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "n",
                        "sum",
                        "mean",
                        "median",
                        "mode",
                        "ddof",
                        "variance",
                        "stdev",
                        "variance_population",
                        "stdev_population",
                        "min",
                        "max",
                        "range",
                        "q1",
                        "q3",
                        "iqr",
                        "skewness",
                        "kurtosis_excess",
                        "percentiles",
                        "method",
                        "outliers_tukey"
                      ],
                      "properties": {
                        "n": {
                          "type": "integer"
                        },
                        "q1": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "q3": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "iqr": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "max": {
                          "type": "number"
                        },
                        "min": {
                          "type": "number"
                        },
                        "sum": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "ddof": {
                          "type": "integer"
                        },
                        "mean": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "mode": {
                          "type": [
                            "array",
                            "null"
                          ],
                          "items": {
                            "type": "number"
                          }
                        },
                        "range": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "stdev": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "median": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "method": {
                          "type": "string"
                        },
                        "skewness": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "variance": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "percentiles": {
                          "type": "object",
                          "description": "keyed by caller-chosen names",
                          "additionalProperties": {
                            "type": [
                              "number",
                              "null"
                            ]
                          }
                        },
                        "outliers_tukey": {
                          "type": "array",
                          "items": {
                            "type": "number"
                          }
                        },
                        "kurtosis_excess": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "stdev_population": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "variance_population": {
                          "type": [
                            "number",
                            "null"
                          ]
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "required": [
                        "request_id",
                        "computed_at",
                        "price_usd",
                        "deterministic",
                        "disclaimer"
                      ],
                      "properties": {
                        "sources": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "version",
                              "published"
                            ]
                          }
                        },
                        "price_usd": {
                          "type": "string"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "request_id": {
                          "type": "string"
                        },
                        "computed_at": {
                          "type": "string",
                          "description": "RFC 3339 UTC with milliseconds"
                        },
                        "deterministic": {
                          "type": "boolean"
                        }
                      }
                    },
                    "route": {
                      "const": "/v1/num/stats"
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 120
      }
    ],
    "resource": {
      "url": "https://api.duoleads.com/v1/num/allocate",
      "tags": [
        "deterministic",
        "no-api-key",
        "num",
        "finance",
        "money"
      ],
      "iconUrl": "https://api.duoleads.com/logo.png",
      "mimeType": "application/json",
      "description": "Split a money amount into shares without losing or inventing a cent. Divide evenly into N parts, or by a list of ratios, and the remainder is distributed one minor unit at a time by a named, deterministic rule — largest-remainder, first-wins or last-wins — so the parts always sum exactly to the original. Uses the ISO 4217 minor-unit exponent of the currency, so zero- and three-decimal currencies work (JPY 0, KWD 3); metals and XXX are rejected.",
      "serviceName": "Duo Data Utilities"
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {
              "parts": "3",
              "amount": "100.00",
              "currency": "EUR"
            }
          },
          "output": {
            "type": "json",
            "example": {
              "ok": true,
              "data": {
                "rule": "largest-remainder",
                "total": "100.00",
                "shares": [
                  "33.34",
                  "33.33",
                  "33.33"
                ],
                "currency": "EUR",
                "minor_units": 2,
                "shares_minor": [
                  3334,
                  3333,
                  3333
                ],
                "remainder_distributed": 1
              },
              "meta": {
                "sources": [
                  {
                    "id": "iso-4217",
                    "licence": "Public data (owner decision 2026-09-29)",
                    "version": "SIX list one 2026-09-17, list three 2026-01-01",
                    "published": "2026-09-17",
                    "attribution": "ISO 4217 currency and funds code lists, published by SIX Group as secretariat of the ISO 4217 Maintenance Agency (public data)"
                  }
                ],
                "price_usd": "0.05",
                "disclaimer": "Factual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms",
                "request_id": "01K6B7Q4ZC8H3F2M9WXR5TYN0D",
                "computed_at": "2026-09-28T12:00:00.000Z",
                "deterministic": true
              },
              "route": "/v1/num/allocate",
              "version": "1.0.0"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [
                    "amount",
                    "currency"
                  ],
                  "properties": {
                    "rule": {
                      "enum": [
                        "largest-remainder",
                        "first",
                        "last",
                        "round-robin"
                      ],
                      "type": "string",
                      "default": "largest-remainder",
                      "maxLength": 64,
                      "description": "Remainder rule: largest-remainder (default), first, last or round-robin."
                    },
                    "parts": {
                      "type": "string",
                      "pattern": "^[+-]?\\d+$",
                      "maxLength": 64,
                      "description": "Number of equal parts, 1-1000. One of parts or ratios."
                    },
                    "amount": {
                      "type": "string",
                      "maxLength": 24,
                      "description": "Decimal amount, absolute value below 1e12."
                    },
                    "ratios": {
                      "type": "string",
                      "maxLength": 4096,
                      "description": "Comma-separated non-negative ratios, at most 1000, each with at most 15 integer digits and 15 decimal places. One of parts or ratios."
                    },
                    "currency": {
                      "type": "string",
                      "maxLength": 16,
                      "description": "ISO 4217 alpha-3 code."
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object",
                  "required": [
                    "ok",
                    "route",
                    "version",
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "ok": {
                      "const": true
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "shares",
                        "shares_minor",
                        "total",
                        "currency",
                        "minor_units",
                        "remainder_distributed",
                        "rule"
                      ],
                      "properties": {
                        "rule": {
                          "type": "string"
                        },
                        "total": {
                          "type": "string"
                        },
                        "shares": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "currency": {
                          "type": "string"
                        },
                        "minor_units": {
                          "type": "integer"
                        },
                        "shares_minor": {
                          "type": "array",
                          "items": {
                            "type": "integer"
                          }
                        },
                        "remainder_distributed": {
                          "type": "integer"
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "required": [
                        "request_id",
                        "computed_at",
                        "price_usd",
                        "deterministic",
                        "disclaimer"
                      ],
                      "properties": {
                        "sources": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "version",
                              "published"
                            ]
                          }
                        },
                        "price_usd": {
                          "type": "string"
                        },
                        "disclaimer": {
                          "type": "string"
                        },
                        "request_id": {
                          "type": "string"
                        },
                        "computed_at": {
                          "type": "string",
                          "description": "RFC 3339 UTC with milliseconds"
                        },
                        "deterministic": {
                          "type": "boolean"
                        }
                      }
                    },
                    "route": {
                      "const": "/v1/num/allocate"
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  }
]

OVER TIME

All charts use the 30d selector; each series spans only the dates it has data for. Every series is also served as JSON at /api/v1/services/duo-data-utilities/price, /scores, /volume and /buyers. On-chain volume and distinct buyers are measured over the service's settlement address and are a conservative undercount (only settlements that reach a measured facilitator are counted). The on-chain series roll up hourly, so the latest day can be up to about an hour behind; distinct buyers are counted per payout address, so a service that settles to more than one address is an upper bound.

UPTIME
10-04 · uptime 100.0% · 100ms avg10-0410-04
30D UPTIME 100%
RESPONSE TIME
10-04 · 100ms avg10-04 · 100ms avg10-0410-04
AVG RESP 100ms
PRICE (captured 402, USD)
building price history ($0.05)

Median across 33 endpoints. Use the selector to isolate one.

SUB-SCORES (uptime + x402 compliance)
building assessment history (1 day so far)

checklist grew 11->14 on 2026-07-28; a step here is a metric change, not a regression

VOLUME (on-chain settlement, USD)
09-28 · $209-29 · $310-01 · $210-02 · $0.05peak $309-2810-02
DISTINCT BUYERS
09-28 · 1 buyer09-29 · 1 buyer10-01 · 1 buyer10-02 · 1 buyerpeak 1 buyer09-2810-02

COMPLIANCE

14/14 checks pass · grade A

last 402 captured 2026-10-04 · last up 2026-10-04

  • 402 payload captured
  • accepts[] array present
  • payTo address recoverable
  • payTo at accepts[0].payTo (conformant shape)
  • payTo is a valid on-chain address
  • atomic price declared
  • atomic price in a sane range
  • asset (token) address declared
  • network resolves to CAIP-2
  • payment scheme declared
  • served over HTTPS
  • declares the current x402 version (2)
  • EIP-712 domain parameters present on every EVM entry
  • x402 v2 envelope delivered in the payment-required header

SITE PILLARS

  • homepage reachable
  • openapi doc
  • pricing page
  • llms.txt
  • robots.txt
  • terms page
recent checks (7) live · click to expand
TIME STATUS RESP CAUSE
● OK 90ms
● OK 116ms
● OK 95ms
● OK 90ms
● OK 108ms
● OK 82ms
● OK 118ms

EMBED THIS BADGE

Show that Duo Data Utilities is monitored on x402-list. Paste this on your site or README, it links back to this live listing.

Duo Data Utilities listed on x402-list
status
Duo Data Utilities uptime on x402-list
live uptime
// HTML
<a href="https://x402-list.com/services/duo-data-utilities?utm_source=badge&utm_medium=referral&utm_campaign=embed">
  <img src="https://x402-list.com/badge/duo-data-utilities.svg" alt="Duo Data Utilities listed on x402-list" height="28">
</a>
// Markdown
[![Duo Data Utilities on x402-list](https://x402-list.com/badge/duo-data-utilities.svg)](https://x402-list.com/services/duo-data-utilities?utm_source=badge&utm_medium=referral&utm_campaign=embed)
// HTML · live uptime variant
<a href="https://x402-list.com/services/duo-data-utilities?utm_source=badge&utm_medium=referral&utm_campaign=embed">
  <img src="https://x402-list.com/badge/duo-data-utilities.svg?data=uptime" alt="Duo Data Utilities uptime on x402-list" height="28">
</a>

RUN THIS SERVICE?

Keep this listing accurate: propose changes to the name, description, website, category or add new endpoints to monitor. Ownership is verified with a domain proof and every change is reviewed manually; measured data stays read-only.

[ update this listing ]

Earn the verified tier: x402list pays a real call to this endpoint and, if it delivers, the service is delivery-verified. The fee covers the cost of the probe, not the badge; there is no refund if the call does not deliver. Agent and API only, no in-browser signing. See /api.

[ verify this service ($0.25) ]

To request delisting, email info@x402-list.com or update your listing at /services/duo-data-utilities/update.