# namesilo-domain-api

> library for interacting with NameSilo api

Latest version **0.0.20** (published 2025-07-08) · MIT license · 0 weekly downloads

## Install

```sh
npm install namesilo-domain-api
pnpm add namesilo-domain-api
yarn add namesilo-domain-api
bun add namesilo-domain-api
```

## Health

**Score 35/100 (D)** — status: stable.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: stale.

## Facts

| | |
|---|---|
| Version | 0.0.20 |
| Published | 2025-07-08 |
| First published | 2019-03-21 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 5 |
| Unpacked size | 24.7 KB |
| Known vulnerabilities | 0 (+25 in 1 direct dependencies) |
| Install scripts | no |
| GitHub stars | 2 |
| Maintainers | 7c |
| Keywords | namesilo, domain api, registar api, namesilo api |

## Links

- npm: https://www.npmjs.com/package/namesilo-domain-api
- Repository: https://github.com/7c/namesilo-domain-api
- Homepage: https://github.com/7c/namesilo-domain-api#readme
- Issues: https://github.com/7c/namesilo-domain-api/issues
- npm.io page: https://npm.io/package/namesilo-domain-api

## Dependencies (5)

- [glob](https://npm.io/package/glob.md) ^7.1.6
- [axios](https://npm.io/package/axios.md) ^0.17.1
- [debug](https://npm.io/package/debug.md) ^4.1.1
- [lodash](https://npm.io/package/lodash.md) ^4.17.15
- [xml-js](https://npm.io/package/xml-js.md) ^1.6.11

## Alternatives

- [lodash.startswith](https://npm.io/package/lodash.startswith.md) — 769.7K weekly downloads
- [@tarojs/service](https://npm.io/package/@tarojs/service.md) — 33.9K weekly downloads
- [io.extendreality.tilia.indicators.spatialtargets.unity](https://npm.io/package/io.extendreality.tilia.indicators.spatialtargets.unity.md) — 131 weekly downloads
- [@rtarojs/taro](https://npm.io/package/@rtarojs/taro.md) — 90 weekly downloads
- [node-branch-io](https://npm.io/package/node-branch-io.md) — 50 weekly downloads

## Recent versions

- 0.0.20 (latest) — 2025-07-08
- 0.0.19 — 2025-07-08
- 0.0.18 — 2025-07-07
- 0.0.17 — 2019-12-15
- 0.0.16 — 2019-12-15
- 0.0.15 — 2019-03-22
- 0.0.14 — 2019-03-22
- 0.0.13 — 2019-03-21
- 0.0.12 — 2019-03-21

## README

# namesilo-domain-api

- Original NameSilo API Reference is at [https://www.namesilo.com/api-reference]
- This is a fork from [https://github.com/xaoseric/namesilo-api-node]. I am adding new stuff on top of it. 
- I am converting all responses from xml to json by [https://github.com/buglabs/node-xml2json] dependency
- Converting api methods to be more specific rather than generic, currently they return axios response object
- Adding more checks


# Install
```
npm install --save namesilo-domain-api
```

# Embed
```
var NameSilo = require('namesilo-api')
```

# Methods

## constructor
- expects apikey as first parameter

```
var ns = new NameSilo('9de2514521cfae95a93')
```


## checkRegisterAvailability(array domains) `Promise`
```
ns.checkRegisterAvailability(["stakemonsters.com","harboroutlets.io","github.com"]).then(resp=>{
    console.dir(resp)
}).catch(err=>{
    console.error(err)
})
```
returns
```
{
    code: 300,
    detail: 'success',
    available: [
      {
        domain: 'harboroutlets.io',
        price: 34.99,
        renew: 47.99,
        premium: 0,
        duration: 1
      },
      {
        domain: 'afyx.ooo',
        price: 24.99,
        renew: 24.99,
        premium: 0,
        duration: 10
      }
    ],
    unavailable: [ 'stakemonsters.com', 'github.com' ]
}

```

## registerDomain(domain,[years=1,options={}]) `Promise`
this is the main method to register a Domain. You can pass Optional parameters like seen at [https://www.namesilo.com/api_reference.php#registerDomain]
```
ns.registerDomain("github.com",1,{privacy:1}).then(....).catch(.....)
```
returns
```
{ code: '261', detail: 'Domain unavailable for registration.' }
```

in case of successfull registration you will receive
```
{ code: '300',
  detail: 'success',
  message: 'Your domain registration was successfully processed.',
  domain: 'thegrande.top',
  order_amount: '0.99' }
```
note: for some reason if you define a nameserver along the domainRegister it always throw 301. You might need to use changeNameServers after the registration

## changeNameServers(domain,nameservers=[]) `Promise`
```
ns.changeNameServers('gamingmaster.xyz',['name1.biz','names2.biz'])
```

returns

```
{ code: '300', detail: 'success' }
```

## listDomains(options={}) `Promise`
lists all domains
```
ns.listDomains().then(res=>{
    console.log(res)
}).catch(err=>{
    console.error(err)
})
```

## renewDomain(domain,years=1,options={}) `Promise`
```
ns.renewDomain('gamingmaster.xyz',1).then(res=>{
    console.log(res)
}).catch(err=>{
    console.error(err)
})
```
results:
```
{
  code: '300',
  detail: 'success',
  message: 'Your domain renewal was successfully processed.',
  domain: 'gamingmaster.xyz',
  order_amount: '23.99'
}
```


## domainInfo(domain) `Promise`
gives all details about a specific domain
```
ns.domainInfo('temp.com').then(res=>{
    console.log(res)
}).catch(err=>{
    console.error(err)
})
```
results:
```
{ code: '300',
  detail: 'success',
  created: '2017-12-04',
  expires: '2020-12-04',
  status: 'Active',
  locked: 'Yes',
  private: 'Yes',
  auto_renew: 'No',
  traffic_type: 'Custom DNS',
  email_verification_required: 'No',
  portfolio: 'My Domains',
  forward_url: 'N/A',
  forward_type: 'N/A',
  nameservers: { nameserver: [ [Object], [Object], [Object], [Object] ] },
  contact_ids:
   { registrant: '25112',
     administrative: '25112',
     technical: '25112',
     billing: '25112' } }
```
```
{
  code: '200',
  detail: 'Domain is not active, or does not belong to this user'
}
```

# Response codes:
common ones. you might want to check other codes at [https://www.namesilo.com/api_reference.php]
```
108 : Missing parameters for the specified operation
110 : Invalid API Key
200 : Domain is not active, or does not belong to this user
261 : Domain not available to register
300 : Success
301 : Successful registration, but not all provided hosts were valid resulting in our nameservers being used
```


# Api Documentation
Check NameSilo Api Documentation at [https://www.namesilo.com/api_reference.php]

---
_Source: https://npm.io/package/namesilo-domain-api · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
