• Townie
    AI
  • Blog
  • Docs
  • Pricing
  • We’re hiring!
Log inSign up
waddupcase

waddupcase

rdap-cctld-ts

Public
Like
rdap-cctld-ts
Home
Code
13
.claude
1
.zed
1
cov_profile
6
data
2
src
8
tests
3
.gitignore
.vtignore
AGENTS.md
LICENSE
README.md
deno.json
deno.lock
Branches
1
Pull requests
Remixes
History
Environment variables
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
Sign up now
Code
/
Code
/
Search
README.md

rdap-cctld-ts

Overview

This project fetches three different IANA data files related to top-level domains each night, and stores copies of each in source control. They are small data, so it's ok.

The idea is to be able to see at a glance, things like:

  • How many delegated TLDs are there?
  • Of these, how many are country-code TLDs vs. generics?
  • How many have RDAP servers? (all the generics are supposed to have them, but for the ccTLDs it's entirely optional)
  • Are there ccTLD RDAP servers that aren't in the IANA bootstrap file?

And later on, we'll add some lightweight monitoring to stay ahead of issues like this.

FAQ

  • What's RDAP? See: https://en.wikipedia.org/wiki/Registration_Data_Access_Protocol
  • What are ccTLDs? See: https://en.wikipedia.org/wiki/Country_code_top-level_domain
  • What are gTLDs? See: https://en.wikipedia.org/wiki/Generic_top-level_domain
  • Which files are we keeping an eye on here?
    • The RDAP "bootstrap" file: https://data.iana.org/rdap/dns.json
    • The "all TLDs" txt file: https://data.iana.org/TLD/tlds-alpha-by-domain.txt
    • The Root Zone DB html file, which alas doesn't appear to be available in a friendlier format: https://www.iana.org/domains/root/db

Tests

In the fixture files, the IDN ccTLDs are:

  • xn--kpry57d is 台灣 (tw) - via
  • xn--2scrj9c is ಭಾರತ (in) - via
  • xn--4dbrk0ce is ישראל (il) - via
  • xn--flw351e is 谷歌 ("Google" in Chinese) - via
  • xn--wgbh1c is .مصر (eg) - via

IANA data files

We're able to check for changes prior to downloading the files:

  • The RDAP bootstrap file has both ETag and Last-Modified headers
  • The TLD list file has both ETag and Last-Modified headers
  • The root zone db (html) has a Cache-Control header

Todo

  • Nightly data updates
  • A unified, generated tlds.json file that includes all the data we need, for an eventual web interface
  • An HTTP + web interface
  • Add the ccTLD RDAP servers from overrides.py
  • Lightweight "monitoring" checks for the ccTLD RDAP servers, which don't have the same SLAs as the generics

Done

2025-11-11:

  • Project creation
  • Fixtures for all three data files
  • Download & last-updated checks for all three files
  • Downloaded file validation, parsing, and tests for all three files
  • CLI, for understanding and munging the data, and prototyping future interfaces
Code
.claude.zedcov_profiledatasrctests.gitignore.vtignoreAGENTS.mdLICENSEREADME.mddeno.jsondeno.lock
FeaturesVersion controlCode intelligenceCLI
Use cases
TeamsAI agentsSlackGTM
DocsShowcaseTemplatesNewestTrendingAPI examplesNPM packages
PricingNewsletterBlogAboutCareers
We’re hiring!
Brandhi@val.townStatus
X (Twitter)
Discord community
GitHub discussions
YouTube channel
Bluesky
Open Source Pledge
Terms of usePrivacy policyAbuse contact
© 2025 Val Town, Inc.