Taxonomy packages

xbrt.org is a package repository for XBRL  taxonomies.

We validate and serve public taxonomy packages from trusted publishers.

You can search for packages by package metadata, package SHA-256 sum or the URL of a published document.

Adding packages

If you know about a package that isn't in the repository, please request it.

You don't need to create an account with xbrt.org. You can sign in using an existing account (Microsoft, LinkedIn or Google), or choose to remain anonymous.

Requests from anonymous users will be held for review.

If you sign in, your requests will proceed immediately for known domains.

Requests for domains we haven't encountered before will be held for review.

Validation

xbrt.org performs two levels of validation:

  1. Package validation, according to the Taxonomy Package specification;
  2. XBRL 2.1 validation of taxonomies within packages ('entry points').

The second stage only proceeds if the first stage passes and packages can be found for all external dependencies.

Dependencies

Though some taxonomy packages can be used independently, it is common for packages to rely on other packages.

XBRL International is working on an updated version of the Taxonomy Package specification that allows dependencies to be recorded by a package author.

For packages produced according to the original 1.0 specification, xbrt.org attempts to find a set of packages that allows each package to be validated.

Identifiers

Packages, package sets, and taxonomies on xbrt.org are identified by their content.

  • Each package is identified by a SHA-256 hash of the bytes of the package file.
  • Package sets are identified by taking a SHA-256 hash of a string containing the SHA-256 hashes of the packages in the package set.
  • Taxonomies are identified by a SHA-256 hash of a string containing the package set id followed by a space-separated list of URLs

For example, 006a835e5daabc467c332196d6bc9d27cff247064d5b8f2a9f43c21817f600be uniquely identifies a Country Code package from XBRL International. The hex strings are identical to those you get by running shasum -a 256 on the command line:

$ shasum -a 256 country-current-REC-2024-06-14.zip
006a835e5daabc467c332196d6bc9d27cff247064d5b8f2a9f43c21817f600be  country-current-REC-2024-06-14.zip    

That package relies on another, c6f6d5c01b75b51458a438d78eae6001e42fa777eb9725dd4bf73d1f93ac232d. The identifier for the package set containing these two packages is a SHA-256 hash of a string representation of the package identifiers (sorted and space-separated).

$ echo -n "006a835e5daabc467c332196d6bc9d27cff247064d5b8f2a9f43c21817f600be c6f6d5c01b75b51458a438d78eae6001e42fa777eb9725dd4bf73d1f93ac232d"  | shasum -a 256
ac5764cca819c02077abbbf4e586113cf9300b880151cc9330413024ea627d05  -

A taxonomy is constructed by loading a URL (or list of URLs) in the context of a package set. The xbrt.org identifier for a taxonomy is a SHA-256 hash of a string containing the package set hash, followed by a space-separated list of properly-encoded URLs:

echo -n "ac5764cca819c02077abbbf4e586113cf9300b880151cc9330413024ea627d05 https://www.xbrl.org/taxonomy/int/country/current/entry.xsd"  | shasum -a 256
c317b70c076704c61b25b15aa81ffb4e6196072e405f5fbddfcf3e1ead9c8e8b  -

This approach ensures deterministic, system-independent identifiers, and means that xbrt.org cannot contain duplicate artefacts.

In the UI, identifiers are generally abbreviated to the first 8 characters, but the full identifiers are used behind the scenes.