[//]: #@corifeus-header
[](https://www.npmjs.com/package/p3x-freenom/)
[](https://travis-ci.org/patrikx3/freenom) [](https://scrutinizer-ci.com/g/patrikx3/freenom/?branch=master) [](https://scrutinizer-ci.com/g/patrikx3/freenom/?branch=master)
# 🌐 Freenom API - Promise and auto renew expiring domains v1.0.529-311
This is an open-source project. Star this repository if you like it, or even donate! Thank you so much! :)
I run my own server with dynamic IP address so it may happen that the server can not be reachable for about max 5 minutes due to the dynamic DNS. The server may also be unreachable when I backup the SSD with Clonzilla (very rarely) or an electrical issue (but this should not happen again). When the server is down, please hang on for 5-30 minutes and the server will be back up.
All my domains (patrikx3.com and corifeus.com) could have errors since I am developing in my free time. However, it is usually stable.
### Node Version Requirement
```
>=8.9.0
```
### Built on Node
```
v10.0.0
```
The ```async``` and ```await``` keywords are required.
Install NodeJs:
https://nodejs.org/en/download/package-manager/
# Description
[//]: #@corifeus-header:end
# Freenom API
http://www.freenom.com/en/freenom-api.html
I am using these only right now. So no other functions but very easy to add in and Promise based.
```js
const Freenom = require('p3x-freenom');
const freenom = await Freenom({
email: 'p3x@corifeus',
password: 'password',
});
await freenom.service.ping();
await freenom.domain.search({
domainname: 'patrikx3.com',
domaintype: 'FREE'
})
await freenom.domain.delete({ domainname: 'random.tk'));
await freenom.domain.register({
domainname: [
'random.tk',
'random1.tk',
'random2.tk',
],
domaintype: 'FREE',
period: '1Y',
nameserver: [
'ns1.ns.tk',
'ns2.ns.tk',
]
})
await freenom.domain.delete, { domainname: domains })
await freenom.domain.list()
```
# The good extra functions
It automatically renew the free domains (it checks if it is within 14 days expiry and the do it).
```js
// just a helper, you don't relly need it
const renewable = await freenom.domain.expiring({
expiry: '60 days',
});
// the magic
await freenom.domain.expiringRenew({
period: '12M',
})
```
[//]: #@corifeus-footer
---
[**P3X-FREENOM**](https://pages.corifeus.com/freenom) Build v1.0.529-311
[](https://www.facebook.com/corifeus.software) [](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [](https://www.patrikx3.com/en/front/contact)
## Sponsors
[IntelliJ - The most intelligent Java IDE](https://www.jetbrains.com)
[](https://www.jetbrains.com/) [](https://www.nosqlbooster.com/)
[The Smartest IDE for MongoDB](https://www.nosqlbooster.com)
[//]: #@corifeus-footer:end