πZone
The Zone Controller API handles DNS zone management, enabling actions like creation, updates, transfers, and detailed searches.
1. Fetch Zone Details
GET
/api/v1/zones/{uuid}
Obtain details of a specific zone by its UUID.
Request Headers
Name
Description
Authorization
Required: Bearer Token
Path Parameters
Parameter
Type
Description
uuid
string
[Required] The UUID of the zone to fetch.
Response
200 OK
{
"timestamp": "2024-05-29T08:36:46.576325",
"data": {
"uuid": "000d1482-dae2-4e05-aaa1-3988a14a1d5a",
"status": "OK",
"name": "selling.cryptocoin",
"asciiName": "selling.cryptocoin",
"records": [
{
"uuid": "772e7a11-e34c-46a2-99fd-69b2aaa90fb4",
"type": "NS",
"name": "@",
"value": "ns2.noto.network.",
"ttl": 21600
},
{
"uuid": "4a3f2431-0e40-4029-8a3e-b5c1bee421c1",
"type": "A",
"name": "selling.cryptocoin.",
"value": "34.22.218.53",
"ttl": 60
},
{
"uuid": "5ba5deba-c42e-43b1-b322-3139c7d1b865",
"type": "NS",
"name": "@",
"value": "ns1.noto.network.",
"ttl": 21600
},
{
"uuid": "af1835ef-62aa-41b0-999e-59ec6552733f",
"type": "A",
"name": "selling.cryptocoin.",
"value": "34.22.218.51",
"ttl": 60
},
{
"uuid": "89a0e534-8a13-4cbd-9100-ac156d93ed0b",
"type": "A",
"name": "selling.cryptocoin.",
"value": "34.22.218.54",
"ttl": 60
},
{
"uuid": "f66d2d12-a837-4f8c-8db2-27f81fff58de",
"type": "SOA",
"name": "selling.cryptocoin.",
"value": "",
"ttl": 3600,
"serial": 2020080302,
"refresh": 7200,
"retry": 3600,
"expire": 1209600,
"mname": "selling.cryptocoin.",
"rname": "hostmaster.selling.cryptocoin."
}
],
"registrar": {
"name": "Freename",
"street": "Samstagernstrasse 41",
"city": "Wollerau",
"postalCode": "8832",
"country": "Switzerland",
"phone": "",
"email": "info@freename.io",
"web": "https://freename.io",
"walletAddress": "0xA1E885789C85FEFc76CC30236608B4A19A77e988"
},
"registrant": {
"name": "Freename",
"street": "Samstagernstrasse 41",
"city": "Wollerau",
"postalCode": "8832",
"country": "Switzerland",
"phone": "",
"email": "info@freename.io",
"web": "https://freename.io",
"walletAddress": "0xA1E885789C85FEFc76CC30236608B4A19A77e988"
}
}
}
2. Fetch Zones with Pagination
GET
/api/v1/zones
Include query parameters for pagination and sorting:
page
,pageSize
, andsortBy
.Example:
/api/v1/zones?page=1&pageSize=3&sortBy=created_at
Name
Description
Authorization
Required: Bearer Token
Query Parameters
Parameter
Type
Description
page
integer
The page number to retrieve. Default is 0.
pageSize
integer
The number of zones per page. Default is 25.
sortBy
string
The field to sort zones by. Default is "name".
Response
200 OK
{
"timestamp": "2024-05-29T08:46:28.423894",
"size": 3,
"page": 1,
"totalPages": 3927,
"data": [
{
"uuid": "f21469c6-6ad5-4d8b-9332-3f0fb7cae879",
"status": "OK",
"name": "mattia.metaverse",
"asciiName": "mattia.metaverse",
"registry": {},
"registrar": {
"name": "Freename",
"street": "Samstagernstrasse 41",
"city": "Wollerau",
"postalCode": "8832",
"country": "Switzerland",
"phone": "",
"email": "info@freename.io",
"web": "https://freename.io",
"walletAddress": "0xA1E885789C85FEFc76CC30236608B4A19A77e988"
},
"registrant": {
"name": "Freename",
"street": "Samstagernstrasse 41",
"city": "Wollerau",
"postalCode": "8832",
"country": "Switzerland",
"phone": "",
"email": "info@freename.io",
"web": "https://freename.io",
"walletAddress": "0xA1E885789C85FEFc76CC30236608B4A19A77e988"
}
},...
]
}
3. Create Zone
POST
/api/v1/zones
Create a new zone with the provided details.
Example:
/api/v1/zones?mint=false
Request Headers
Name
Description
Authorization
Required: Bearer Token
Query Parameters
Parameter
Type
Description
mint
boolean
[Optional] Indicates whether to mint the zone. Default is false
.
Request Body
{
"name": "test.metaverse",
"status": "OK",
"level": "TLD",
"chain": "POLYGON",
"description": "This is Test chain",
"image": "https://picsum.photos/536/354",
"url": "test.influencer",
"records": [
{
"type": "SOA",
"name": "test",
"value": "10",
"ttl": "1234"
}
],
"registryUuid": "1230a773-c74a-48ad-bb9a-fd4781774775",
"registrarUuid": "5bbbbc79-2ead-4039-9b9d-d565cbbfcb2c",
"registrantUuid": "5bbbbc79-2ead-4039-9b9d-d565cbbfcb2c",
"mintingAddress": "0x204E7932A60A11c7001052169947f1e9D5CF1010",
"registrationDate": "2024-07-10T08:30:00"
}
Response
201 Created
{
"timestamp": "2024-05-28T08:39:41.884582562",
"data": {
"uuid": "8ee6f423-a94a-4589-9e5c-9c5498829ca4",
"status": "OK",
"name": "test.metaverse",
"asciiName": "test.metaverse",
"chain": "ETH",
"records": [
{
"uuid": "1edf299f-1471-423a-813c-020c935839bf",
"type": "SOA",
"name": "test",
"value": "",
"ttl": 1234,
"serial": 2020080302,
"refresh": 7200,
"retry": 3600,
"expire": 1209600,
"mname": "test.metaverse.",
"rname": "hostmaster.test.metaverse."
}
],
"registrar": {
"name": "****",
"city": "****",
"country": "****",
"email": "****"
},
"registrant": {
"name": "****",
"city": "****",
"country": "****",
"email": "****"
},
"registrationDate": "2024-07-10T08:30:00"
}
}
Minting address and chain are mandatory if minting is set to true.
4. Update Zone Status
Modifies the status of a zone identified by the provided UUID. Acceptable statuses include 'OK', 'INACTIVE', 'LOCK', 'PENDING', and 'ERROR'.
PATCH
/api/v1/zones/{uuid}/?status={new_status}
Update the status of a specific zone identified by its UUID.
Example:
/api/v1/zones/{uuid}/?status=INACTIVE
Request Headers
Name
Description
Authorization
Required: Bearer Token
Path Parameters
Parameter
Type
Description
uuid
string
[Required] The UUID of the zone to modify.
Query Parameters
Parameter
Type
Description
status
string
[Required] The new status of the zone. Acceptable values are 'OK', 'INACTIVE', 'LOCK', 'PENDING', and 'ERROR'.
Response
200 OK
{
"timestamp": "2024-05-28T14:21:23.152861",
"data": {
"uuid": "8ee6f423-a94a-4589-9e5c-9c5498829ca4",
"status": "INACTIVE",
"name": "test.metaverse",
"asciiName": "test.metaverse",
"chain": "ETH",
"records": [
{
"uuid": "1edf299f-1471-423a-813c-020c935839bf",
"type": "SOA",
"name": "test",
"value": "",
"ttl": 1234,
"serial": 2020080302,
"refresh": 7200,
"retry": 3600,
"expire": 1209600,
"mname": "test.metaverse.",
"rname": "hostmaster.test.metaverse."
}
],
"registrar": {
"name": "****",
"city": "****",
"country": "****",
"email": "****"
},
"registrant": {
"name": "****",
"city": "****",
"country": "****",
"email": "****"
},
"registrationDate": "2024-07-10T08:30:00"
}
}
5. Fetch Zones of Logged User
GET
/api/v1/zones/self
Retrieve zones owned by the logged-in user.
Example:
/api/v1/zones/self?page=1&pageSize=3&sortBy=name
Request Headers
Name
Description
Authorization
Required: Bearer Token
Query Parameters
Parameter
Type
Description
page
integer
The page number to retrieve. Default is 0.
pageSize
integer
The number of zones per page. Default is 25.
sortBy
string
The field to sort zones by. Default is "name".
Response
200 OK
{
"timestamp": "2024-05-29T09:11:15.624976",
"size": 3,
"page": 1,
"totalElements": 7,
"totalPages": 3,
"data": [
{
"uuid": "85a8eede-2efa-4976-93b4-8582bdcd57d0",
"status": "OK",
"name": "Test0",
"asciiName": "Test0",
"chain": "ETH",
"registry": {},
"registrar": {
"name": "****",
"city": "****",
"country": "****",
"email": "info@****.com"
},
"registrant": {
"name": "****",
"city": "Bengaluru",
"country": "India",
"email": "info@****.com"
},
"registrationDate": "2024-07-10T08:30:00"
},
{
"uuid": "00ba86bb-e845-4cec-a8af-381124b32807",
"status": "OK",
"name": "Test01",
"asciiName": "Test01",
"chain": "ETH",
"registry": {},
"registrar": {
"name": "****",
"city": "Bengaluru",
"country": "India",
"email": "info@****.com"
},
"registrant": {
"name": "****",
"city": "Bengaluru",
"country": "India",
"email": "info@****.com"
},
"registrationDate": "2024-07-10T08:30:00"
},
{
"uuid": "4da7db6a-df19-4a0f-9d77-ef1fdf3ec300",
"status": "OK",
"name": "Test16",
"asciiName": "Test16",
"chain": "ETH",
"registry": {},
"registrar": {
"name": "****",
"city": "Bengaluru",
"country": "India",
"email": "info@****.com"
},
"registrant": {
"name": "****",
"city": "Bengaluru",
"country": "India",
"email": "info@****.com"
},
"registrationDate": "2024-07-10T08:30:00"
}
]
}
6. Fetch Zone by Name
Given that this endpoint will function as a 'Whois' controller, we can discontinue the use of the custom 'Whois' controller we previously implemented.
GET
/api/v1/zones/name/{zone_name}
Retrieve zone details by its name.
Example
/api/v1/zones/name/selling.cryptocoin
Request Headers
Name
Description
Authorization
Required: Bearer Token
Path Parameters
Parameter
Type
Description
name
string
[Required] The name of the zone to fetch.
Response
200 OK
{
"timestamp": "2024-05-29T09:15:02.894655",
"data": {
"uuid": "000d1482-dae2-4e05-aaa1-3988a14a1d5a",
"status": "OK",
"name": "selling.cryptocoin",
"asciiName": "selling.cryptocoin",
"records": [
{
"uuid": "89a0e534-8a13-4cbd-9100-ac156d93ed0b",
"type": "A",
"name": "selling.cryptocoin.",
"value": "34.22.218.54",
"ttl": 60
},
{
"uuid": "4a3f2431-0e40-4029-8a3e-b5c1bee421c1",
"type": "A",
"name": "selling.cryptocoin.",
"value": "34.22.218.53",
"ttl": 60
},
{
"uuid": "5ba5deba-c42e-43b1-b322-3139c7d1b865",
"type": "NS",
"name": "@",
"value": "ns1.noto.network.",
"ttl": 21600
},
{
"uuid": "f66d2d12-a837-4f8c-8db2-27f81fff58de",
"type": "SOA",
"name": "selling.cryptocoin.",
"value": "",
"ttl": 3600,
"serial": 2020080302,
"refresh": 7200,
"retry": 3600,
"expire": 1209600,
"mname": "selling.cryptocoin.",
"rname": "hostmaster.selling.cryptocoin."
},
{
"uuid": "af1835ef-62aa-41b0-999e-59ec6552733f",
"type": "A",
"name": "selling.cryptocoin.",
"value": "34.22.218.51",
"ttl": 60
},
{
"uuid": "772e7a11-e34c-46a2-99fd-69b2aaa90fb4",
"type": "NS",
"name": "@",
"value": "ns2.noto.network.",
"ttl": 21600
}
],
"registrar": {
"name": "Freename",
"street": "Samstagernstrasse 41",
"city": "Wollerau",
"postalCode": "8832",
"country": "Switzerland",
"phone": "",
"email": "info@freename.io",
"web": "https://freename.io",
"walletAddress": "0xA1E885789C85FEFc76CC30236608B4A19A77e988"
},
"registrant": {
"name": "Freename",
"street": "Samstagernstrasse 41",
"city": "Wollerau",
"postalCode": "8832",
"country": "Switzerland",
"phone": "",
"email": "info@freename.io",
"web": "https://freename.io",
"walletAddress": "0xA1E885789C85FEFc76CC30236608B4A19A77e988"
}
}
}
7. Check Name Availability
GET
/api/v1/zones/availability/{zone_name}
Check the availability of a zone name.
Example:
api/v1/zones/availability/selling.cryptocoin
Path Parameters
Parameter
Type
Description
name
string
[Required] The name of the zone to check availability for.
Response
200 OK
{
"timestamp": "2024-05-29T09:21:12.87402",
"data": false
}
8. Transfer Zone
PATCH
/api/v1/zones/transfer/{uuid}
Transfers zone from one registrar/registrant to another by uuid.
Request Headers
Name
Description
Authorization
Required: Bearer Token
Path Parameters
Parameter
Type
Description
uuid
string
[Required] The UUID of the zone to transfer.
Request Body
{
"registrar" : "1230a773-c74a-48ad-bb9a-fd4781774775",
"registrant" : "1230a773-c74a-48ad-bb9a-fd4781774775"
}
Response
200 OK
{
"timestamp": "2024-05-29T09:25:34.595517",
"data": {
"uuid": "000d1482-dae2-4e05-aaa1-3988a14a1d5a",
"status": "OK",
"name": "selling.cryptocoin",
"asciiName": "selling.cryptocoin",
"records": [
{
"uuid": "4a3f2431-0e40-4029-8a3e-b5c1bee421c1",
"type": "A",
"name": "selling.cryptocoin.",
"value": "34.22.218.53",
"ttl": 60
},
{
"uuid": "89a0e534-8a13-4cbd-9100-ac156d93ed0b",
"type": "A",
"name": "selling.cryptocoin.",
"value": "34.22.218.54",
"ttl": 60
},
{
"uuid": "5ba5deba-c42e-43b1-b322-3139c7d1b865",
"type": "NS",
"name": "@",
"value": "ns1.noto.network.",
"ttl": 21600
},
{
"uuid": "af1835ef-62aa-41b0-999e-59ec6552733f",
"type": "A",
"name": "selling.cryptocoin.",
"value": "34.22.218.51",
"ttl": 60
},
{
"uuid": "f66d2d12-a837-4f8c-8db2-27f81fff58de",
"type": "SOA",
"name": "selling.cryptocoin.",
"value": "",
"ttl": 3600,
"serial": 2020080302,
"refresh": 7200,
"retry": 3600,
"expire": 1209600,
"mname": "selling.cryptocoin.",
"rname": "hostmaster.selling.cryptocoin."
},
{
"uuid": "772e7a11-e34c-46a2-99fd-69b2aaa90fb4",
"type": "NS",
"name": "@",
"value": "ns2.noto.network.",
"ttl": 21600
}
],
"registrar": {
"name": "Freename",
"street": "Samstagernstrasse 41",
"city": "Wollerau",
"postalCode": "8832",
"country": "Switzerland",
"phone": "",
"email": "info@freename.io",
"web": "https://freename.io",
"walletAddress": "0xA1E885789C85FEFc76CC30236608B4A19A77e988"
},
"registrant": {
"name": "Freename",
"street": "Samstagernstrasse 41",
"city": "Wollerau",
"postalCode": "8832",
"country": "Switzerland",
"phone": "",
"email": "info@freename.io",
"web": "https://freename.io",
"walletAddress": "0xA1E885789C85FEFc76CC30236608B4A19A77e988"
}
}
}
9. Search Zone
POST
/api/v1/zones/search
Fetches zones based on the provided search criteria.
Example:
/api/v1/zones/search?page=1&pageSize=2&sortBy=zone.created_at
Request Headers
Name
Description
Authorization
Required: Bearer Token
Request Body
[
{
"field": "registrant.postal_code",
"value": "8832",
"criteria": "EQUAL"
}
]
Request Body Parameters
Parameter
Type
Description
field
string
The field name to search for (e.g. zone.uuid
, registry.name
, registrar.postal_code
, β¦)
value
string
The value to search for.
criteria
enum
The criteria type for the search. Possible values: LIKE, NOT_LIKE, EQUAL, NOT_EQUAL, GREATER_THAN, GREATER_EQUAL, LESS_THAN, LESS_EQUAL, IS_NULL, IS_NOT_NULL.
List of fields available to search
zone.uuid
zone.name
zone.status
zone.registration_date
zone.expire_date
zone.grace_end_date
info.ascii_name
info.chain
info.token_id
info.contract
registry.name
registry.street
registry.postal_code
registry.city
registry.country
registry.email
registry.phone
registry.web
registry.wallet_address
registrar.name
registrar.street
registrar.postal_code
registrar.city
registrar.country
registrar.email
registrar.phone
registrar.web
registrar.wallet_address
registrant.name
registrant.street
registrant.postal_code
registrant.city
registrant.country
registrant.email
registrant.phone
registrant.web
registrant.wallet_address
Query Parameters
Parameter
Type
Description
page
integer
The page number to retrieve. Default is 0.
pageSize
integer
The number of zones per page. Default is 25.
sortBy
string
The field to sort the results by. Default is 'zone.name'.
Response
200 OK
{
"timestamp": "2024-05-29T09:34:42.694977",
"size": 2,
"page": 1,
"totalElements": 11722,
"totalPages": 5861,
"data": [
{
"uuid": "e5497e32-43b0-48ab-9461-97bada6881fa",
"status": "OK",
"name": "davide.lion",
"asciiName": "davide.lion",
"registry": {},
"registrar": {
"name": "Freename",
"street": "Samstagernstrasse 41",
"city": "Wollerau",
"postalCode": "8832",
"country": "Switzerland",
"phone": "",
"email": "info@freename.io",
"web": "https://freename.io",
"walletAddress": "0xA1E885789C85FEFc76CC30236608B4A19A77e988"
},
"registrant": {
"name": "Freename",
"street": "Samstagernstrasse 41",
"city": "Wollerau",
"postalCode": "8832",
"country": "Switzerland",
"phone": "",
"email": "info@freename.io",
"web": "https://freename.io",
"walletAddress": "0xA1E885789C85FEFc76CC30236608B4A19A77e988"
}
},
{
"uuid": "f21469c6-6ad5-4d8b-9332-3f0fb7cae879",
"status": "OK",
"name": "mattia.metaverse",
"asciiName": "mattia.metaverse",
"registry": {},
"registrar": {
"name": "Freename",
"street": "Samstagernstrasse 41",
"city": "Wollerau",
"postalCode": "8832",
"country": "Switzerland",
"phone": "",
"email": "info@freename.io",
"web": "https://freename.io",
"walletAddress": "0xA1E885789C85FEFc76CC30236608B4A19A77e988"
},
"registrant": {
"name": "Freename",
"street": "Samstagernstrasse 41",
"city": "Wollerau",
"postalCode": "8832",
"country": "Switzerland",
"phone": "",
"email": "info@freename.io",
"web": "https://freename.io",
"walletAddress": "0xA1E885789C85FEFc76CC30236608B4A19A77e988"
}
}
]
}
10. Mint Zone
POST
/api/v1/zones/minting
Starts minting process of a zone
Request Headers
Name
Description
Authorization
Required: Bearer Token
Request Body
{
"mintDetail": [
{
"blockchain": "POLYGON",
"name": "test.test"
}
]
}
Response Body
{
"timestamp": "2024-06-18T16:13:49.711173",
"data": [
{
"blockchain": "polygon-mumbai",
"name": "test.test"
}
]
}
Check Minting Status
GET
/api/v1/zones/minting/{zoneName}
This API endpoint allows users to check the status of the minting process for a specific zone identified by its name. By sending a GET request with the zone name as a parameter, the response will indicate the current status of the minting process.
Request Headers
Name
Description
Bearer Token
[Required] The authorization token for accessing the API.
Response
{
"timestamp": "2024-06-05T14:58:29.051037",
"data": {
"zoneName": "test.test",
"status": "PENDING"
}
}
If the status is in PENDING
, the transaction hash is not displayed. Once the transaction is COMPLETE
, the transaction hash is also provided.
{
"timestamp": "2024-06-05T14:59:34.473077",
"data": {
"zoneName": "test.test",
"status": "COMPLETE",
"transactionHash": "0xd72495d373...94d5cc62123g9fcba6e9c04zff3"
}
}
Last updated