knowledge / specification-and-delivery

URL database specification and delivery

Procurement asks what the licence allows, while engineering asks what arrives, in which format and how big it is. This page answers both in one place.

It gives the overview, and links to the documentation pages where each detail is defined in full.

spec_summary
Coverage
Over 120 million categorized domains
Taxonomies
59 web filtering categories plus IAB content categories, tiers 1 to 4
Extra fields
Country, personas, popularity bands
Formats
CSV, Parquet, JSON
Delivery
HTTPS download with checksums, lookup API included
Updates
Weekly delta files, daily on request, monthly refresh
Licences
Internal use, OEM, group

What one record contains

The database is a table with one row per registered domain. Columns fall into six groups, and every licence tier carries the same columns: tiers differ by how many domains they cover.

Identity

The domain itself, lowercase, without protocol or path. It is the key you join on: domain.

Web filtering category

One of 59 categories built for policy decisions, from News/Media to Malware / Phishing / Suspicious. Never empty.

IAB content categories

Topic categories in up to four tiers, from broad tier 1 subjects to narrow tier 4 niches, in the IAB v2 and v3 versions.

Ranked multi-labels

A domain can carry several categories, ordered by how much of the site each one describes.

Context fields

Country associated with the domain, and personas that describe the likely audience in plain roles.

Popularity bands

Global and country popularity bands based on popularity among real users, available for the most visited domains.

domain,web_filtering_category,iab_v3_tier1,iab_v3_tier2,iab_v3_tier3,iab_v3_tier4,country,personas,global_rank_group example-outdoor-shop.de,Shopping,Sports,Hiking,,,Germany,Hiker; Outdoor Enthusiast,1000001-5000000

The row above is an illustration of the layout, not a real record. The exact column names, types and empty value rules are defined in the data dictionary.

Taxonomy references

Two category systems sit side by side in every row. Each has its own reference page, so this guide only summarizes what each is for.

TaxonomyBuilt forDepthReference
Web filtering categoriesPolicy decisions: allow, block, warn, report59 flat categoriesWeb filtering categories
IAB content categoriesAdvertising, content analysis, audience workUp to four tiersIAB category reference
Both togetherMixed use: targeting with a safety layerOne row, both systemsCategory taxonomy overview

Mapping your own categories: if your product already has its own category list, map it once to the delivered categories and keep the map in version control. The mapping usually takes a few days of work, not weeks.

Choosing your coverage

The first specification decision is how much of the web you need. More domains cost more storage and a larger licence, so match coverage to the traffic you actually see.

The most visited head

The 20 million most visited domains cover 99.99% of web traffic and usage. This suits filters, gateways and ad platforms that act on real browsing.

The full long tail

Over 120 million domains, including small and rarely visited sites. This suits security research, market sizing and training data selection.

Country or category cuts

Only the domains attributed to chosen countries, or only chosen categories. This suits regional products and focused research.

Column cuts

All rows but fewer columns, such as domain and web filtering category only. This suits appliances with tight memory.

How to decide: run a week of your own traffic or bid logs against a candidate coverage level and measure the share of requests it answers. The database category coverage page shows how categories are spread.

Domain matching rules

Categories are attached to registered domains. Your systems see full hostnames and URLs, so a few matching rules decide how often you find an answer.

Input you seeRecommended handling
Full URL with path and queryExtract the hostname first, then look it up
Hostname with wwwStrip www and look up the registered domain
Deeper subdomainTry the full hostname, then fall back to the registered domain
Multi-part endings such as .co.ukUse a public suffix list so the registered domain is cut correctly
Internationalized domain namesNormalize to one form, either Unicode or punycode, on both sides of the join
Uppercase or trailing dotLowercase and remove the trailing dot before lookup

Not found locally? Send the domain to the included lookup API, or treat it as uncategorized under your own policy, since very new domains are the usual reason and arrive in the next delta file.

A typical onboarding timeline

Most teams go from signed licence to production use in a short project. The phases below are typical, and small teams often move faster.

Days 1 to 2

First download

Fetch the snapshot, verify checksums, load into a test environment.

Days 2 to 5

Map and match

Map categories to your product, settle domain matching rules.

Week 2

Test on real traffic

Replay logs, measure hit rate, review a sample of decisions.

Week 2 to 3

Automate updates

Schedule delta and monthly loads with staging and swap.

Week 3 onward

Production

Go live and monitor hit rates and category mix over time.

Questions engineers usually ask

These come up in almost every technical kickoff call. Short answers here save a meeting.

Is the domain unique?

Yes, one row per domain, so it works as a primary key.

Can a category be empty?

The web filtering category is always filled. Deeper IAB tiers can be empty where a site only fits a broad topic.

Do column names change?

Columns are documented in the data dictionary. Plan your loader to fail loudly if a header differs, as good practice.

How are deletions handled?

Delta files add and change rows. A periodic full reload from the monthly refresh also removes domains that have left the database.

Can we load only some columns?

Yes. Parquet makes this cheap, and CSV loaders can skip columns on import.

What about very high lookup rates?

Local files have no rate limits. Speed depends on your own hardware and index.

File formats at a glance

The same data ships in three main formats, plus ready made exports for security tools. The domain list download formats page covers each one in depth, including import pitfalls.

FormatBest forNotes
CSVDatabases, spreadsheets for small cuts, simple scriptsUTF-8, header row, comma separated. Largest on disk.
ParquetData warehouses, data lakes, analytics notebooksColumnar and compressed. Much smaller and faster to query.
JSONApplications and pipelines that expect nested recordsLine delimited, one domain per line, easy to stream.
Security exportsFirewalls, DNS resolvers, proxies, home filtersHosts files, DNS RPZ, AdGuard and Pi-hole style lists, external dynamic lists, PAC files.

File sizes in general terms

Size depends on two things: how many domains your licence covers and which columns you take. The figures below are orders of magnitude for planning storage and memory, not exact numbers.

1 to 2 GB
A few million domains as uncompressed CSV with all columns
Several GB
The most visited 20 million domains as uncompressed CSV
Tens of GB
The full database of over 120 million domains as uncompressed CSV
Much smaller
The same data as Parquet or in compressed archives

Planning tip: appliances and DNS filters often need only the domain and one category column. Dropping unused columns can shrink the in-memory footprint several times over.

How delivery works

Delivery is deliberately simple. Files are pulled over HTTPS by you or your automation, checked, and loaded into your own systems.

Step 1

Licence confirmed

Coverage, columns, formats and update cadence are fixed in writing.

Step 2

Download link

You receive secure HTTPS links for the full snapshot.

Step 3

Verify

Compare each file with its published checksum before loading.

Step 4

Load and index

Import into your database or store, indexed on the domain.

Step 5

Apply updates

Delta files and monthly refreshes keep the copy current.

Secure download

Files arrive over HTTPS. Links can be fetched by scripts, so loading can run on a schedule without manual steps.

Checksums

Each delivery comes with checksums. A mismatch means the download was incomplete and should be repeated.

Lookup API included

Licences include an API for single domain checks, handy for spot checks and for domains not yet in your local copy. See the API overview.

Import patterns for relational databases, key value stores and memory mapped files are in the integration guide. Service and delivery terms are on the service level and delivery page.

Snapshots and update files

You start with a full snapshot and keep it current with smaller files. The schedule itself is explained in update schedule and freshness, so this section covers only the file side.

File typeContentsHow to apply it
Full snapshotEvery domain in your licence with all licensed columnsInitial load, or a clean reload to reset drift
Weekly deltaNewly registered domains categorized that week, plus domains changed by their week and month rechecksUpsert by domain
Daily delta, on requestThe same content at daily granularityUpsert by domain, suits security use
Monthly refreshRefreshed categories for the rest of the databaseReplace the table or upsert the changed rows

Keep it atomic: load each update into a staging table, check row counts, then swap it in. Your product never queries a half loaded table.

Licensing basics

The data is licensed, not sold outright, and the licence states who may use it, inside which systems and for which customers. Full terms are on the licensing page.

Internal use

  • Use inside your own organization and systems.
  • Security, analytics, enrichment, ad operations.
  • Derived outputs such as block lists for your own campaigns.
  • No redistribution to third parties.

OEM and embedded

  • Data inside a product or service you sell.
  • Firewalls, DNS filters, gateways, parental controls, ad platforms.
  • Your customers use the product, not the raw files.
  • Terms set per deployment.

Group licences

  • For companies with several products or business units.
  • One agreement, several deployments.
  • Simplifies renewals and updates.
  • Scope agreed in writing.

Always excluded: no licence allows resale or publication of the raw data. Aggregated statistics and derived decisions, such as blocking a domain, are normal outputs.

Privacy and security review

Security and legal teams usually ask the same handful of questions. The short answers are below, and they make a vendor review quick.

Personal data

None. The rows describe websites: domain, categories and domain level metadata.

Data flows

Once loaded, lookups run in your own systems. Domains you check locally are not sent anywhere.

Offline operation

The files work in isolated and air-gapped networks, because nothing calls home.

Transfer security

Downloads use HTTPS, and checksums confirm the files arrived intact.

Agreements

NDAs for evaluation and data processing agreements can be discussed when your process needs them.

API use

The included API receives only the domain you ask about. Use local files where even that must stay inside.

Technical requirements for loading

The database needs no special software. These are the practical points engineers check before the first load, and none of them should block a typical team.

AreaWhat to plan
StorageRoom for the snapshot, one update in staging and a backup copy
MemoryFor in-memory lookups, enough RAM for the columns you keep, not the full file
IndexA unique index on the domain column; optional indexes on category columns for analysis
Domain normalizationLowercase, strip protocol and path, decide how subdomains fall back to the registered domain
Text encodingUTF-8 throughout, including internationalized domain names
AutomationA scheduled job that downloads, verifies, stages and swaps each update

Common loading problems and quick fixes

Most first load problems come from a handful of causes. Each one has a quick fix that takes minutes once you know what to look for.

SymptomLikely causeFix
Row count lower than expectedDownload cut short, or quotes inside a field broke the CSV parserVerify the checksum, use a CSV parser that respects quoting
Garbled characters in some domainsFile read with the wrong text encodingRead as UTF-8 everywhere in the pipeline
Few lookups find a matchLookups use full hostnames or URLsApply the domain matching rules above
Lookups slow after loadingNo index on the domain columnAdd a unique index, or load into a key value store
Personas column splits into extra columnsDelimiter handling in a spreadsheet toolImport with explicit quoting, or use Parquet
Updates seem to undo each otherDelta files applied out of orderApply in date order, after the latest full snapshot

Procurement checklist

Use this list to collect the answers your purchasing process needs. Each item maps to a section above or to a documentation page.

  • Number of domains needed: most visited head, full long tail, or a country cut
  • Taxonomies needed: web filtering, IAB, or both
  • Extra columns: country, personas, popularity bands
  • File formats, including any security export formats
  • Update cadence: weekly deltas, daily on request, monthly refresh
  • Delivery: who downloads, where files land, checksum checks
  • Licence type: internal, OEM or group, and which products are covered
  • Where the data runs: cloud, on-premise or air-gapped
  • API use for single lookups alongside the files
  • Contract term and renewal, from the pricing page

Comparing several data sources at once? Our guide on how to evaluate a URL categorization database turns these points into RFP questions.

Frequently asked questions

What fields does each record contain?

One domain per row with its web filtering category, IAB categories in up to four tiers, country, personas and popularity bands where available. See the data dictionary.

Which file formats are available?

CSV, Parquet and JSON, plus ready made exports for security tools such as hosts files, DNS RPZ, external dynamic lists and PAC files.

How large are the files?

A few million domains are a gigabyte or two as uncompressed CSV; the full database is tens of gigabytes. Parquet and compressed archives are much smaller.

How are files delivered?

Through secure HTTPS download links with checksums. A lookup API is included for single domain checks.

How do updates arrive?

Weekly delta files for newly registered domains, daily on request, and a monthly refresh of the rest of the database.

Can I use the data inside my product?

Yes, with an OEM licence, while internal use licences cover your own systems. No licence allows resale or publication of the raw data.

Does the data include personal information?

No. It describes websites, not people: domains, categories and domain level metadata only.

Get the specification for your deployment

Tell us how many domains, which columns and which formats you need, and where the data will run. We reply with a written proposal covering coverage, delivery and licence terms.

IAB is a trademark of the Interactive Advertising Bureau, and AdGuard and Pi-hole are trademarks of their respective owners, named here only to identify the taxonomy and list formats discussed. URL Categorization Database is not affiliated with, sponsored or endorsed by any of them.

echo '';