TLD Rules API

REST API for programmatic access to TLD registration requirements and rules.

Base URL: https://aws.ascio.info/api/v1/tldkit

Authentication

All endpoints require Ascio v2 API credentials passed as query parameters:

Parameter Description Required
username Your Ascio account username Yes
password Your Ascio account password Yes
env testing (default) or production No

Content Negotiation

All endpoints support JSON (default) and XML formats via the Accept header:

Endpoints

GET /api/v1/tldkit/tlds

List all TLDs with their basic properties, paginated.

Parameters

Parameter Description Default
page Page number 1
per_page Items per page (max 500) 50
order Sort by last_updated: asc or desc asc
tld Filter by TLD name(s), comma-separated -

Example Request

GET /api/v1/tldkit/tlds?username=demo&password=demo123&env=testing&tld=com,de&page=1

Example Response

{
  "_links": {
    "self": "/api/v1/tldkit/tlds?order=asc&per_page=50&page=1",
    "first": "/api/v1/tldkit/tlds?order=asc&per_page=50&page=1",
    "last": "/api/v1/tldkit/tlds?order=asc&per_page=50&page=35"
  },
  "_meta": {
    "total": 1703,
    "page": 1,
    "per_page": 50,
    "total_pages": 35,
    "order": "asc"
  },
  "data": [
    {
      "tld": "com",
      "id": "123",
      "country": "US",
      "last_updated": "2026-01-15T10:30:00",
      "threshold": 0,
      "auth_code_required": true,
      "local_presence": {
        "required": false,
        "offered": false
      },
      "domain_length": {
        "min": 1,
        "max": 63
      },
      "nameservers": {
        "min": 2,
        "max": 13
      },
      "periods": {
        "register": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
        "renew": [1, 2, 3, 4, 5, 6, 7, 8, 9],
        "transfer": [1],
        "autorenew": [1]
      },
      "group_tlds": ["com"]
    }
  ]
}

GET /api/v1/tldkit/tlds/{name}

Get detailed information for a specific TLD, including processes and appendices.

Example Request

GET /api/v1/tldkit/tlds/it?username=demo&password=demo123

GET /api/v1/tldkit/fields

Get required special fields for domain registration by TLD.

Parameters

Parameter Description
tld Filter by TLD name(s), comma-separated

Example Response

{
  "generated": "2026-02-04T10:00:00",
  "total": 362,
  "data": [
    {
      "tld": "it",
      "registry": "NIC.it",
      "required_fields": [
        {
          "code": "3m",
          "api_name": "Registrant.OrganisationNumber",
          "label": "Organisation Number",
          "class": "Registrant"
        },
        {
          "code": "3q",
          "api_name": "Registrant.Type",
          "label": "Type",
          "class": "Registrant"
        }
      ]
    }
  ]
}

GET /api/v1/tldkit/conditions

Get conditional field requirements that depend on context (e.g., individual vs organization).

Parameters

Parameter Description
tld Filter by TLD name(s), comma-separated

Example Response

{
  "generated": "2026-02-01T12:00:00",
  "total_processed": 1703,
  "total_with_conditions": 135,
  "data": [
    {
      "tld": "it",
      "conditional_fields": [
        {
          "field": "Registrant.OrganisationNumber",
          "conditions": [
            {"context": "individual", "requirement": "Social Security Number"},
            {"context": "organization", "requirement": "VAT Number"}
          ]
        }
      ]
    }
  ]
}

GET /api/v1/tldkit/stats

Get statistics and last sync information.

Example Response

{
  "generated": "2026-02-04T10:00:00",
  "counts": {
    "documents": 717,
    "tlds": 1703,
    "tlds_with_special_fields": 362,
    "auth_code_required": 1650,
    "local_presence_required": 45
  },
  "last_sync": "2026-02-01T06:00:00"
}

Error Responses

All endpoints return consistent error responses:

{
  "error": true,
  "status": 401,
  "message": "Username and password are required"
}

Legacy Endpoint

The legacy endpoint /tldkit.xq remains available for backward compatibility without authentication. It returns basic TLD data in JSON format.