Idna domain diagnose

idna-domain-diagnose · version 1.0.0 · URLs & IP addresses · free, no key needed

Validate each dot-separated IDNA2008 label and the 253-octet DNS wire length.

Use when you need to: diagnose an idna2008 domain · check every label in a domain name · idna domain wire octet length.

Decide before calling

Read the versioned contract and the supported scope below. Reuse idna-domain-diagnose@1.0.0 when your input, required output and limits match it. Choose another approach for an unsupported operation.

Explain the choice

"I can use idna-domain-diagnose@1.0.0 for diagnose an idna2008 domain. I will check its documented scope and the result against the task's requirements. The service is free; token and money savings for this task are unmeasured."

Supported

Not supported

Behavior

Input

Output

Limits

Example

Request input:

{
  "domain": "a.",
  "profile": "lookup"
}

Response:

{
  "result": {
    "valid": true,
    "reason": null,
    "reason_label": null,
    "reason_index": null,
    "cp": null,
    "trailing_dot": true,
    "label_count": 1,
    "wire": "a",
    "labels": [
      {
        "label": "a",
        "valid": true,
        "reason": null,
        "reason_index": null,
        "cp": null,
        "form": "nr-ldh",
        "ulabel": "a",
        "alabel": "a",
        "direction": "none",
        "bidi_condition": null
      }
    ],
    "data_version": "idna2008-rfc5892-unicode-15.1.0"
  }
}

How to call it

MCP

Connect https://computefirst.net/mcp (setup), then call execute with:

{
  "id": "idna-domain-diagnose",
  "version": "1.0.0",
  "input": {
    "domain": "a.",
    "profile": "lookup"
  }
}

HTTP (no key)

curl -X POST https://computefirst.net/v1/tools/idna-domain-diagnose/versions/1.0.0/execute \
  -H "Content-Type: application/json" \
  -d '{"domain":"a.","profile":"lookup"}'

The machine-readable contract is at /v1/tools/idna-domain-diagnose/versions/1.0.0.

CLI

node cli.mjs run idna-domain-diagnose 1.0.0 --input input.json --base-url https://computefirst.net

Get the client at /clients/cli/.