npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

freenom-dns

v0.9.4

Published

An unofficial node.js implementation for managing freenom.com dns records

Readme

freenom-dns

An unofficial node.js implementation for managing freenom.com dns records.

Freenom

freenom.com is a ccTLD register service, which has several free domains for users to register for free (.tk, .ml, .ga, etc...) However, except web UI, freenom does not provide friendly API interfaces for developers to update DNS records. Thus, this module is intend to wrap DNS management web interface and provide some convenient node.js API for you. And the final goal is to provide full set of freenom management API interface, plus some extra features such as ddns functionality.

Command Interface

Install

npm install -g freenom-dns

Node.js and npm are required to use this tool

Usage

Commands:
	login                              enter freenom login info
    list [<domain>]                    list domains or records of the domain
    set <fqdn> <type> <value> [<ttl>]  add/edit a DNS record
    clear <fqdn> <type>                delete a DNS record

  Options:
    -h, --help     output usage information
    -V, --version  output the version number

How to use

  1. First of all, you need to have a freenom account, and register for a domain (free or paid).

  2. Run login command, you will be prompt to input your credential.

     $ freenom-dns login
     email: [email protected]
     password: ********
  3. list your domains by the following command

       Domain              Status    Expiry Date
       ----------------   --------   -------------
       domain1.tk         Active    29/07/2017
       domain2.tk         Active    29/07/2017
  4. list records for specific domain.

       Name             Type       Value
       --------------   --------   ----------------------------
     			              A          1.2.3.4
                www            A          1.2.3.4
               TEST        CNAME      google.com
  5. now you can add/edit via command line, such as

     $ freenom-dns set www.domain1.tk A 2.3.4.5

    Please note that you have to enter full domain(FQDN) here, so the API could locate the correct domain for you.

  6. also, you could clear a record by specifying FQDN and type

     $freenom-dns clear www.domain1.tk  A
  7. for detailed command format, please see

     $freenom-dns -h

API

Install

npm install --save freenom-dns

How to use

First of all, initialize freenom object with your login credential.

	var user = "YOUR EMAIL";
	var pass ="YOUR PASSWORD";
	var freenom = require("freenom-dns").init(user, pass);

Then you can call one of the exported api, such as

	freenom.dns.setRecord("subdomain.domain.tk", "CNAME", "www.google.com", 1440)
		    .then(function(ret) {
				console.log(ret)
			})
		    .catch((err) => {
		        console.log(err);
		    });

The API is in promise style, you can get the result from then() callback if success, or get error reason from catch() callback if failed. For other samples, please checkout examples/

Available methods

  • dns
    • listDomains() - list your domains
    • listRecords(fqdn) - list records for specific domain.
    • setRecord(fqdn, type, value[, ttl]) - add/edit DNS record
    • clearRecord(fqdn, type) - clear a record

where type should be one of the following DNS record type.

  • A
  • AAAA
  • CNAME
  • LOC
  • MX
  • NAPTR
  • RP
  • TXT

Reference

Freenom offical web site

Credits

License

MIT