MCPcopy Index your code
hub / github.com/publicsuffix/list

github.com/publicsuffix/list @main sqlite

repository ↗ · DeepWiki ↗
332 symbols 889 edges 33 files 171 documented · 52% 25 cross-repo links
README

The Public Suffix List

A "public suffix" is one under which Internet users can (or historically could) directly register names. Some examples of public suffixes are com, co.uk and pvt.k12.ma.us. The Public Suffix List is a list of all known public suffixes.

See https://publicsuffix.org/ and the Wiki link above for more information.

Are you here to add or update something?

All submissions must conform to the validation and acceptance factors, provide sufficient rationale, and be as complete as possible, following the Guidelines, especially as they relate to format and sorting.

The list is currently maintained by people who are volunteering their time towards universal acceptance and ensuring there is a bridge between the ICANN world of domain names and the crucial last mile - the world of developers and human users.

Iteration back and forth will delay PR review or inclusion. Be extremely thorough and patient.

Important Notices

2026-05-06

Pull Requests MUST use the automated template when adding. Do not cut and paste it into a GPT to generate a response or delete / alter the form. Pull requests that do not use the template, that alter it or summarize it will be closed by volunteers without action. Why? There are specific checkboxes that are part of the volunteers' review or are important attestations for public record and transparency and consistency of processing.

2025-05-27

Were you directed here to be able to add a subdomain to your Cloudflare account? If so, please work directly with Cloudflare for these account limitations. The PSL is NOT intended as a workaround for Cloudflare's subdomain restrictions.

Consult Cloudflare's subdomain setup documentation or contact Cloudflare directly for subdomain setup questions. Only submit a request to the PSL if your domain truly meets our criteria outlined in Guidelines.

2024-07-26

We are sending emails asking for confirmation if certain entries are still required or need updating.

Currently, this process is purely manual and extremely low volume, but if you do get an email, please respond.

Please see the Email Communication Policy to see how we will often communicate these changes.

2023-02-20

Did guidance from Google related to the changes that they are making to AdSense subdomains bring you here? Work with Google AdSense Help Link with any support questions you have. The PSL is thinly resourced, and the volunteer maintainers are unable to answer questions about Adsense changes or support Adsense.

The PSL is volunteer-resourced and is absolutely not resourced to answer questions or support changes. Guidance is in the form of self-help (READ THE WIKI), THERE IS NO PSL CUSTOMER SERVICE RESOURCE TO ASSIST YOU. Please work directly with Google to ensure your domain does in fact need an entry, and they should help you know what the benefits and consequences are. IT IS POSSIBLE TO HARM YOUR WEBSITE COOKIES BY REQUESTING A MALFORMED PSL ENTRY. Also, understand what propagation delays and rollback processing entail before making requests.

2021-04-23

Did guidance related to an issue with Facebook or Apple bring you here? Read this before submitting requests. We are not approving workaround requests per the validation and acceptance standards, but we do have open discussions with Facebook on the matter.

Email Communication Policy

We tend to use the subject line tag "[PSL notification]" in all Public Suffix List communications. For effective spam filtering, you can create a case-insensitive filter to allow only emails with the exact "[PSL notification]" in the subject line. If you choose to set up such a filter in your email application, please verify the filter is implemented correctly and test it thoroughly to ensure you don't accidentally miss important communications from us.

Code of Conduct

Your participation in the Public Suffix List project should follow the Mozilla Community Participation Guidelines as well as the GitHub Community Participation Guidelines. Behavior that falls into the areas forbidden by either document is unwelcome and will result in further escalation.

Extension points exported contracts — how you extend this code

Block (Interface)
A Block is a parsed chunk of a PSL file. Each block is one of the concrete types Comment, Section, Suffixes, Suffix, or
tools/internal/parser/file.go

Core symbols most depended-on inside this repo

LocationString
called by 26
tools/internal/parser/text.go
String
called by 26
tools/internal/domain/domain.go
Changed
called by 21
tools/internal/parser/file.go
error
called by 20
linter/pslint.py
next
called by 16
tools/internal/parser/parser.go
addError
called by 14
tools/internal/parser/parser.go
Error
called by 13
tools/newgtlds.go
Equal
called by 11
tools/internal/domain/domain.go

Shape

Function 136
Method 130
Struct 61
Class 3
Interface 2

Languages

Go85%
Python14%
TypeScript1%

Modules by API surface

tools/internal/parser/errors.go42 symbols
tools/internal/parser/file.go32 symbols
tools/newgtlds.go28 symbols
tools/internal/parser/parser.go24 symbols
tools/newgtlds_test.go22 symbols
tools/internal/domain/domain.go19 symbols
tools/private_domains_checker/PSLPrivateDomainsProcessor.py17 symbols
tools/internal/parser/validate.go15 symbols
tools/internal/parser/parser_test.go12 symbols
tests/prepare_tlds.py11 symbols
tools/internal/parser/diff.go10 symbols
tools/private_domains_checker/TestPSLPrivateDomainsProcessor.py9 symbols

Dependencies from manifests, versioned

github.com/creachadair/commandv0.1.13 · 1×
github.com/creachadair/flaxv0.0.0-2024052519203 · 1×
github.com/creachadair/mdsv0.15.2 · 1×
github.com/creachadair/taskgroupv0.9.0 · 1×
github.com/google/go-querystringv1.1.0 · 1×
github.com/natefinch/atomicv1.0.1 · 1×
golang.org/x/netv0.38.0 · 1×
golang.org/x/textv0.23.0 · 1×

For agents

$ claude mcp add list \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact