PHP code example of josuamarcelc / registrar-api
1. Go to this page and download the library: Download josuamarcelc/registrar-api library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
josuamarcelc / registrar-api example snippets
RegistrarAPI\RegistrarAPI;
// Pick your registrar by brand string (case-insensitive):
// 'namesilo', 'godaddy', 'namecheap', 'dynadot'
$api = RegistrarAPI::make('namesilo', [
'api_key' => 'YOUR_NAMESILO_API_KEY'
]);
// Check availability for one or more domains
$result = $api->checkAvailability(['example.com', 'mybrand.io']);
print_r($result);
// Set nameservers (works the same across all adapters)
$api->setNameServers('example.com', ['ns1.host.com', 'ns2.host.com']);
$api = RegistrarAPI::make('namesilo', [
'api_key' => 'YOUR_KEY'
]);
$api = RegistrarAPI::make('godaddy', [
'api_key' => 'KEY',
'api_secret' => 'SECRET',
// optional: 'base' => 'https://api.godaddy.com/v1' // defaults to production
]);
$api = RegistrarAPI::make('namecheap', [
'api_user' => 'USERNAME',
'api_key' => 'KEY',
'client_ip' => 'SERVER_PUBLIC_IP',
// optional: 'base' => 'https://api.namecheap.com/xml.response'
]);
$api = RegistrarAPI::make('dynadot', [
'api_key' => 'KEY',
// optional: 'base' => 'https://api.dynadot.com/api3.json'
]);
// Availability
$api->checkAvailability(['example.com']);
// -> ['ok'=>bool, 'available'=>[], 'unavailable'=>[], 'invalid'=>[], 'raw'=>mixed]
// Purchase / Lifecycle
$api->registerDomain('example.com', [
'years' => 1,
'privacy' => true,
'auto_renew' => true,
// 'registrant' or adapter-specific contact fields (see adapter docs)
]);
$api->renewDomain('example.com', 1); // -> ['ok'=>bool, 'raw'=>mixed]
$api->transferDomain('example.com', ['auth_code' => 'EPP']); // -> ['ok'=>bool, 'raw'=>mixed]
$api->getDomain('example.com'); // -> ['ok'=>bool, 'raw'=>mixed]
// DNS Records
$api->getDNS('example.com'); // -> ['ok'=>bool, 'records'=>[{'type','host','value','ttl','prio'?}], ...]
$api->setDNS('example.com', [
['type'=>'A','host'=>'@','value'=>'203.0.113.10','ttl'=>600],
['type'=>'CNAME','host'=>'www','value'=>'@','ttl'=>600],
]);
$api->addDNS('example.com', ['type'=>'TXT','host'=>'@','value'=>'v=spf1 -all','ttl'=>300]);
$api->delDNS('example.com', ['type'=>'TXT','host'=>'@']); // selector varies per adapter
// Nameservers (available for ALL adapters in this library)
$api->setNameServers('example.com', ['ns1.host.com','ns2.host.com']);
$api = RegistrarAPI::make('namesilo', ['api_key' => 'KEY']);
$api->registerDomain('brandnewdomain.com', [
'years' => 1,
'privacy' => true,
'auto_renew' => false,
'registrant' => [
'first_name' => 'Jane',
'last_name' => 'Doe',
'email' => '[email protected] ',
'phone' => '+1.5555555555',
'address' => '123 Street',
'city' => 'LA',
'state' => 'CA',
'zip' => '90001',
'country' => 'US'
]
]);
$api = RegistrarAPI::make('godaddy', ['api_key'=>'KEY','api_secret'=>'SECRET']);
$api->setDNS('example.com', [
['type'=>'A','host'=>'@','value'=>'198.51.100.20','ttl'=>600],
['type'=>'A','host'=>'blog','value'=>'198.51.100.21','ttl'=>600],
]);
$api = RegistrarAPI::make('namecheap', ['api_user'=>'USER','api_key'=>'KEY','client_ip'=>'203.0.113.22']);
$api->setNameServers('example.com', ['ns1.customdns.com','ns2.customdns.com']);
$api = RegistrarAPI::make('dynadot', ['api_key'=>'KEY']);
$check = $api->checkAvailability(['mynew.io']);
if (!empty($check['available'])) {
$api->registerDomain('mynew.io', ['years'=>1,'privacy'=>true]);
}
$gd = RegistrarAPI::make('godaddy', ['api_key'=>'KEY','api_secret'=>'SECRET']);
$res = $gd->raw('domains/suggestions?query=mybrand&limit=5'); // path relative to GoDaddy base
print_r($res);
namespace RegistrarAPI/Adapters;
use RegistrarAPI\Core\BaseAdapter;
class MyRegistrar extends BaseAdapter {
protected string $brand = 'myregistrar';
public function checkAvailability(array $domains): array { /* ... */ }
public function registerDomain(string $domain, array $opts): array { /* ... */ }
public function renewDomain(string $domain, int $years=1, array $opts=[]): array { /* ... */ }
public function transferDomain(string $domain, array $opts): array { /* ... */ }
public function getDomain(string $domain): array { /* ... */ }
public function getDNS(string $domain): array { /* ... */ }
public function setDNS(string $domain, array $records): array { /* ... */ }
public function addDNS(string $domain, array $record): array { /* ... */ }
public function delDNS(string $domain, array $selector): array { /* ... */ }
public function setNameServers(string $domain, array $nameservers): array { /* ... */ }
public function raw(string $op, array $params=[]): array { /* ... */ }
}
$api = RegistrarAPI::make('myregistrar', [...creds...]);
// Availability
$api->checkAvailability(['example.com']);
// Purchase / Lifecycle
$api->registerDomain('example.com', [
'years' => 1,
'privacy' => true,
'auto_renew' => true,
// 'registrant' or adapter-specific contact fields (see adapter docs)
]);
$api->renewDomain('example.com', 1);
$api->transferDomain('example.com', ['auth_code' => 'EPP']);
$api->getDomain('example.com');
// DNS Records
$api->getDNS('example.com');
$api->setDNS('example.com', [
['type'=>'A','host'=>'@','value'=>'203.0.113.10','ttl'=>600],
['type'=>'CNAME','host'=>'www','value'=>'@','ttl'=>600],
]);
$api->addDNS('example.com', ['type'=>'TXT','host'=>'@','value'=>'v=spf1 -all','ttl'=>300]);
$api->delDNS('example.com', ['type'=>'TXT','host'=>'@']);
// Nameservers
$api->setNameServers('example.com', ['ns1.host.com','ns2.host.com']);
use RegistrarAPI\RegistrarAPI;
$api = RegistrarAPI::make('namesilo', ['api_key' => 'KEY']);
// 1. Check availability
$check = $api->checkAvailability(['newdomain123.com']);
if (!empty($check['available'])) {
// 2. Register
$api->registerDomain('newdomain123.com', [
'years' => 1,
'privacy' => true,
'auto_renew' => false,
'registrant' => [
'first_name' => 'Jane',
'last_name' => 'Doe',
'email' => '[email protected] ',
'phone' => '+1.5555555555',
'address' => '123 Street',
'city' => 'LA',
'state' => 'CA',
'zip' => '90001',
'country' => 'US'
]
]);
// 3. Set nameservers
$api->setNameServers('newdomain123.com', ['ns1.custom.com','ns2.custom.com']);
// 4. Add DNS
$api->addDNS('newdomain123.com', ['type'=>'A','host'=>'@','value'=>'203.0.113.55','ttl'=>600]);
}
$api = RegistrarAPI::make('godaddy', ['api_key'=>'KEY','api_secret'=>'SECRET']);
$check = $api->checkAvailability(['newbrand.io']);
if (!empty($check['available'])) {
$api->registerDomain('newbrand.io', [
'years' => 1,
'privacy' => true
]);
$api->setDNS('newbrand.io', [
['type'=>'A','host'=>'@','value'=>'198.51.100.20','ttl'=>600],
['type'=>'CNAME','host'=>'www','value'=>'@','ttl'=>600],
]);
}
$api = RegistrarAPI::make('namecheap', [
'api_user'=>'USER',
'api_key'=>'KEY',
'client_ip'=>'203.0.113.22'
]);
$check = $api->checkAvailability(['coolbrand.net']);
if (!empty($check['available'])) {
$api->registerDomain('coolbrand.net', [
'years' => 1,
'privacy' => true
]);
$api->setNameServers('coolbrand.net', ['ns1.customdns.com','ns2.customdns.com']);
}
$api = RegistrarAPI::make('dynadot', ['api_key'=>'KEY']);
$check = $api->checkAvailability(['mynew.io']);
if (!empty($check['available'])) {
$api->registerDomain('mynew.io', ['years'=>1,'privacy'=>true]);
$api->setDNS('mynew.io', [
['type'=>'A','host'=>'@','value'=>'192.0.2.123','ttl'=>600],
['type'=>'TXT','host'=>'@','value'=>'v=spf1 -all','ttl'=>300],
]);
}
namespace RegistrarAPI\Adapters;
use RegistrarAPI\Core\BaseAdapter;
class MyRegistrar extends BaseAdapter {
protected string $brand = 'myregistrar';
public function checkAvailability(array $domains): array { /* ... */ }
// ... implement all abstract methods ...
}