# Duo Data Utilities – ISO 4217 Currency Lookup

> Duo Data Utilities – ISO 4217 Currency Lookup is a paid API for AI agents from api.duoleads.com, paid per call via x402, $0.05/call, status unknown (last checked 2026-10-02).

Look up an ISO 4217 currency by alpha or numeric code to retrieve its name, minor unit exponent, cash rounding increment, and the territories that use it.

## Facts

- Endpoint: GET https://api.duoleads.com/v1/ref/currency?utm_source=zero.xyz
- Price: $0.05/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/duo-data-utilities-iso-4217-currency-lookup-020ccd57
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_-aPPXl3USm-jedAZ7Wz8A

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability duo-data-utilities-iso-4217-currency-lookup-020ccd57
```

Example prompt: What are the details for the Euro — its ISO 4217 numeric code, how many decimal places it uses, the cash rounding increment, and which countries use it?

## When to prefer this

Use this endpoint when you need authoritative ISO 4217 currency metadata — especially the correct number of decimal places and cash rounding increment — for rendering prices, validating currency codes, or determining which currencies operate in a given territory. It is purely a reference/fact lookup and returns no exchange rates; choose a separate FX endpoint for rate conversion. Prefer this over hardcoded lookup tables when you need up-to-date CLDR-sourced territory data or cash rounding rules (e.g. CHF rounds to 0.05).

## Known failure modes

- Unknown or invalid ISO 4217 code — returns a not-found response with found: false
- Malformed query parameter (e.g. code longer than 16 chars) — likely 400 Bad Request
- No code or country provided — may return an error or empty result
- Historic currencies may be returned but flagged with status not equal to 'current'
- Payment not settled — 402 Payment Required before data is returned

## How this service works

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.

## Output

A JSON object containing the currency's alphabetic code, numeric code, English name, current/historic status, minor unit exponent (decimal places), cash rounding increment (where it differs from the minor unit), cash minor units, whether it is a fund instrument, and an array of ISO 3166-1 alpha-2 territory codes where it circulates. Also includes metadata: request ID, computation timestamp, data source attribution (Unicode CLDR), and a determinism flag.

## Request schema (JSON Schema)

```json
{
 "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": "
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "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"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/duo-data-utilities-iso-4217-currency-lookup-020ccd57/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.duoleads.com](https://www.zero.xyz/host/api.duoleads.com/llms.txt)
