Cpanel-node is designed to be simplest way possible to make api request to Cpanel.
$ npm install cpanel-node
const cpanelAPI = require('cpanel-node');
const options = {
host: 'whm.example.com',
user: 'CPANEL_USERNAME',
pass: 'CPANEL_PASSWORD',
https: true, //https is advisable
port: "2083" //default port of cpanel
};
let myCpanel = new cpanelAPI(options);
Create email address
myCpanel.emailAddpop({
domain: 'example.com',
email: "thebest",
password: "*******",
quota: 150 //Mo
}).then(obj => {
console.log(obj.response);
console.log(obj.header);
});
Remove email address
myCpanel.emailDelpop({
domain: 'example.com',
email: 'thebest'
}).then(obj => {
console.log(obj.response);
console.log(obj).header);
});
Change email password
myCpanel.emailPasswdpop({
domain: 'example.com',
email: "thebest",
password: "*******"
}).then(obj => {
console.log(obj.response);
console.log(obj.header);
});
Change email quota
myCpanel.emailEditpopQuota({
domain: 'example.com',
email: "thebest",
quota: 50//Mo
}).then(obj => {
console.log(obj.response);
console.log(obj.header);
});
Retrieve a zone file
myCpanel.zoneFetchZone({
domain: 'example.com',
name: "world",
type: "type"
}).then(obj => {
console.log(obj.response);
console.log(obj.header);
});
Get all of the account's zone files
myCpanel.zoneFetchZones().then(obj => {
console.log(obj.response);
console.log(obj.header);
});
List addon Domains
myCpanel.zoneAddDomain({
regex: 'my regex',
}).then(obj => {
console.log(obj.response);
console.log(obj.header);
});
Add a line to the zone file (that is, a domain record)
myCpanel.zoneAddDomain({
domain: 'example.com', // The zone file to work with
name: "world",
type: "type",
address: "127.0.0.1",
ttl: 7200 // optional
}).then(obj => {
console.log(obj.response);
console.log(obj.header);
});
Change name, address, type and/or ttl for a specific line in a zone file (that is, a domain record)
myCpanel.zoneEditDomain({
domain: 'example.com', // The zone file to work with
line: 42, // The line (in the zone) to change
name: "world", // optional
address: "127.0.0.1", // optional
type: "type", // optional
ttl: 7200 // optional
}).then(obj => {
console.log(obj.response);
console.log(obj.header);
});
Remove a specific line in a zone file (that is, a domain record)
myCpanel.zoneRemoveDomain({
domain: 'example.com', // The zone file to work with
line: 42, // The line (in the zone) to remove
}).then(obj => {
console.log(obj.response);
console.log(obj.header);
});