@rqt/namecheap
is an implementation of the namecheap.com API.
yarn add @rqt/namecheap
The package is available by importing its default function:
import NameCheap from '@rqt/namecheap'
Create a new instance of the NameCheap class.
Options
: Options for the NameCheap client.
Name | Type | Description | Default |
---|---|---|---|
user* | string | The username required to access the API. | - |
key* | string | The password required used to access the API. | - |
ip* | string | The IP address of the client accessing the application (End-user IP address). | - |
sandbox | boolean | Whether to use the sandbox version of the API. | false |
import NameCheap from '@rqt/namecheap'
import bosom from 'bosom'
(async () => {
try {
// 0. Create a client.
const { user, key, ip } = await bosom('.namecheap.json')
const namecheap = new NameCheap({
user, key, sandbox: true, ip,
})
// 1. Check a domain.
const c = await namecheap.domains.check('test.co')
console.log('Check:', c, '\n')
// 2. Get list of addresses on the account.
const cc = await namecheap.address.getList()
console.log('Addresses:', cc, '\n')
// 3. Find the default address and get its info.
const { AddressId } = cc.find(({ IsDefault }) => IsDefault)
const address = await namecheap.address.getInfo(AddressId)
// 4. Register the domain using the address.
const d = new Date().toLocaleString().replace(/[ :]/g, '-')
const domain = `rqt-example-${d}.com`
const r = await namecheap.domains.create({
domain,
address,
})
console.log('Registered:', r, '\n')
// 5. Retrieve info about domain.
const info = await namecheap.domains.getInfo(domain)
console.log('Info:', info, '\n')
// 6. Get a list of domains (with filter).
const list = await namecheap.domains.getList({
filter: domain,
})
console.log('List:', list, '\n')
} catch (err) {
console.log(err)
}
})()
Check: [ { Domain: 'test.co',
Available: false,
ErrorNo: 0,
Description: '',
IsPremiumName: false,
PremiumRegistrationPrice: 0,
PremiumRenewalPrice: 0,
PremiumRestorePrice: 0,
PremiumTransferPrice: 0,
IcannFee: 0,
EapFee: '0.0' } ]
Addresses: [ { AddressId: 0,
AddressName: 'Primary Address',
IsDefault: false },
{ AddressId: 101235,
AddressName: 'Planet Express',
IsDefault: true } ]
Registered: { Domain: 'rqt-example-2019-8-2-02-13-44.com',
Registered: true,
ChargedAmount: '9.0600',
DomainID: 429348,
OrderID: 1549920,
TransactionID: 2120538,
WhoisguardEnable: true,
FreePositiveSSL: false,
NonRealTimeDomain: false }
Info: { Status: 'Ok',
ID: 429348,
DomainName: 'rqt-example-2019-8-2-02-13-44.com',
OwnerName: 'zavr',
IsOwner: true,
IsPremium: false,
DomainDetails:
{ CreatedDate: '08/01/2019',
ExpiredDate: '08/01/2020',
NumYears: 0 },
Whoisguard:
{ Enabled: 'True',
ID: 351830,
ExpiredDate: '08/01/2020',
EmailDetails:
{ WhoisGuardEmail: '9bf5db38cf0a41cfa4b94223080e4a9f.protect@whoisguard.com',
ForwardedTo: 'zoidberg@futurama.bz',
LastAutoEmailChangeDate: '',
AutoEmailChangeFrequencyDays: 3 } },
PremiumDnsSubscription:
{ UseAutoRenew: false,
SubscriptionId: -1,
CreatedDate: 0000-12-31T21:00:00.000Z,
ExpirationDate: 0000-12-31T21:00:00.000Z,
IsActive: false },
DnsDetails:
{ ProviderType: 'FREE',
IsUsingOurDNS: true,
HostCount: 2,
EmailType: 'FWD',
DynamicDNSStatus: false,
IsFailover: false,
Nameserver: [ 'dns1.registrar-servers.com', 'dns2.registrar-servers.com' ] },
Modificationrights: { All: true } }
List: { domains:
[ { ID: 429348,
Name: 'rqt-example-2019-8-2-02-13-44.com',
User: 'zavr',
Created: '08/01/2019',
Expires: '08/01/2020',
IsExpired: false,
IsLocked: false,
AutoRenew: false,
WhoisGuard: 'ENABLED',
IsPremium: false,
IsOurDNS: true } ],
TotalItems: 1,
CurrentPage: 1,
PageSize: 20 }
Methods to check availability, register and retrieve account domains' info. 🎟Read Domains Wiki
Methods related to the user. 👩💻Read Users Wiki
Methods to manipulate addresses. In contrast to the NameCheap API, it does not fall under the group users
. 🏡Read Address Wiki
Methods to work with DNS records, such as getting a list of current hosts, and setting a new list. 🗺Read DNS Wiki
domains
: 4/11domains.dns
: 2/7domains.ns
: 0/4domains.transfer
: 0/4ssl
: 0/13users
: 1/9users.address
: 2/6whoisguard
: 0/8
9/62 = 15%
(c) Rqt 2019