curl --request POST \
--url https://console.advinservers.com/api/v1/client/servers/{server}/rdns/{ipId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"ipAddress": "203.0.113.24",
"hostname": "lambda-core.blackmesa.example.com"
}
'import requests
url = "https://console.advinservers.com/api/v1/client/servers/{server}/rdns/{ipId}"
payload = {
"ipAddress": "203.0.113.24",
"hostname": "lambda-core.blackmesa.example.com"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({ipAddress: '203.0.113.24', hostname: 'lambda-core.blackmesa.example.com'})
};
fetch('https://console.advinservers.com/api/v1/client/servers/{server}/rdns/{ipId}', 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://console.advinservers.com/api/v1/client/servers/{server}/rdns/{ipId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'ipAddress' => '203.0.113.24',
'hostname' => 'lambda-core.blackmesa.example.com'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://console.advinservers.com/api/v1/client/servers/{server}/rdns/{ipId}"
payload := strings.NewReader("{\n \"ipAddress\": \"203.0.113.24\",\n \"hostname\": \"lambda-core.blackmesa.example.com\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://console.advinservers.com/api/v1/client/servers/{server}/rdns/{ipId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"ipAddress\": \"203.0.113.24\",\n \"hostname\": \"lambda-core.blackmesa.example.com\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://console.advinservers.com/api/v1/client/servers/{server}/rdns/{ipId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"ipAddress\": \"203.0.113.24\",\n \"hostname\": \"lambda-core.blackmesa.example.com\"\n}"
response = http.request(request)
puts response.read_body{
"id": "08ef3670-8639-48c9-b12c-2711c8f53674",
"type": "PTR",
"ttl": 300,
"ipAddress": "203.0.113.24",
"value": "lambda-core.blackmesa.example.com",
"status": "pending",
"error": null,
"syncedAt": null,
"dateCreated": "2026-09-14T16:42:09+00:00"
}{
"message": "Unauthenticated."
}{
"message": "This API key is not allowed to do that in this team. It needs the \"snapshot.delete\" permission."
}{
"message": "Not found."
}{
"message": "The name field is required.",
"errors": {}
}{
"message": "Too Many Attempts."
}Create a reverse DNS record
Overview
Creates a reverse DNS record. Send ipAddress covered by this entry and a valid hostname. Returns the record with a pending status while nameservers update. Poll the record list to check progress. Validation errors contain an errors object without a message.
Permissions
Requires the network.update (Change networking) permission for the selected team. Resources outside that team return 404.
curl --request POST \
--url https://console.advinservers.com/api/v1/client/servers/{server}/rdns/{ipId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"ipAddress": "203.0.113.24",
"hostname": "lambda-core.blackmesa.example.com"
}
'import requests
url = "https://console.advinservers.com/api/v1/client/servers/{server}/rdns/{ipId}"
payload = {
"ipAddress": "203.0.113.24",
"hostname": "lambda-core.blackmesa.example.com"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({ipAddress: '203.0.113.24', hostname: 'lambda-core.blackmesa.example.com'})
};
fetch('https://console.advinservers.com/api/v1/client/servers/{server}/rdns/{ipId}', 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://console.advinservers.com/api/v1/client/servers/{server}/rdns/{ipId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'ipAddress' => '203.0.113.24',
'hostname' => 'lambda-core.blackmesa.example.com'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://console.advinservers.com/api/v1/client/servers/{server}/rdns/{ipId}"
payload := strings.NewReader("{\n \"ipAddress\": \"203.0.113.24\",\n \"hostname\": \"lambda-core.blackmesa.example.com\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://console.advinservers.com/api/v1/client/servers/{server}/rdns/{ipId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"ipAddress\": \"203.0.113.24\",\n \"hostname\": \"lambda-core.blackmesa.example.com\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://console.advinservers.com/api/v1/client/servers/{server}/rdns/{ipId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"ipAddress\": \"203.0.113.24\",\n \"hostname\": \"lambda-core.blackmesa.example.com\"\n}"
response = http.request(request)
puts response.read_body{
"id": "08ef3670-8639-48c9-b12c-2711c8f53674",
"type": "PTR",
"ttl": 300,
"ipAddress": "203.0.113.24",
"value": "lambda-core.blackmesa.example.com",
"status": "pending",
"error": null,
"syncedAt": null,
"dateCreated": "2026-09-14T16:42:09+00:00"
}{
"message": "Unauthenticated."
}{
"message": "This API key is not allowed to do that in this team. It needs the \"snapshot.delete\" permission."
}{
"message": "Not found."
}{
"message": "The name field is required.",
"errors": {}
}{
"message": "Too Many Attempts."
}Authorizations
Your API key, sent as a bearer token. Create one in the control panel under API Keys, give it only the permissions the integration needs, and copy it when it is created. It cannot be shown again. Each key is restricted to one owned team. The key determines the team for every request.
Path Parameters
The server UUID
"ecc6f4f1"
The ip id ID.
58213
Body
Send a JSON object containing the fields below. Required fields are marked in the schema.
Response
The record, as a JSON object. There is no envelope.
A reverse DNS record for an IP address.
The id ID.
"08ef3670-8639-48c9-b12c-2711c8f53674"
Always PTR, the record type used for reverse DNS.
"PTR"
The value of ttl.
300
The value of ip_address.
"203.0.113.24"
The hostname the address resolves back to.
"lambda-core.blackmesa.example.com"
Whether the nameserver has caught up with the record yet. The record itself is in effect from the moment it is stored here, so this is progress rather than validity.
pending, synced, failed "synced"
The value of error.
null
The date and time for synced at, in UTC.
"2026-03-02T19:31:09+00:00"
The value of date_created.
"2026-03-02T19:31:05+00:00"