Something like this (note I'm using sp-request)
spr.requestDigest('https://sp2013dev/sites/dev')
.then(function (digest) {
return spr.post('https://sp2013dev/sites/dev/_api/web/contenttypes', {
body: {
'__metadata': {'type': 'SP.ContentType'},
'Description': 'TestDesc',
'Name': 'ContentType New',
'Group': 'Custom Group',
'Id':{
'__metadata':{
'type':'SP.ContentTypeId'
},
'StringValue':'0x01978768sdfs456df'
}
},
headers: {
'X-RequestDigest': digest
}
});
})
.then(function (response) {
console.log('Created!');
})
.catch(function (err) {
console.log(err.message);
});
UPD
BTW, I recommend you to try pnp-js-core with nodejs. Recently I created a demo repository with setup required in order to use pnp-js-core from nodejs: node-pnpjs-sample.
With pnp-js-core you can simply write:
let web: pnp.Web = new pnp.Web(settings.siteUrl);
web.contentTypes.add('ct id', 'name', 'description')
.then(() => {
console.log('created!');
});