api.duoleads.com

https://api.duoleads.com/v1/text/unicode

Shares a payout wallet with 32 other endpoints — its adoption is attributed from that shared wallet's traffic, not earned exclusively.

Analyse a string at the Unicode level: apply NFC, NFD, NFKC or NFKD normalisation, report which normalisation forms it is already in, list the scripts present, and flag confusable and homoglyph characters — Cyrillic а in a Latin word, zero-width joiners, bidirectional overrides, invisible characters. Returns per-character detail for anything suspicious, with code points, names and the ASCII character each one imitates.

58
reliability

Reliability & health

Uptime and response time from our own unpaid probes, plus the reliability score built from them.

Uptime

100.0% avg
0% 50% 100% Sep 29Oct 1Oct 3Oct 5

Response time

p50 8ms · p95 13ms
0ms 50ms 100ms Sep 29Oct 1Oct 3Oct 5
Data table
Reliability history per time bucket over the last 30 days (daily).
Bucket Uptime Probes Response time
9/29/2026, 12:00:00 AM 100% 8 8ms
9/30/2026, 12:00:00 AM 100% 12 8ms
10/1/2026, 12:00:00 AM 100% 12 9ms
10/2/2026, 12:00:00 AM 100% 12 8ms
10/3/2026, 12:00:00 AM 100% 13 9ms
10/4/2026, 12:00:00 AM 100% 10 8ms
10/5/2026, 12:00:00 AM 100% 6 8ms
58
Composite reliability — the weighted average of the dimensions below, on a 0–100 scale.
Availability
100

How often it was reachable when we probed it (weight 35%).

Latency
100

How quickly it answers when it is up — fast scores high (weight 20%).

Security
100

Whether it serves over working TLS / https (weight 15%).

Transparency
61

Whether the operator disclosed what it does — description, schema, identity (weight 15%).

Activity
1

Observed on-chain payments to this endpoint's wallet — transactions, volume, and distinct paying wallets over the last month (weight 15%; not yet measured when we have not seen its wallet settle).

Confidence 100% — how much probe evidence backs this score. A thin history is flagged, not hidden.

See the scoring methodology for exactly how each number is computed.

Payment

Currencies
USDC
Networks
base
Facilitator
unknown
SDK
unknown

Operator

Company
inferred — unknown
Jurisdiction
—
Registrar
Key-Systems GmbH
Domain registered
2020-10-29
Hosting network
CLOUDFLARENET
Hosting country
—

Operator context is derived from public RDAP/TLS records and unverified. Company and country are only available for endpoints that publish them (an OV/EV TLS certificate or a non-redacted domain record); most endpoints are CDN-fronted and disclose neither.

On-chain activity (base)

138
payments (30d)
6.9
USD volume (30d)
2
paying wallets (30d)

Payments per day

last payment 10/2/2026
0 30 60 Sep 28Sep 29Oct 1Oct 2
Data table
Settled payments per day.
Day Payments Volume (USD) Paying wallets
9/28/2026 49 2.45 1
9/29/2026 55 2.75 1
10/1/2026 33 1.65 1
10/2/2026 1 0.05 1

This payout wallet is shared: figures cover all 33 endpoints paid at it, since payments cannot be attributed to one of them. Only payments settled on chains and facilitators we index.

Linked by wallet — likely same operator

On-chain agent identity and the x402 endpoint that shares its settlement wallet.

https://api.duoleads.com/v1/code/semver x402 endpoint https://api.duoleads.com/v1/time/dst x402 endpoint https://api.duoleads.com/v1/ref/airport x402 endpoint https://api.duoleads.com/v1/num/allocate x402 endpoint https://api.duoleads.com/v1/geo/geohash x402 endpoint https://api.duoleads.com/v1/chain/address x402 endpoint https://api.duoleads.com/v1/ref/country x402 endpoint https://api.duoleads.com/v1/num/stats x402 endpoint https://api.duoleads.com/v1/time/business-days x402 endpoint https://api.duoleads.com/v1/code/url x402 endpoint https://api.duoleads.com/v1/text/transliterate x402 endpoint https://api.duoleads.com/v1/chain/selector x402 endpoint https://api.duoleads.com/v1/ref/nuts x402 endpoint https://api.duoleads.com/v1/code/idn x402 endpoint https://api.duoleads.com/v1/id/national x402 endpoint https://api.duoleads.com/v1/num/radix x402 endpoint https://api.duoleads.com/v1/code/hash x402 endpoint https://api.duoleads.com/v1/geo/polygon x402 endpoint https://api.duoleads.com/v1/text/similarity x402 endpoint https://api.duoleads.com/v1/id/iban x402 endpoint https://api.duoleads.com/v1/id/iban-build x402 endpoint https://api.duoleads.com/v1/code/jwt x402 endpoint https://api.duoleads.com/v1/geo/pluscode x402 endpoint https://api.duoleads.com/v1/geo/distance x402 endpoint https://api.duoleads.com/v1/time/rrule x402 endpoint https://api.duoleads.com/v1/id/security x402 endpoint https://api.duoleads.com/v1/time/zone x402 endpoint https://api.duoleads.com/v1/text/slug x402 endpoint https://api.duoleads.com/v1/id/gs1 x402 endpoint https://api.duoleads.com/v1/time/calendar x402 endpoint https://api.duoleads.com/v1/num/words x402 endpoint https://api.duoleads.com/v1/ref/currency x402 endpoint
Response schema
{
  "properties": {
    "data": {
      "description": "normalised, form, already_normalised {nfc, nfd, nfkc, nfkd}, lengths {code_points, graphemes, utf8_bytes, utf16_units} (of the normalised output), scripts (every Unicode Script property value present, from Unicode 18 Scripts.txt; Common and Inherited are not listed), mixed_script, suspicious [{index (code point index in the input), char, code_point, name (Unicode character name; string|null, null only when the name is not vendored: only ASCII, Latin-1, spaces, combining marks, format and default-ignorable characters, controls and confusable look-alikes have names), category, kind confusable|invisible|bidi|combining_excess, looks_like (string|null, null unless kind is confusable)}], ascii_safe (input is printable ASCII only); with detail=full also characters [{index, char, code_point, name (string|null, as above), category, script (string|null, null for Common/Inherited/unassigned)}] (first 256) and characters_truncated. Confusables (UTS #39 confusables.txt, the entries that map to one ASCII character): in mixed-script text every one is reported; in single-script text the compatibility look-alikes of ASCII letters and digits (fullwidth, mathematical, Roman numerals) and words written wholly in one non-Latin script whose every letter has an ASCII look-alike (whole-script confusables, e.g. Cyrillic рау). Invisible = format characters (Cf), Default_Ignorable_Code_Point (e.g. Hangul filler U+3164, variation selectors) and U+2800 braille blank; bidi = embeddings, overrides, isolates and directional marks; combining_excess = the 4th and later combining marks in a row.",
      "properties": {
        "already_normalised": {
          "properties": {
            "nfc": {
              "type": "boolean"
            },
            "nfd": {
              "type": "boolean"
            },
            "nfkc": {
              "type": "boolean"
            },
            "nfkd": {
              "type": "boolean"
            }
          },
          "required": [
            "nfc",
            "nfd",
            "nfkc",
            "nfkd"
          ],
          "type": "object"
        },
        "ascii_safe": {
          "type": "boolean"
        },
        "characters": {
          "items": {
            "properties": {
              "category": {
                "type": "string"
              },
              "char": {
                "type": "string"
              },
              "code_point": {
                "type": "string"
              },
              "index": {
                "type": "integer"
              },
              "name": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "script": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "index",
              "char",
              "code_point",
              "name",
              "category",
              "script"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "characters_truncated": {
          "type": "boolean"
        },
        "form": {
          "type": "string"
        },
        "lengths": {
          "properties": {
            "code_points": {
              "type": "integer"
            },
            "graphemes": {
              "type": "integer"
            },
            "utf16_units": {
              "type": "integer"
            },
            "utf8_bytes": {
              "type": "integer"
            }
          },
          "required": [
            "code_points",
            "graphemes",
            "utf8_bytes",
            "utf16_units"
          ],
          "type": "object"
        },
        "mixed_script": {
          "type": "boolean"
        },
        "normalised": {
          "type": "string"
        },
        "scripts": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "suspicious": {
          "items": {
            "properties": {
              "category": {
                "type": "string"
              },
              "char": {
                "type": "string"
              },
              "code_point": {
                "type": "string"
              },
              "index": {
                "type": "integer"
              },
              "kind": {
                "type": "string"
              },
              "looks_like": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "name": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "index",
              "char",
              "code_point",
              "name",
              "category",
              "kind",
              "looks_like"
            ],
            "type": "object"
          },
          "type": "array"
        }
      },
      "required": [
        "normalised",
        "form",
        "already_normalised",
        "lengths",
        "scripts",
        "mixed_script",
        "suspicious",
        "ascii_safe"
      ],
      "type": "object"
    },
    "meta": {
      "$ref": "#/components/schemas/Meta"
    },
    "ok": {
      "const": true
    },
    "route": {
      "const": "/v1/text/unicode"
    },
    "version": {
      "const": "1.0.0"
    }
  },
  "required": [
    "ok",
    "route",
    "version",
    "data",
    "meta"
  ],
  "type": "object"
}