Transfer a domain in
curl --request POST \
--url https://www.atom.com/api/registrar/v1/domains/transfer \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"domain_name": "example.com",
"authcode": "Ab1!Cd2@Ef3#"
}
'import requests
url = "https://www.atom.com/api/registrar/v1/domains/transfer"
payload = {
"domain_name": "example.com",
"authcode": "Ab1!Cd2@Ef3#"
}
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({domain_name: 'example.com', authcode: 'Ab1!Cd2@Ef3#'})
};
fetch('https://www.atom.com/api/registrar/v1/domains/transfer', 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://www.atom.com/api/registrar/v1/domains/transfer",
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([
'domain_name' => 'example.com',
'authcode' => 'Ab1!Cd2@Ef3#'
]),
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://www.atom.com/api/registrar/v1/domains/transfer"
payload := strings.NewReader("{\n \"domain_name\": \"example.com\",\n \"authcode\": \"Ab1!Cd2@Ef3#\"\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://www.atom.com/api/registrar/v1/domains/transfer")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"domain_name\": \"example.com\",\n \"authcode\": \"Ab1!Cd2@Ef3#\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.atom.com/api/registrar/v1/domains/transfer")
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 \"domain_name\": \"example.com\",\n \"authcode\": \"Ab1!Cd2@Ef3#\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Domain transfer initiated successfully",
"data": {
"domain": "example.com",
"status": "Transfer Initiated",
"payment_method": "account_balance",
"cart_id": 12345,
"price_breakdown": {
"unit_price": 9.99,
"icann_fee": 0.18,
"is_premium": false,
"total": 10.17
}
}
}{
"success": false,
"error": "Bad Request",
"message": "Invalid input provided"
}{
"success": false,
"error": "Unauthorized",
"message": "Invalid registrar API token or access has been revoked. Please request registrar API access from your dashboard."
}{
"success": false,
"error": "Bad Request",
"message": "Invalid input provided"
}{
"success": false,
"error": "Bad Request",
"message": "Invalid input provided"
}{
"success": false,
"error": "Bad Request",
"message": "Invalid input provided"
}{
"success": false,
"error": "Bad Request",
"message": "Invalid input provided"
}Domain Transfers
Transfer a domain in
Initiate a domain transfer-in to Atom Registrar. Validates eligibility (domain not already owned, no transfer in progress, correct auth code, no transfer lock, not registered within 60 days), resolves pricing, processes payment via account balance or saved card, then initiates the transfer with the upstream registrar. A confirmation email is sent when the transfer is accepted.
POST
/
registrar
/
v1
/
domains
/
transfer
Transfer a domain in
curl --request POST \
--url https://www.atom.com/api/registrar/v1/domains/transfer \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"domain_name": "example.com",
"authcode": "Ab1!Cd2@Ef3#"
}
'import requests
url = "https://www.atom.com/api/registrar/v1/domains/transfer"
payload = {
"domain_name": "example.com",
"authcode": "Ab1!Cd2@Ef3#"
}
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({domain_name: 'example.com', authcode: 'Ab1!Cd2@Ef3#'})
};
fetch('https://www.atom.com/api/registrar/v1/domains/transfer', 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://www.atom.com/api/registrar/v1/domains/transfer",
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([
'domain_name' => 'example.com',
'authcode' => 'Ab1!Cd2@Ef3#'
]),
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://www.atom.com/api/registrar/v1/domains/transfer"
payload := strings.NewReader("{\n \"domain_name\": \"example.com\",\n \"authcode\": \"Ab1!Cd2@Ef3#\"\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://www.atom.com/api/registrar/v1/domains/transfer")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"domain_name\": \"example.com\",\n \"authcode\": \"Ab1!Cd2@Ef3#\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.atom.com/api/registrar/v1/domains/transfer")
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 \"domain_name\": \"example.com\",\n \"authcode\": \"Ab1!Cd2@Ef3#\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Domain transfer initiated successfully",
"data": {
"domain": "example.com",
"status": "Transfer Initiated",
"payment_method": "account_balance",
"cart_id": 12345,
"price_breakdown": {
"unit_price": 9.99,
"icann_fee": 0.18,
"is_premium": false,
"total": 10.17
}
}
}{
"success": false,
"error": "Bad Request",
"message": "Invalid input provided"
}{
"success": false,
"error": "Unauthorized",
"message": "Invalid registrar API token or access has been revoked. Please request registrar API access from your dashboard."
}{
"success": false,
"error": "Bad Request",
"message": "Invalid input provided"
}{
"success": false,
"error": "Bad Request",
"message": "Invalid input provided"
}{
"success": false,
"error": "Bad Request",
"message": "Invalid input provided"
}{
"success": false,
"error": "Bad Request",
"message": "Invalid input provided"
}Authorizations
Registrar API Bearer token. Obtain from dashboard at /dashboard/seller/api-access after requesting Registrar API access.
Body
application/json
⌘I