curl --request GET \
--url https://api.dev.name.com/core/v1/domaininfo/requirementsV2/{tld} \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://api.dev.name.com/core/v1/domaininfo/requirementsV2/{tld}"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Basic <encoded-value>'}};
fetch('https://api.dev.name.com/core/v1/domaininfo/requirementsV2/{tld}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.dev.name.com/core/v1/domaininfo/requirementsV2/{tld}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.dev.name.com/core/v1/domaininfo/requirementsV2/{tld}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Basic <encoded-value>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.dev.name.com/core/v1/domaininfo/requirementsV2/{tld}")
.header("Authorization", "Basic <encoded-value>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dev.name.com/core/v1/domaininfo/requirementsV2/{tld}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Basic <encoded-value>'
response = http.request(request)
puts response.read_body{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"title": ".it Domain Registration Requirements Schema",
"description": "Registration requirements for .it domains",
"properties": {
"tldInfo": {
"tld": ".it",
"ccTld": true,
"supportsTransferLock": true,
"supportsDnssec": true,
"supportsPremium": false,
"supportsPrivacy": false,
"supportsInternalTransfer": true,
"requiresPreDelegation": false,
"expirationGracePeriod": 25,
"allowedRegistrationYears": [
1,
3,
5,
8,
10
],
"idnLanguages": {
"IT": "Italian"
},
"hsts": false,
"minDomainLength": 3,
"minIdnDomainLength": 5,
"registryOperator": "nic.it",
"claimsCheckRequired": [],
"requireIdnSld": false,
"readOnly": true
},
"contacts": {
"type": "object",
"properties": {
"registrant": {
"type": "object",
"properties": {
"firstName": {
"type": "string",
"title": "First Name",
"description": "First name of registrant contact"
},
"email": {
"type": "string",
"format": "email",
"title": "Email",
"description": "Email address of registrant contact"
}
},
"required": [
"firstName",
"email"
]
}
},
"required": [
"registrant"
]
},
"tldRequirements": {
"type": "object",
"properties": {
"X-IT-ENTITY-TYPE": {
"type": "string",
"title": "Registrant Entity Type",
"enum": [
"1",
"2",
"3",
"4",
"5",
"6",
"7"
]
},
"X-IT-PIN": {
"type": "string",
"title": ".IT PIN number",
"description": "16 alphanumeric characters (tax code) for natural persons or 11 digits (VAT number) for organizations"
}
}
}
},
"required": [
"tldInfo",
"contacts",
"tldRequirements"
]
}{
"message": "Bad Request",
"details": "'domainName' cannot be null"
}{
"message": "Unauthorized"
}{
"message": "Permission denied",
"details": "Failed authentication"
}{
"message": "Not Found",
"details": "The requested domain does not exist."
}{
"message": "Method Not Allowed"
}{
"message": "Unsupported TLD"
}{
"message": "Rate Limit Exceeded"
}{
"message": "Internal Server Error",
"details": "Something went wrong."
}{
"message": "The server received an invalid response from the upstream server."
}{
"message": "Service Unavailable",
"details": "The API is offline for scheduled maintenance. See https://status.name.com for updates."
}{
"message": "The upstream server is taking too long to respond."
}Get TLD Requirements as JSON Schema
Returns the registration requirements as a JSON Schema (Draft 7) document. This endpoint is designed for form generation and validation libraries that consume JSON Schema directly.
curl --request GET \
--url https://api.dev.name.com/core/v1/domaininfo/requirementsV2/{tld} \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://api.dev.name.com/core/v1/domaininfo/requirementsV2/{tld}"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Basic <encoded-value>'}};
fetch('https://api.dev.name.com/core/v1/domaininfo/requirementsV2/{tld}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.dev.name.com/core/v1/domaininfo/requirementsV2/{tld}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.dev.name.com/core/v1/domaininfo/requirementsV2/{tld}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Basic <encoded-value>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.dev.name.com/core/v1/domaininfo/requirementsV2/{tld}")
.header("Authorization", "Basic <encoded-value>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dev.name.com/core/v1/domaininfo/requirementsV2/{tld}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Basic <encoded-value>'
response = http.request(request)
puts response.read_body{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"title": ".it Domain Registration Requirements Schema",
"description": "Registration requirements for .it domains",
"properties": {
"tldInfo": {
"tld": ".it",
"ccTld": true,
"supportsTransferLock": true,
"supportsDnssec": true,
"supportsPremium": false,
"supportsPrivacy": false,
"supportsInternalTransfer": true,
"requiresPreDelegation": false,
"expirationGracePeriod": 25,
"allowedRegistrationYears": [
1,
3,
5,
8,
10
],
"idnLanguages": {
"IT": "Italian"
},
"hsts": false,
"minDomainLength": 3,
"minIdnDomainLength": 5,
"registryOperator": "nic.it",
"claimsCheckRequired": [],
"requireIdnSld": false,
"readOnly": true
},
"contacts": {
"type": "object",
"properties": {
"registrant": {
"type": "object",
"properties": {
"firstName": {
"type": "string",
"title": "First Name",
"description": "First name of registrant contact"
},
"email": {
"type": "string",
"format": "email",
"title": "Email",
"description": "Email address of registrant contact"
}
},
"required": [
"firstName",
"email"
]
}
},
"required": [
"registrant"
]
},
"tldRequirements": {
"type": "object",
"properties": {
"X-IT-ENTITY-TYPE": {
"type": "string",
"title": "Registrant Entity Type",
"enum": [
"1",
"2",
"3",
"4",
"5",
"6",
"7"
]
},
"X-IT-PIN": {
"type": "string",
"title": ".IT PIN number",
"description": "16 alphanumeric characters (tax code) for natural persons or 11 digits (VAT number) for organizations"
}
}
}
},
"required": [
"tldInfo",
"contacts",
"tldRequirements"
]
}{
"message": "Bad Request",
"details": "'domainName' cannot be null"
}{
"message": "Unauthorized"
}{
"message": "Permission denied",
"details": "Failed authentication"
}{
"message": "Not Found",
"details": "The requested domain does not exist."
}{
"message": "Method Not Allowed"
}{
"message": "Unsupported TLD"
}{
"message": "Rate Limit Exceeded"
}{
"message": "Internal Server Error",
"details": "Something went wrong."
}{
"message": "The server received an invalid response from the upstream server."
}{
"message": "Service Unavailable",
"details": "The API is offline for scheduled maintenance. See https://status.name.com for updates."
}{
"message": "The upstream server is taking too long to respond."
}Authorizations
Authenticate via HTTP Basic with your account username and API token. Examples use an explicit 'Authorization: Basic <base64(username:token)>' header; 'curl -u username:token' is equivalent. For sandbox, append "-test" to your username and use your sandbox token on api.dev.name.com.
Path Parameters
TLD indicates which domain requirements to retrieve (without the dot prefix, e.g., 'fr' for .fr domains). For punycode TLDs, use the ASCII version instead of the UTF-8. So for the онлайн TLD, you would submit xn--80asehdb.
^((?!xn--)[a-z0-9-]{1,63}|xn--[a-z0-9-]{1,63})((?:\.(?!-)[a-z0-9-]{1,63})|(?:\.xn--[a-z0-9-]{1,63}))*$"fr"
Response
JSON Schema document describing TLD registration requirements.
A JSON Schema Draft 7 document that describes the registration requirements for a TLD. This schema follows the JSON Schema Draft 7 specification (http://json-schema.org/draft-07/schema#) and can be used directly by form generation and validation libraries that consume JSON Schema.
The schema structure includes: - A tldInfo property containing general TLD information (read-only, always present) - A contacts property containing contact field requirements (e.g., registrant, admin, tech) - A tldRequirements property containing TLD-specific registration fields
The contacts and tldRequirements properties may be empty objects, while tldInfo will always contain data. The exact structure varies by TLD, as different TLDs have different registration requirements.
The JSON Schema version identifier, should be "http://json-schema.org/draft-07/schema#"
"http://json-schema.org/draft-07/schema#"
The JSON Schema type, typically "object" for requirement schemas
"object"
A human-readable title for the schema
".it Domain Registration Requirements Schema"
A detailed description of the registration requirements
"Registration requirements for .it domains"
An object containing the schema properties. Includes: - tldInfo: An object containing general TLD information (read-only) - contacts: An object defining contact field requirements - tldRequirements: An object defining TLD-specific registration fields
Show child attributes
Show child attributes
An array of required property names
["tldInfo", "contacts", "tldRequirements"]
An array of schema objects that must all be valid. Used for conditional validation with multiple conditions.
The condition schema for conditional validation. When this condition is true, the 'then' schema applies.
The schema to apply when the 'if' condition is true.
The schema to apply when the 'if' condition is false (optional).
Was this page helpful?