https://github.com/cobertos/tld-data
Get yer TLD data here! Scraped straight from DNS, ICANN and IANA. Including branded gTLDs and whether or not there's registry restrictions.
https://github.com/cobertos/tld-data
data dataset domain gtld gtlds javascript tld
Last synced: 10 months ago
JSON representation
Get yer TLD data here! Scraped straight from DNS, ICANN and IANA. Including branded gTLDs and whether or not there's registry restrictions.
- Host: GitHub
- URL: https://github.com/cobertos/tld-data
- Owner: Cobertos
- License: mit
- Created: 2020-09-28T05:49:01.000Z (over 5 years ago)
- Default Branch: owo
- Last Pushed: 2021-04-25T05:27:53.000Z (almost 5 years ago)
- Last Synced: 2025-04-10T19:53:29.794Z (10 months ago)
- Topics: data, dataset, domain, gtld, gtlds, javascript, tld
- Language: JavaScript
- Homepage: https://tld-data.com
- Size: 659 KB
- Stars: 10
- Watchers: 1
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# tld-data
Accurate data on TLDs with a focus on which ones can actually be registered. Data pulled weekly
Browse the data at [tld-data.com](https://tld-data.com)!
Methodology:
* Pull all TLDs from [DNS root zone](http://www.internic.net/domain/root.zone) for accuracy (disregards upcoming and terminated TLDs)
* Combines with type information from [IANA root zone database](https://www.iana.org/domains/root/db)
* Scrapes ICANN registry agreements for other information to get as close to the source as possible
## Data
[`tldData.json`](tldData.json) contains an array with an object for every TLD in the [root zone](http://www.internic.net/domain/root.zone). Each object has other properties shown in the below snippet assembled from multiple sources.
```javascript
{
"generated": "2021-03-16T06:41:50-04:00",
"data": {
// TLD, no leading '.', unicode (not punycode)
"tld": "accenture",
// type of the TLD from IANA database
// ['generic', 'country-code', 'sponsored', 'infrastructure', 'generic-restricted', 'test']
// An explanation of each can be found: https://icannwiki.org/Generic_top-level_domain
"type": "generic",
// If present, is the generic TLD a generic brand TLD?
// More specifically, does the registry agreement for this TLD specify "Specification 13"
// or have an exemption to "Specification 9". Both of these prohibit the registry
// from giving domains to anyone but the registry and affiliates (no third parties).
"isBrand": true,
// If present, are there any restrictions for registering the TLD?
// Only checks for "Specification 12" currently (see notes in code)
// Not super accurate yet, and not currently implemented for ccTLDs!
"hasRestrictions": false,
// If the gTLD is NOT in General Availability (useful for filtering out domains
// that are too new)
// NOTE: This is NOT PARTICULARLY ACCURATE. This uses the end of the last listed
// period as there's no well-maintained public data source for this...
// NOTE: omitted on non-generic TLDs
"isNotInGeneralAvailability": false,
// The periods of the gTLD, in ISO8601 date format (no time)
"periods": [{
"name": "Sunrise",
"open": "2015-07-06",
"close": "2015-12-31"
}]
}
}
```
## Running
`src/cli.js` prints data to stdout and takes previously found data from stdin (to reuse in certain portions to reduce HTTP requests).
You can run the command to generate all new data:
`node -r esm --unhandled-rejections=strict src/cli.js --color > tldData.json`
Or to reuse the old `isBrand` and `hasRestrictions` keys, you can run:
```console
$ node -r esm --unhandled-rejections=strict src/cli.js --stdin --color < tldData.json > tldDataNew.json
$ mv -f tldDataNew.json tldData.json
```
## Contributing
Contributing for [`tld-data.com` can be found here](https://github.com/Cobertos/tld-data.com).