DCAT-US Schema v3.0
Overview
Reference documentation for DCAT-US v3.0, the federal metadata standard for documenting datasets, APIs, and data services. Use this reference to build or validate your agency’s data inventory.
Source
Category
Keywords
Details
THE IMPLEMENTATION GUIDE AND IMPLEMENTATION GUIDANCE IN GENERAL IS IN DRAFT FORMAT AT THIS TIME. 5.7.2026.
| Specification name: | DCAT-US Schema v3.0 |
|---|---|
| This version: | 3.0 |
| Previous version: | DCAT-US v1.1 (Project Open Data Metadata Schema) |
| Schema repository: | github.com/GSA/dcat-us |
| JSON Schema: | jsonschema/definitions/Catalog.json |
See an error on this page or have other feedback? Email us at DataGovHelp@gsa.gov
What is DCAT-US v3.0?
DCAT-US v3.0 is the federal data catalog metadata standard, updated to improve the Findability, Accessibility, Interoperability, and Reusability (FAIRness) of federal data. It is a U.S. application profile of the W3C Data Catalog Vocabulary (DCAT) version 3 — not a new or separate standard. This means most DCAT-US v3.0 metadata is valid W3C DCAT 3 metadata, making it easier to share federal data with international catalogs and platforms that understand the W3C standard. DCAT-US v3.0 was developed collaboratively by the Federal Chief Data Officers Council, the Federal Committee on Statistical Methodology, and the Data.gov team at GSA, drawing on more than a decade of implementation experience with v1.1 and feedback from agencies, data providers, and data users across government. The schema is maintained in a public GitHub repository and governed through a CDO Tiger Team review process to ensure ongoing accuracy and responsiveness to agency needs. —
Why v3.0?
DCAT-US v1.1 was published in 2014 and served federal agencies well for over a decade. But the data landscape changed significantly. Agencies increasingly publish APIs alongside downloadable files, with no standard way to describe them at the catalog level. Geospatial data required a separate metadata standard. Datasets published in recurring series — annual surveys, quarterly reports, versioned reference data — had no standard way to express their relationship to each other. And the international open data community moved forward with W3C DCAT 2 and DCAT 3, leaving v1.1 increasingly out of step with global practice. DCAT-US v3.0 addresses these gaps while preserving the core investment agencies’ existing metadata. It aligns the U.S. federal standard with W3C DCAT 3, introduces structured support for APIs, geospatial data, dataset series, and data quality, and brings a consistent requirement level framework — Mandatory, Recommended, or Optional — that tells agencies exactly which fields matter most. —
What stays the same
For most agencies, the core structure of your data.json file carries forward unchanged. Your Catalog still holds an array of Datasets. Each Dataset still describes its Distributions. The fields you have been required to populate — title, description, publisher, contactPoint, keyword, modified, bureauCode, and programCode — are all still present and recognized in v3.0.
Note: accessLevel is not part of the v3.0 core schema. The v3.0 equivalent is accessRights, a free-text string. Agencies should continue populating accessLevel per existing OMB policy (M-13-13) and add accessRights alongside it. See the Changes from v1.1 section for details.
The upgrade work is real but manageable. Most of it involves converting a handful of fields from plain strings to structured objects, and updating a small number of field formats that are no longer valid. See the Quick Migration Guide for step-by-step instructions.
—
Who needs to act and when
For agencies currently implementing v1.1: Continue operating your existing data.json files as-is until you are ready to migrate. v1.1 continues to be harvested by Data.gov during the transition period. When you are ready to migrate, start with the breaking changes listed in the Changes from v1.1 section — particularly modified, temporal, spatial, and language — since these are the fields most likely to fail validation in v3.0.
For agencies building new implementations: Use v3.0 from the start. The v1.1 reference remains available, but new implementations should not be built against it.
For system and tool developers: The schema has moved from JSON Schema Draft-04 to JSON Schema 2020-12. Update your validators accordingly. See jsonschema/README.md for tooling guidance.
—
How the schema is organized
DCAT-US v3.0 continues the same three-tier structure that agencies have used since v1.1: a Catalog holds Datasets, and each Dataset describes its Distributions.
Catalog └── Dataset (one or more)
└── Distribution (one or more)
Your data.json file is a Catalog. Each entry in its dataset array is a Dataset. Each Dataset’s distribution array contains one or more Distribution records describing how to access or download the data. This is the same flow as v1.1.
However, v3.0 introduces several field-level changes that affect existing records. See the Changes from v1.1 section before migrating.
—
What’s new in v3.0
Requirement levels. For the first time, every field is explicitly labeled Mandatory, Recommended, or Optional. Mandatory fields must be present for a record to be valid. Recommended fields are not required by the schema validator but should be populated whenever the information exists — they improve discoverability and interoperability. Optional fields are available but not expected in most records. Two new classes can appear alongside Dataset in the Catalog:
- DataService: describes an API or other programmatic interface that provides access to data. In v1.1, APIs were documented only as Distributions inside a Dataset. In v3.0, a DataService can be listed at the Catalog level as its own resource, which is useful for services that serve many datasets or are not tied to a single one. See Catalog fields for how DataService fits into the catalog structure. - DatasetSeries: groups related datasets published over time — annual releases, recurring surveys, versioned reference data — under a single series record. Individual Dataset records point back to the series using the
inSeriesfield. See DatasetSeries fields. Supporting classes provide structured definitions for information that was unstructured in v1.1, such as geographic location, temporal coverage, contact information, attribution, quality measurements, and access restrictions. These classes are referenced from Dataset, Distribution, and the new classes above. Most agencies will encounter them indirectly, through a field that points to one of these structures. JSON Schema validation. DCAT-US v3.0 is a valid JSON Schema (2020-12). Agencies can programmatically validate their metadata files against the schema. See jsonschema/README.md for tooling. Federal access and use restrictions. Three new structured classes — AccessRestriction, UseRestriction, and CUIRestriction — replace the v1.1 pattern of expressing restrictions as free text inrightsor using the three-valueaccessLevelfield. These are documented on the Constraints and Restrictions reference page. —Schema reference pages
The schema reference pages below are generated directly from the DCAT-US v3.0 schema repository and reflect the current authoritative field definitions, types, and requirement levels. For human-readable implementation guidance, migration help, and examples, see the Implementation guidance section below.
Core classes
These three pages cover the fields most agencies interact with directly.
| Class | Description | Schema reference |
|---|---|---|
| Catalog | The top-level container. Your agency's data.json file is a Catalog. |
Catalog fields |
| Dataset | The primary inventory unit. One record per dataset. | Dataset fields |
| Distribution | A specific file or access point for a dataset. | Distribution fields |
| Dataset Series | New in v3.0. A named collection of related datasets published over time. | Dataset Series fields |
Supporting classes
Supporting classes are referenced from the core classes above. Each page covers a group of related classes.
| Group | Classes covered | Referenced from | Schema reference |
|---|---|---|---|
| Agents | Agent, Organization, Kind, Address | publisher, contactPoint, creator |
Agents |
| Temporal, Spatial, and Metrics | Location, PeriodOfTime, QualityMeasurement, Metric | spatial, temporal, hasQualityMeasurement |
Temporal, Spatial, and Metrics |
| Identifiers and Relationships | Identifier, Checksum, Attribution, Relationship, CatalogRecord | otherIdentifier, checksum, qualifiedRelation, record |
Identifiers and Relationships |
| Quality and Governance | Activity and related governance terms | wasGeneratedBy, wasUsedBy |
Quality and Governance |
| Constraints and Restrictions | AccessRestriction, UseRestriction, CUIRestriction | accessRestriction, useRestriction, cuiRestriction on Distribution |
Constraints and Restrictions |
Implementation guidance
The pages below are written for federal agency data managers and developers implementing DCAT-US v3.0. They explain what the standard means in practice, what changed from v1.1, and how to document common types of federal data assets. These pages complement the schema reference pages above — the schema reference pages tell you what every field is, the implementation pages tell you what to do with them.
| Page | What it covers | Best for |
|---|---|---|
| Agency Implementation Guide | Human-readable guidance for the core classes — Catalog, Dataset, Distribution, DataService, and DatasetSeries. Includes federal-specific context, before/after upgrade examples, common mistakes, and a breaking changes summary. | Data managers implementing v3.0 for the first time or upgrading from v1.1 |
| Quick Migration Guide | Step-by-step instructions for updating an existing v1.1 data.json file to v3.0. Covers the eight most important changes in order of priority. | Agencies with existing v1.1 implementations ready to migrate |
| DCAT-US Priorities | Keyword and field requirements for priority federal data assets, including COVID-19 response data and AI research datasets. Shows how v1.1 field guidance maps to v3.0. | Agencies with COVID-19 or AI research datasets in their inventory |
Changes from v1.1
The table below summarizes the most significant changes from DCAT-US v1.1 to v3.0. For a complete field-by-field comparison, see the schema repository. For field-level detail see the individual schema reference pages linked above. For step-by-step migration instructions see the Quick Migration Guide.
Breaking changes
These are changes where existing v1.1 field values will fail v3.0 schema validation and must be updated.
| Field | What changed | Action required |
|---|---|---|
modified with repeating intervals |
v1.1 accepted repeating duration formats like R/P1D or R/P1Y to indicate continually updated datasets. v3.0 requires a plain ISO 8601 date. |
Set modified to the actual date the data last changed (e.g., "2024-06-01"). Use accrualPeriodicity to express update frequency. |
temporal as an ISO 8601 string |
v1.1 used a plain interval string (e.g., "2000-01-15T00:00:00Z/2010-01-15T00:00:00Z"). v3.0 uses a structured PeriodOfTime object. |
Convert to a PeriodOfTime object: [{"@type": "PeriodOfTime", "startDate": "2000-01-15", "endDate": "2010-01-15"}]. Open-ended periods are valid — you can omit either startDate or endDate. |
spatial as a plain string |
v1.1 accepted plain strings like "United States" or bounding box coordinate strings. v3.0 uses a structured Location object. |
Convert to a Location object: [{"@type": "Location", "prefLabel": "United States"}]. Add a bbox for geospatial precision. |
language with RFC 5646 tags |
v1.1 used RFC 5646 language tags like en-US. v3.0 uses two-letter ISO 639-1 codes only, with a maximum length of two characters. Values like en-US will fail v3.0 validation. |
Simplify to two-letter codes: change en-US to en, es-MX to es, etc. |
Fields replaced or removed
| v1.1 Field | Status in v3.0 | Action |
|---|---|---|
accessLevel |
Not in v3.0 core schema. Replaced by accessRights on Dataset. |
Add accessRights as a free-text string alongside your existing accessLevel. The value "public" remains valid. For restricted datasets write a plain-language explanation. Continue populating accessLevel per OMB policy (M-13-13) until updated guidance is issued. |
isPartOf |
Replaced by inSeries and hasPart |
Use inSeries for datasets that belong to a recurring temporal series. Use hasPart at the parent dataset level for generic collections. |
describedByType |
Absorbed into describedBy |
Express the format as mediaType within the describedBy Distribution object. No separate field needed. |
license at Dataset level |
Now at Distribution level | Add license to each Distribution object. You do not need to remove it from the Dataset level during the transition period — the v3.0 schema will not reject records that include it there. |
@context at Catalog level |
Removed | Remove from your catalog file. |
describedBy at Catalog level |
Removed — replaced by conformsTo Standard object |
Remove from your catalog file. Use a Standard object in conformsTo instead. |
Fields not in the v3.0 core schema
The following fields were introduced in v1.1 specifically for U.S. federal agencies. They are not defined in the v3.0 core schema but agencies should continue populating them until updated OMB policy guidance is issued. The v3.0 schema will not reject records that include them.
| Field | Notes |
|---|---|
bureauCode |
Required by existing OMB policy (M-13-13). Continue populating per current guidance. |
programCode |
Required by existing OMB policy (M-13-13). Continue populating per current guidance. |
accessLevel |
Required by existing OMB policy. Not in the v3.0 core schema. Use alongside the new accessRights field until updated guidance is issued. |
dataQuality |
Not in v3.0 schema. Use hasQualityMeasurement for structured quality reporting going forward. |
primaryITInvestmentUII |
Not in v3.0 schema. Can be preserved in otherIdentifier if needed. |
systemOfRecords |
Not in v3.0 schema. Reference the SORN URL in accessRights or rights until formal guidance is issued. |
Structural changes
The following fields changed type or structure between v1.1 and v3.0. Existing string values in these fields will not validate against the v3.0 schema and must be converted to the new object format.
| Field | v1.1 type | v3.0 type | Notes |
|---|---|---|---|
landingPage |
string (URL) | Document object | Wrap in a Document object with title and accessURL. Still in the v3.0 schema as Recommended. |
theme |
array of strings | array of Concept objects | Each Concept requires a prefLabel. Plain string values are no longer valid. |
describedBy on Dataset and Distribution |
string (URL) | Distribution object | Wrap in a Distribution object with title, downloadURL or accessURL, and mediaType. |
conformsTo on Dataset and Distribution |
string (URI) | array of Standard objects | Wrap in an array of Standard objects. Each Standard should include title and identifier. |
conformsTo on Catalog |
string (URI) | Standard object | Use {"@type": "Standard", "title": "DCAT-US 3.0", "identifier": "https://resources.data.gov/dcat-us/3.0.0"} |
rights |
string — max 255 characters | array of strings — no character limit | Convert to an array. The 255-character limit no longer applies. |
byteSize on Distribution |
number | string | Express as a numeric string, e.g. "52428800". |
publisher.subOrganizationOf |
single Organization object | array of Organization objects | Wrap in an array if you have parent organization hierarchy. |
accrualPeriodicity |
ISO 8601 repeating duration only (e.g., R/P1Y) or irregular |
Three vocabularies accepted: ISO 19115 plain-language codes, Dublin Core frequency vocabulary, or ISO 8601 repeating duration | ISO 8601 patterns remain valid but plain-language codes are preferred — e.g., "annually" instead of "R/P1Y". |
Validation
Note: the generated reference documentation in jsonschema/docs/ currently shows all fields as Optional regardless of their actual requirement level. This is a known issue. Trust the requirement levels documented on the schema reference pages and in the JSON schema files directly.
Validate your metadata against the v3.0 schema:
-
JSON Schema file: jsonschema/definitions/Catalog.json - Validation script: jsonschema/test_json_schema.py - Instructions: jsonschema/README.md
Changelog
| Date | Change |
|---|---|
| May 2026 | Page rewritten to correct several errors and add links to schema reference pages generated from the DCAT-US v3.0 GitHub repository.
Corrections made: removed accessLevel from the "What stays the same" list (not in v3.0 core schema); corrected language breaking change description from BCP 47 to ISO 639-1 two-letter codes; corrected landingPage entry (still in schema as Recommended, moved to Structural changes table); corrected accrualPeriodicity description to reflect three accepted vocabularies; removed webService and accessLevelComment (v1.0 fields, not relevant to v1.1 to v3.0 migration); added bureauCode, programCode, and accrualPeriodicity to the relevant tables.
|
Still using DCAT-US v1.1?
The DCAT-US v1.1 reference remains available.