[//]: #@corifeus-header
[](https://www.npmjs.com/package/p3x-freenom/)
**I am trying to save up for a static IP address, if you have to give, any small amount, please donate! Thank you very much!**
[](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) [](https://travis-ci.com/patrikx3/freenom)
[](https://uptimerobot.patrikx3.com/)
# 🌐 Freenom API - Promise and auto renew expiring domains v2019.1.4-3
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 15 minutes, due to nature of 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 15-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.
**Bugs are evident™ - MATRIX️**
### Node Version Requirement
```
>=10.13.0
```
### Built on Node
```
v11.6.0
```
The ```async``` and ```await``` keywords are required.
Install NodeJs:
https://nodejs.org/en/download/package-manager/
# Description
[//]: #@corifeus-header:end
# Freenom API
First, to be able to use the API, you have to be a reseller. I think there is a FEE of 10 EURO to be able to use the API and register via the API, the terms are here:
http://www.freenom.com/en/resellers.html
http://www.freenom.com/en/termsandconditions.html
You have to have a Reseller Account.
The 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 then does 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 v2019.1.4-3
[](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)
## P3X 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