List all DNS Zones
Returns a list of all custom DNS zones
Request
curl -X GET https://api.netbird.io/api/dns/zones \
-H 'Accept: application/json' \
-H 'Authorization: Token <TOKEN>'
Response
[
{
"id": "ch8i4ug6lnn4g9hqv7m0",
"records": [
{
"id": "ch8i4ug6lnn4g9hqv7m0",
"name": "www.example.com",
"type": "A",
"content": "192.168.1.1",
"ttl": 300
}
],
"name": "Office Zone",
"domain": "example.com",
"enabled": {
"description": "Zone status",
"type": "boolean",
"default": true
},
"enable_search_domain": false,
"distribution_groups": [
"ch8i4ug6lnn4g9hqv7m0"
]
}
]
Create a DNS Zone
Creates a new custom DNS zone
Request-Body Parameters
- Name
name- Type
- string
- Required
- required
- Enum
- Possible Values:
>=1 charactersand <=255 characters - Description
Zone name identifier
- Name
domain- Type
- string
- Required
- required
- Enum
- Description
Zone domain (FQDN)
- Name
enabled- Type
- boolean
- Required
- optional
- Enum
- Description
Zone status
- Name
enable_search_domain- Type
- boolean
- Required
- required
- Enum
- Description
Enable this zone as a search domain
- Name
distribution_groups- Type
- string[]
- Required
- required
- Enum
- Description
Group IDs that defines groups of peers that will resolve this zone
Request
curl -X POST https://api.netbird.io/api/dns/zones \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Token <TOKEN>' \
--data-raw '{
"name": "Office Zone",
"domain": "example.com",
"enabled": {
"description": "Zone status",
"type": "boolean",
"default": true
},
"enable_search_domain": false,
"distribution_groups": [
"ch8i4ug6lnn4g9hqv7m0"
]
}'
Response
{
"id": "ch8i4ug6lnn4g9hqv7m0",
"records": [
{
"id": "ch8i4ug6lnn4g9hqv7m0",
"name": "www.example.com",
"type": "A",
"content": "192.168.1.1",
"ttl": 300
}
],
"name": "Office Zone",
"domain": "example.com",
"enabled": {
"description": "Zone status",
"type": "boolean",
"default": true
},
"enable_search_domain": false,
"distribution_groups": [
"ch8i4ug6lnn4g9hqv7m0"
]
}
Retrieve a DNS Zone
Returns information about a specific DNS zone
Path Parameters
- Name
zoneId- Type
- string
- Required
- required
- Enum
- Description
The unique identifier of a zone
Request
curl -X GET https://api.netbird.io/api/dns/zones/{zoneId} \
-H 'Accept: application/json' \
-H 'Authorization: Token <TOKEN>'
Response
{
"id": "ch8i4ug6lnn4g9hqv7m0",
"records": [
{
"id": "ch8i4ug6lnn4g9hqv7m0",
"name": "www.example.com",
"type": "A",
"content": "192.168.1.1",
"ttl": 300
}
],
"name": "Office Zone",
"domain": "example.com",
"enabled": {
"description": "Zone status",
"type": "boolean",
"default": true
},
"enable_search_domain": false,
"distribution_groups": [
"ch8i4ug6lnn4g9hqv7m0"
]
}
Update a DNS Zone
Updates a custom DNS zone
Path Parameters
- Name
zoneId- Type
- string
- Required
- required
- Enum
- Description
The unique identifier of a zone
Request-Body Parameters
- Name
name- Type
- string
- Required
- required
- Enum
- Possible Values:
>=1 charactersand <=255 characters - Description
Zone name identifier
- Name
domain- Type
- string
- Required
- required
- Enum
- Description
Zone domain (FQDN)
- Name
enabled- Type
- boolean
- Required
- optional
- Enum
- Description
Zone status
- Name
enable_search_domain- Type
- boolean
- Required
- required
- Enum
- Description
Enable this zone as a search domain
- Name
distribution_groups- Type
- string[]
- Required
- required
- Enum
- Description
Group IDs that defines groups of peers that will resolve this zone
Request
curl -X PUT https://api.netbird.io/api/dns/zones/{zoneId} \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Token <TOKEN>' \
--data-raw '{
"name": "Office Zone",
"domain": "example.com",
"enabled": {
"description": "Zone status",
"type": "boolean",
"default": true
},
"enable_search_domain": false,
"distribution_groups": [
"ch8i4ug6lnn4g9hqv7m0"
]
}'
Response
{
"id": "ch8i4ug6lnn4g9hqv7m0",
"records": [
{
"id": "ch8i4ug6lnn4g9hqv7m0",
"name": "www.example.com",
"type": "A",
"content": "192.168.1.1",
"ttl": 300
}
],
"name": "Office Zone",
"domain": "example.com",
"enabled": {
"description": "Zone status",
"type": "boolean",
"default": true
},
"enable_search_domain": false,
"distribution_groups": [
"ch8i4ug6lnn4g9hqv7m0"
]
}
Delete a DNS Zone
Deletes a custom DNS zone
Path Parameters
- Name
zoneId- Type
- string
- Required
- required
- Enum
- Description
The unique identifier of a zone
Request
curl -X DELETE https://api.netbird.io/api/dns/zones/{zoneId} \
-H 'Authorization: Token <TOKEN>'
List all DNS Records
Returns a list of all DNS records in a zone
Path Parameters
- Name
zoneId- Type
- string
- Required
- required
- Enum
- Description
The unique identifier of a zone
Request
curl -X GET https://api.netbird.io/api/dns/zones/{zoneId}/records \
-H 'Accept: application/json' \
-H 'Authorization: Token <TOKEN>'
Response
[
{
"id": "ch8i4ug6lnn4g9hqv7m0",
"name": "www.example.com",
"type": "A",
"content": "192.168.1.1",
"ttl": 300
}
]
Create a DNS Record
Creates a new DNS record in a zone
Path Parameters
- Name
zoneId- Type
- string
- Required
- required
- Enum
- Description
The unique identifier of a zone
Request-Body Parameters
- Name
name- Type
- string
- Required
- required
- Enum
- Description
FQDN for the DNS record. Must be a subdomain within or match the zone's domain.
- Name
type- Type
- string
- Required
- required
- Enum
- Description
DNS record type
- Name
content- Type
- string
- Required
- required
- Enum
- Possible Values:
>=1 charactersand <=255 characters - Description
DNS record content (IP address for A/AAAA, domain for CNAME)
- Name
ttl- Type
- integer
- Required
- required
- Enum
- 00
- Description
Time to live in seconds
Request
curl -X POST https://api.netbird.io/api/dns/zones/{zoneId}/records \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Token <TOKEN>' \
--data-raw '{
"name": "www.example.com",
"type": "A",
"content": "192.168.1.1",
"ttl": 300
}'
Response
{
"id": "ch8i4ug6lnn4g9hqv7m0",
"name": "www.example.com",
"type": "A",
"content": "192.168.1.1",
"ttl": 300
}
Retrieve a DNS Record
Returns information about a specific DNS record
Path Parameters
- Name
zoneId- Type
- string
- Required
- required
- Enum
- Description
The unique identifier of a zone
- Name
recordId- Type
- string
- Required
- required
- Enum
- Description
The unique identifier of a DNS record
Request
curl -X GET https://api.netbird.io/api/dns/zones/{zoneId}/records/{recordId} \
-H 'Accept: application/json' \
-H 'Authorization: Token <TOKEN>'
Response
{
"id": "ch8i4ug6lnn4g9hqv7m0",
"name": "www.example.com",
"type": "A",
"content": "192.168.1.1",
"ttl": 300
}
Update a DNS Record
Updates a DNS record in a zone
Path Parameters
- Name
zoneId- Type
- string
- Required
- required
- Enum
- Description
The unique identifier of a zone
- Name
recordId- Type
- string
- Required
- required
- Enum
- Description
The unique identifier of a DNS record
Request-Body Parameters
- Name
name- Type
- string
- Required
- required
- Enum
- Description
FQDN for the DNS record. Must be a subdomain within or match the zone's domain.
- Name
type- Type
- string
- Required
- required
- Enum
- Description
DNS record type
- Name
content- Type
- string
- Required
- required
- Enum
- Possible Values:
>=1 charactersand <=255 characters - Description
DNS record content (IP address for A/AAAA, domain for CNAME)
- Name
ttl- Type
- integer
- Required
- required
- Enum
- 00
- Description
Time to live in seconds
Request
curl -X PUT https://api.netbird.io/api/dns/zones/{zoneId}/records/{recordId} \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Token <TOKEN>' \
--data-raw '{
"name": "www.example.com",
"type": "A",
"content": "192.168.1.1",
"ttl": 300
}'
Response
{
"id": "ch8i4ug6lnn4g9hqv7m0",
"name": "www.example.com",
"type": "A",
"content": "192.168.1.1",
"ttl": 300
}
Delete a DNS Record
Deletes a DNS record from a zone
Path Parameters
- Name
zoneId- Type
- string
- Required
- required
- Enum
- Description
The unique identifier of a zone
- Name
recordId- Type
- string
- Required
- required
- Enum
- Description
The unique identifier of a DNS record
Request
curl -X DELETE https://api.netbird.io/api/dns/zones/{zoneId}/records/{recordId} \
-H 'Authorization: Token <TOKEN>'

