XooCode(){

DataDownload

DataDownload is a MediaObject subtype for a specific downloadable file or endpoint of a Dataset. It inherits all MediaObject properties (contentUrl, encodingFormat, contentSize) plus measurement properties.

Attach one or more DataDownload entries to Dataset.distribution — a single dataset often ships as CSV, JSON, and Parquet simultaneously, each its own DataDownload.

Full example of schema.org/DataDownload json-ld markup

The markup is verified as valid with Rich Results Test from Google.

Highlight legend:Required by GoogleRecommendedOptional
schema.org/DataDownload
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Dataset",
  "name": "Dunmore Air Quality (Hourly, 2025)",
  "description": "Hourly PM2.5, PM10, ozone, and NO2 readings from the municipal station, 2025 archive.",
  "license": "https://creativecommons.org/publicdomain/zero/1.0/",
  "distribution": [
    { "@type": "DataDownload", "name": "2025 archive (CSV)", "contentUrl": "https://dunmore.gov.example/open-data/air-quality/2025.csv", "encodingFormat": "text/csv", "contentSize": "4.8 MB" },
    { "@type": "DataDownload", "name": "2025 archive (JSON)", "contentUrl": "https://dunmore.gov.example/open-data/air-quality/2025.json", "encodingFormat": "application/json", "contentSize": "12.1 MB" },
    { "@type": "DataDownload", "name": "2025 archive (Parquet)", "contentUrl": "https://dunmore.gov.example/open-data/air-quality/2025.parquet", "encodingFormat": "application/vnd.apache.parquet", "contentSize": "1.8 MB" }
  ]
}
</script>

Minimal valid version

The smallest markup that still produces a valid DataDownload entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.

schema.org/DataDownload (minimal)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "DataDownload",
  "name": "2025 archive (CSV)",
  "contentUrl": "https://dunmore.gov.example/open-data/air-quality/2025.csv",
  "encodingFormat": "text/csv"
}
</script>

Google rich results this unlocks

Markup matching this example makes your page eligible for the following Google Search rich results. The primary target drives the required / recommended property classification in the advanced code block above.

  • Dataset rich result (via Dataset.distribution)primary
    Google docs

Common DataDownload mistakes

Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.

  1. 01

    Download URL in Dataset.url

    Wrong
    Putting the CSV URL on Dataset.url
    Right
    Dataset.url = landing page; DataDownload.contentUrl = direct file

    Dataset.url is the human-readable landing page; DataDownload separates the machine-downloadable artefact. Conflation loses that layering.

About the example data

The CSV and JSON downloads for the Dunmore air-quality dataset.

Comments

Loading comments...

Leave a comment