Domain query[Link]

Query[Link]

A domain query returns data of a specific registration. The query is of the form:

https://rdap-server/domain/example.tld

When querying IDN domains, you can use the A-label or U-label:

https://rdap.nic.brussels/domain/xn--caf-dma.brussels
https://rdap.nic.brussels/domain/café.brussels

Please note that the query string is handled case insensitive. So, the following examples all yield the same result:

https://rdap.nic.brussels/domain/xn--caf-dma.brussels
https://rdap.nic.brussels/domain/XN--CAF-DMA.BRUSSELS
https://rdap.nic.brussels/domain/café.brussels
https://rdap.nic.brussels/domain/CAFÉ.brussels

Response[Link]

The response looks like:

{
    "rdapConformance": [
        "rdap_level_0",
        "icann_rdap_technical_implementation_guide_0"
    ],
    "objectClassName": "domain",
    "notices": [
        {
            "title": "Terms of use",
            "description": [
                "Terms of use and user manual."
            ],
            "links": [
                {
                    "href": "https://uat.dnsbelgium.be/en/rdap"
                }
            ]
        },
        {
            "title": "Status Codes",
            "description": [
                "For more information on domain status codes, please visit https://icann.org/epp"
            ],
            "links": [
                {
                    "href": "https://icann.org/epp"
                }
            ]
        },
        {
            "title": "RDDS Inaccuracy Complaint Form",
            "description": [
                "URL of the ICANN RDDS Inaccuracy Complaint Form: https://www.icann.org/wicf"
            ],
            "links": [
                {
                    "href": "https://www.icann.org/wicf"
                }
            ]
        }
    ],
    "events": [
        {
            "eventAction": "registration",
            "eventDate": "2019-06-20T14:58:28Z"
        },
        {
            "eventAction": "expiration",
            "eventDate": "2020-06-20T14:58:28Z"
        },
        {
            "eventAction": "last update of RDAP database",
            "eventDate": "2019-06-20T14:58:51Z"
        }
    ],
    "status": [
        "active",
        "add period"
    ],
    "handle": "D1000000237-BRUSSELS",
    "ldhName": "pieterv.brussels",
    "secureDNS": {
        "delegationSigned": true,
        "dsData": [
            {
                "keyTag": 56904,
                "algorithm": 7,
                "digest": "f9375d068d49ba90b4d104e894f5bf8757875494ccac687ce630039fffffffff",
                "digestType": 2
            }
        ]
    },
    "entities": [
        {
            "objectClassName": "entity",
            "handle": "1760",
            "vcardArray": [
                "vcard",
                [
                    [
                        "version",
                        {},
                        "text",
                        "4.0"
                    ],
                    [
                        "fn",
                        {},
                        "text",
                        "DNS Belgium"
                    ]
                ]
            ],
            "roles": [
                "registrar"
            ],
            "publicIds": [
                {
                    "type": "IANA Registrar ID",
                    "identifier": "1760"
                }
            ],
            "entities": [
                {
                    "objectClassName": "entity",
                    "handle": "1760",
                    "vcardArray": [
                        "vcard",
                        [
                            [
                                "version",
                                {},
                                "text",
                                "4.0"
                            ],
                            [
                                "email",
                                {},
                                "text",
                                "pieter.vandepitte@dnsbelgium.be"
                            ],
                            [
                                "tel",
                                {},
                                "uri",
                                "tel:+32.1"
                            ]
                        ]
                    ],
                    "roles": [
                        "abuse"
                    ]
                }
            ]
        },
        {
            "objectClassName": "entity",
            "remarks": [
                {
                    "title": "REDACTED FOR PRIVACY",
                    "type": "object redacted due to authorization",
                    "description": [
                        "Some of the data in this object has been removed"
                    ]
                },
                {
                    "title": "EMAIL REDACTED FOR PRIVACY",
                    "type": "object redacted due to authorization",
                    "description": [
                        "Please query the RDDS service of the Registrar of Record identified in this output for information on how to contact the Registrant of the queried domain name"
                    ]
                }
            ],
            "vcardArray": [
                "vcard",
                [
                    [
                        "version",
                        {},
                        "text",
                        "4.0"
                    ],
                    [
                        "org",
                        {},
                        "text",
                        ""
                    ],
                    [
                        "adr",
                        {},
                        "text",
                        [
                            "",
                            "",
                            "",
                            "",
                            "VA",
                            "",
                            "US"
                        ]
                    ]
                ]
            ],
            "roles": [
                "registrant"
            ]
        },
        {
            "objectClassName": "entity",
            "remarks": [
                {
                    "title": "REDACTED FOR PRIVACY",
                    "type": "object redacted due to authorization",
                    "description": [
                        "Some of the data in this object has been removed"
                    ]
                },
                {
                    "title": "EMAIL REDACTED FOR PRIVACY",
                    "type": "object redacted due to authorization",
                    "description": [
                        "Please query the RDDS service of the Registrar of Record identified in this output for information on how to contact the Registrant of the queried domain name"
                    ]
                }
            ],
            "handle": "PIETERV",
            "vcardArray": [
                "vcard",
                [
                    [
                        "version",
                        {},
                        "text",
                        "4.0"
                    ],
                    [
                        "adr",
                        {},
                        "text",
                        [
                            "",
                            "",
                            "",
                            "",
                            "",
                            "",
                            "US"
                        ]
                    ]
                ]
            ],
            "roles": [
                "administrative"
            ]
        },
        {
            "objectClassName": "entity",
            "remarks": [
                {
                    "title": "REDACTED FOR PRIVACY",
                    "type": "object redacted due to authorization",
                    "description": [
                        "Some of the data in this object has been removed"
                    ]
                },
                {
                    "title": "EMAIL REDACTED FOR PRIVACY",
                    "type": "object redacted due to authorization",
                    "description": [
                        "Please query the RDDS service of the Registrar of Record identified in this output for information on how to contact the Registrant of the queried domain name"
                    ]
                }
            ],
            "handle": "PIETERV",
            "vcardArray": [
                "vcard",
                [
                    [
                        "version",
                        {},
                        "text",
                        "4.0"
                    ],
                    [
                        "adr",
                        {},
                        "text",
                        [
                            "",
                            "",
                            "",
                            "",
                            "",
                            "",
                            "US"
                        ]
                    ]
                ]
            ],
            "roles": [
                "technical"
            ]
        }
    ],
    "nameservers": [
        {
            "objectClassName": "nameserver",
            "ldhName": "ns1.example.tld"
        },
        {
            "objectClassName": "nameserver",
            "ldhName": "ns1.example.brussels",
            "ipAddresses": {
                "v4": [
                    "1.2.3.4"
                ]
            }
        }
    ]
}

The response is built up in different sections.

General data[Link]

  • ldhName: A-label of the domain name in case of an IDN domain name, otherwise LDH domain name.

  • unicodeName: U-label of the domain name in case of an IDN domain name, otherwise not present. Please note that non-LDH-characters are escaped. Example: caf\u00e9.brussels instead of café.brussels. This is not an error, but ensures the response can be safely processed by any client, regardless of the character encoding used by that client.

  • handle: Repository Object Identifier (ROID) of the domain.

Events[Link]

  • registration: creation date and time. This event is always present.

  • last changed: date and time when the domais was updated. This event is only present if the domain was ever updated.

  • expiration: date and time when the domain expires, and will be auto-renewed.

  • transfer: date and time of last transfer. This event is only present is the domain was ever transfered since registration

  • last update of RDAP database: date and time the data in the RDAP backend was last updated from the registry backend. Because the data from the RDAP backend is not cached, it is equal to the date and time the response was generated

All event dates have UTC timezone and are formatted in the Internet date/time format (RFC 3339).

Example:

2019-06-20T14:58:28Z

Statuses[Link]

EPP status

RDAP status

addPeriod

add period

autoRenewPeriod

auto renew period

clientDeleteProhibited

client delete prohibited

clientHold

client hold

clientRenewProhibited

client renew prohibited

clientTransferProhibited

client transfer prohibited

clientUpdateProhibited

client update prohibited

inactive

inactive

linked

associated

ok

active

pendingCreate

pending create

pendingDelete

pending delete

pendingRenew

pending renew

pendingRestore

pending restore

pendingTransfer

pending transfer

pendingUpdate

pending update

redemptionPeriod

redemption period

renewPeriod

renew period

serverDeleteProhibited

server delete prohibited

serverRenewProhibited

server renew prohibited

serverTransferProhibited

server transfer prohibited

serverUpdateProhibited

server update prohibited

serverHold

server hold

transferPeriod

transfer period

Nameservers[Link]

  • ldhName: A-label of the nameserver in case of an IDN hostname, otherwise the LDH hostname.

  • unicodeName: U-label of the nameserver in case of an IDN hostname, otherwise not present. Please note that non-LDH-characters are escaped.

  • ipAddresses: glue records:

    • v4: IPv4 glue records.

    • v6: IPv6 glue records.

DNSSEC[Link]

DNSSEC data is available in the secureDNS attribute.

  • delegationSigned: true if DNSSEC data available, otherwise false.

  • dsData: DNSSEC data. Contains keyTag, algorithm, digest and digestType. For more information on these attributes, see RFC 5910

Registrar[Link]

The response of a domain query includes the current registrar of the domain object. The response includes following data:

  • The official organisation name of the Registrar (see fn)

  • The IANA ID of the Registrar. The IANA ID is stored in:

    • handle

    • a publicIds element of type IANA Registrar ID

  • Email address and phone number of the abuse contact of the Registrar.

If you want more information about the registrar, you can perform a Registrar query

Registrant[Link]

The DNS Belgium public RDAP service returns following data for registrants:

  • Organisation, if present

  • State/Province, if present

  • Country: ISO 3166-1 alpha-2 code. See Allowed country codes.

No other information is disclosed.

Other contacts[Link]

The DNS Belgium public RDAP service only returns the country (ISO 3166-1 alpha-2) for administrative or technical contacts.

No other information is disclosed.

Error responses[Link]

Domain not found[Link]

When a domain name is not found, the HTTP return code is 404:

HTTP/1.1 404 Not Found

The JSON response contains a short error message:

{
    "errorCode": 404,
    "title": "Domain not-found.brussels not found"
}

Bad request[Link]

When an invalid domain is requested, the HTTP return code is 400:

HTTP/1.1 400 Bad Request

The JSON response contains a short error message:

{
    "errorCode": 400,
    "title": "Invalid domain name",
    "description": [
        "Invalid A-label.",
        "Do not use hyphens on the 3rd and 4th position in a domain name."
    ]
}