# Technical specification

The OS Downloads API is a service that lets you automate the discovery and download of OS OpenData and data packages.

This technical specification explains the methods that you can use to call the OS Downloads API.

{% hint style="info" %}
If you are not familiar with the OS Downloads API please read the [overview documentation](https://docs.os.uk/os-apis/accessing-os-apis/os-downloads-api) before proceeding.
{% endhint %}

OS Downloads API allows you to access information about available OS OpenData products and obtain product metadata as well as download links. The API also allows you to access information about your data packages, and to download any available data package versions. The API can be used to automate the retrieval and integration of OS data with your own systems.

## Core concepts

This specification does not cover core concepts that apply to all Ordnance Survey APIs.

Please read the following pages to learn more about OS API core concepts:

* [authentication](https://docs.os.uk/os-apis/core-concepts/authentication "mention")
* [error-codes](https://docs.os.uk/os-apis/core-concepts/error-codes "mention")
* [rate-limiting-policy](https://docs.os.uk/os-apis/core-concepts/rate-limiting-policy "mention")

## API reference

{% hint style="info" %}
To use the:

* OS OpenData parts of this API, you do not require an API Key.
* Data package endpoints (Premium products), you need to use an API Key (or OAuth 2 access token).
  {% endhint %}

Since the content of the API may change as products are changed, added to or removed, you should use the methods listed to get the most current list of content available.

The OS Downloads API provides different methods for downloading OS OpenData and data packages (Premium data products).

### OS OpenData

Operations providing access to OS OpenData products:

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>OpenData products</strong></td><td>Returns a list of OS OpenData products that are available.</td><td><a href="technical-specification/opendata-products">opendata-products</a></td></tr><tr><td><strong>OpenData product details</strong></td><td>Return details about a specific OS OpenData product.</td><td><a href="technical-specification/opendata-product-details">opendata-product-details</a></td></tr><tr><td><strong>Download an OpenData product</strong></td><td>Return a list of downloads for a specific OS OpenData product</td><td><a href="technical-specification/download-an-opendata-product">download-an-opendata-product</a></td></tr><tr><td><strong>OpenData product image</strong></td><td>Return a HTTP redirect to thumbnail images for an OS OpenData product.</td><td><a href="technical-specification/opendata-product-image">opendata-product-image</a></td></tr></tbody></table>

### Premium OS Data (data packages)

Operations providing access to data packages.

{% hint style="warning" %}
To access data packages you must supply a valid API key or OAuth 2 access token.
{% endhint %}

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Data packages</strong></td><td>Lists the data packages that are available.</td><td><a href="technical-specification/data-packages">data-packages</a></td></tr><tr><td><strong>Data package ID</strong></td><td>Get a specific data package.</td><td><a href="technical-specification/data-package-id">data-package-id</a></td></tr><tr><td><strong>Data package version</strong></td><td>Get a list of versions for a specific data package.</td><td><a href="technical-specification/data-package-version">data-package-version</a></td></tr><tr><td><strong>Data package version ID</strong></td><td>Get a specific data package version.</td><td><a href="technical-specification/data-package-version-id">data-package-version-id</a></td></tr><tr><td><strong>Download a data package</strong></td><td>Get a specific file from a data package version.</td><td><a href="technical-specification/download-a-data-package">download-a-data-package</a></td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.os.uk/os-apis/accessing-os-apis/os-downloads-api/technical-specification.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
