Technical Specification

API Reference

OS NGD API – Features Technical Specification provides an overview of the endpoints available, as well as the parameters that can be used with each endpoint. The Technical Specification is intended to be used by customers who want to integrate with the API. Click into each endpoint to learn more.

OS NGD API – Features landing page

get

/

Responses
curl -L \
  --url 'https://api.os.uk/features/ngd/ofa/v1/'
{
  "title": "text",
  "description": "text",
  "links": [
    {
      "href": "text",
      "rel": "text",
      "type": "text",
      "title": "text"
    }
  ]
}

OS NGD API – Features conformance page

get

/conformance

Responses
curl -L \
  --url 'https://api.os.uk/features/ngd/ofa/v1/conformance'
{
  "conformsTo": [
    "text"
  ]
}

Get list of all OS NGD feature collections

Get a list of all the available OS NGD feature collections

get

/collections

Responses
curl -L \
  --url 'https://api.os.uk/features/ngd/ofa/v1/collections'
{
  "links": [
    {
      "href": "text",
      "rel": "text",
      "type": "text",
      "title": "text"
    }
  ],
  "crs": [
    "http://www.opengis.net/def/crs/OGC/1.3/CRS84"
  ],
  "collections": [
    {
      "id": "text",
      "title": "text",
      "description": "text",
      "crs": [
        "http://www.opengis.net/def/crs/OGC/1.3/CRS84"
      ],
      "storageCrs": "http://www.opengis.net/def/crs/OGC/1.3/CRS84",
      "itemType": "text",
      "extent": {
        "spatial": {
          "bbox": [
            [
              1
            ]
          ],
          "crs": "text"
        },
        "temporal": {
          "interval": [
            [
              "text"
            ]
          ],
          "trs": "text"
        }
      },
      "links": [
        {
          "href": "text",
          "rel": "text",
          "type": "text",
          "title": "text"
        }
      ]
    }
  ]
}

Get a single OS NGD feature collection

Get information about an OS NGD feature collection

get

/collections/{collectionId}

Path parameters
collectionIdenumrequired

A known collection ID.

Example: bld-fts-building-1
Options: bld-fts-building-1, bld-fts-building-2, bld-fts-building-3, bld-fts-buildingline-1, bld-fts-buildingpart-1, bld-fts-buildingpart-2, gnm-fts-namedarea-1, gnm-fts-namedpoint-1, gnm-fts-namedroadjunction-1, lnd-fts-land-1, lnd-fts-land-2, lnd-fts-land-3, lnd-fts-landform-1, lnd-fts-landformline-1, lnd-fts-landformpoint-1, lnd-fts-landpoint-1, lus-fts-site-1, lus-fts-site-2, lus-fts-siteaccesslocation-1, lus-fts-siteroutingpoint-1, str-fts-compoundstructure-1, str-fts-compoundstructure-2, str-fts-fieldboundary-1, str-fts-structure-1, str-fts-structure-2, str-fts-structure-3, str-fts-structureline-1, str-fts-structurepoint-1, trn-fts-cartographicraildetail-1, trn-fts-rail-1, trn-fts-rail-2, trn-fts-rail-3, trn-fts-roadline-1, trn-fts-roadtrackorpath-1, trn-fts-roadtrackorpath-2, trn-fts-roadtrackorpath-3, trn-ntwk-connectinglink-1, trn-ntwk-connectingnode-1, trn-ntwk-ferrylink-1, trn-ntwk-ferrynode-1, trn-ntwk-ferryterminal-1, trn-ntwk-path-1, trn-ntwk-pathlink-1, trn-ntwk-pathnode-1, trn-ntwk-pavementlink-1, trn-ntwk-railwaylink-1, trn-ntwk-railwaylinkset-1, trn-ntwk-railwaynode-1, trn-ntwk-road-1, trn-ntwk-roadjunction-1, trn-ntwk-roadlink-1, trn-ntwk-roadlink-2, trn-ntwk-roadlink-3, trn-ntwk-roadnode-1, trn-ntwk-street-1, trn-ntwk-tramonroad-1, trn-rami-averageandindicativespeed-1, trn-rami-highwaydedication-1, trn-rami-maintenancearea-1, trn-rami-maintenanceline-1, trn-rami-maintenancepoint-1, trn-rami-reinstatementarea-1, trn-rami-reinstatementline-1, trn-rami-reinstatementpoint-1, trn-rami-restriction-1, trn-rami-routinghazard-1, trn-rami-routingstructure-1, trn-rami-specialdesignationarea-1, trn-rami-specialdesignationline-1, trn-rami-specialdesignationpoint-1, wtr-fts-intertidalline-1, wtr-fts-tidalboundary-1, wtr-fts-water-1, wtr-fts-water-2, wtr-fts-water-3, wtr-fts-waterpoint-1, wtr-ntwk-waterlink-1, wtr-ntwk-waterlinkset-1, wtr-ntwk-waternode-1
Responses
curl -L \
  --url 'https://api.os.uk/features/ngd/ofa/v1/collections/{collectionId}'
{
  "id": "text",
  "title": "text",
  "description": "text",
  "crs": [
    "http://www.opengis.net/def/crs/OGC/1.3/CRS84"
  ],
  "storageCrs": "http://www.opengis.net/def/crs/OGC/1.3/CRS84",
  "itemType": "text",
  "extent": {
    "spatial": {
      "bbox": [
        [
          1
        ]
      ],
      "crs": "text"
    },
    "temporal": {
      "interval": [
        [
          "text"
        ]
      ],
      "trs": "text"
    }
  },
  "links": [
    {
      "href": "text",
      "rel": "text",
      "type": "text",
      "title": "text"
    }
  ]
}

Get schema for a single OS NGD feature collection

get

/collections/{collectionId}/schema

Path parameters
collectionIdenumrequired

A known collection ID.

Example: bld-fts-building-1
Options: bld-fts-building-1, bld-fts-building-2, bld-fts-building-3, bld-fts-buildingline-1, bld-fts-buildingpart-1, bld-fts-buildingpart-2, gnm-fts-namedarea-1, gnm-fts-namedpoint-1, gnm-fts-namedroadjunction-1, lnd-fts-land-1, lnd-fts-land-2, lnd-fts-land-3, lnd-fts-landform-1, lnd-fts-landformline-1, lnd-fts-landformpoint-1, lnd-fts-landpoint-1, lus-fts-site-1, lus-fts-site-2, lus-fts-siteaccesslocation-1, lus-fts-siteroutingpoint-1, str-fts-compoundstructure-1, str-fts-compoundstructure-2, str-fts-fieldboundary-1, str-fts-structure-1, str-fts-structure-2, str-fts-structure-3, str-fts-structureline-1, str-fts-structurepoint-1, trn-fts-cartographicraildetail-1, trn-fts-rail-1, trn-fts-rail-2, trn-fts-rail-3, trn-fts-roadline-1, trn-fts-roadtrackorpath-1, trn-fts-roadtrackorpath-2, trn-fts-roadtrackorpath-3, trn-ntwk-connectinglink-1, trn-ntwk-connectingnode-1, trn-ntwk-ferrylink-1, trn-ntwk-ferrynode-1, trn-ntwk-ferryterminal-1, trn-ntwk-path-1, trn-ntwk-pathlink-1, trn-ntwk-pathnode-1, trn-ntwk-pavementlink-1, trn-ntwk-railwaylink-1, trn-ntwk-railwaylinkset-1, trn-ntwk-railwaynode-1, trn-ntwk-road-1, trn-ntwk-roadjunction-1, trn-ntwk-roadlink-1, trn-ntwk-roadlink-2, trn-ntwk-roadlink-3, trn-ntwk-roadnode-1, trn-ntwk-street-1, trn-ntwk-tramonroad-1, trn-rami-averageandindicativespeed-1, trn-rami-highwaydedication-1, trn-rami-maintenancearea-1, trn-rami-maintenanceline-1, trn-rami-maintenancepoint-1, trn-rami-reinstatementarea-1, trn-rami-reinstatementline-1, trn-rami-reinstatementpoint-1, trn-rami-restriction-1, trn-rami-routinghazard-1, trn-rami-routingstructure-1, trn-rami-specialdesignationarea-1, trn-rami-specialdesignationline-1, trn-rami-specialdesignationpoint-1, wtr-fts-intertidalline-1, wtr-fts-tidalboundary-1, wtr-fts-water-1, wtr-fts-water-2, wtr-fts-water-3, wtr-fts-waterpoint-1, wtr-ntwk-waterlink-1, wtr-ntwk-waterlinkset-1, wtr-ntwk-waternode-1
Responses
curl -L \
  --url 'https://api.os.uk/features/ngd/ofa/v1/collections/{collectionId}/schema'
{
  "ANY_ADDITIONAL_PROPERTY": {}
}

Get a list of queryable attributes for this feature collection

get

/collections/{collectionId}/queryables

Path parameters
collectionIdenumrequired

A known collection ID.

Example: bld-fts-building-1
Options: bld-fts-building-1, bld-fts-building-2, bld-fts-building-3, bld-fts-buildingline-1, bld-fts-buildingpart-1, bld-fts-buildingpart-2, gnm-fts-namedarea-1, gnm-fts-namedpoint-1, gnm-fts-namedroadjunction-1, lnd-fts-land-1, lnd-fts-land-2, lnd-fts-land-3, lnd-fts-landform-1, lnd-fts-landformline-1, lnd-fts-landformpoint-1, lnd-fts-landpoint-1, lus-fts-site-1, lus-fts-site-2, lus-fts-siteaccesslocation-1, lus-fts-siteroutingpoint-1, str-fts-compoundstructure-1, str-fts-compoundstructure-2, str-fts-fieldboundary-1, str-fts-structure-1, str-fts-structure-2, str-fts-structure-3, str-fts-structureline-1, str-fts-structurepoint-1, trn-fts-cartographicraildetail-1, trn-fts-rail-1, trn-fts-rail-2, trn-fts-rail-3, trn-fts-roadline-1, trn-fts-roadtrackorpath-1, trn-fts-roadtrackorpath-2, trn-fts-roadtrackorpath-3, trn-ntwk-connectinglink-1, trn-ntwk-connectingnode-1, trn-ntwk-ferrylink-1, trn-ntwk-ferrynode-1, trn-ntwk-ferryterminal-1, trn-ntwk-path-1, trn-ntwk-pathlink-1, trn-ntwk-pathnode-1, trn-ntwk-pavementlink-1, trn-ntwk-railwaylink-1, trn-ntwk-railwaylinkset-1, trn-ntwk-railwaynode-1, trn-ntwk-road-1, trn-ntwk-roadjunction-1, trn-ntwk-roadlink-1, trn-ntwk-roadlink-2, trn-ntwk-roadlink-3, trn-ntwk-roadnode-1, trn-ntwk-street-1, trn-ntwk-tramonroad-1, trn-rami-averageandindicativespeed-1, trn-rami-highwaydedication-1, trn-rami-maintenancearea-1, trn-rami-maintenanceline-1, trn-rami-maintenancepoint-1, trn-rami-reinstatementarea-1, trn-rami-reinstatementline-1, trn-rami-reinstatementpoint-1, trn-rami-restriction-1, trn-rami-routinghazard-1, trn-rami-routingstructure-1, trn-rami-specialdesignationarea-1, trn-rami-specialdesignationline-1, trn-rami-specialdesignationpoint-1, wtr-fts-intertidalline-1, wtr-fts-tidalboundary-1, wtr-fts-water-1, wtr-fts-water-2, wtr-fts-water-3, wtr-fts-waterpoint-1, wtr-ntwk-waterlink-1, wtr-ntwk-waterlinkset-1, wtr-ntwk-waternode-1
Responses
curl -L \
  --url 'https://api.os.uk/features/ngd/ofa/v1/collections/{collectionId}/queryables'
{
  "$schema": "text",
  "$id": "text",
  "type": "text",
  "title": "text",
  "description": "text",
  "properties": {
    "ANY_ADDITIONAL_PROPERTY": {
      "title": "text",
      "type": "text",
      "format": "text",
      "maxLength": 1,
      "pattern": "text",
      "description": "text",
      "hierarchy": "text",
      "parent": "text",
      "child": "text",
      "minItems": 1,
      "maxItems": 1,
      "items": {
        "title": "text",
        "type": "text",
        "format": "text",
        "maxLength": 1,
        "pattern": "text",
        "description": "text",
        "hierarchy": "text",
        "parent": "text",
        "child": "text",
        "minItems": 1,
        "maxItems": 1,
        "items": {
          "title": "text",
          "type": "text",
          "format": "text",
          "maxLength": 1,
          "pattern": "text",
          "description": "text",
          "hierarchy": "text",
          "parent": "text",
          "child": "text",
          "minItems": 1,
          "maxItems": 1,
          "items": {
            "title": "text",
            "type": "text",
            "format": "text",
            "maxLength": 1,
            "pattern": "text",
            "description": "text",
            "hierarchy": "text",
            "parent": "text",
            "child": "text",
            "minItems": 1,
            "maxItems": 1,
            "items": "[Circular Reference]",
            "enum": [
              "text"
            ]
          },
          "enum": [
            "text"
          ]
        },
        "enum": [
          "text"
        ]
      },
      "enum": [
        "text"
      ]
    }
  }
}

Retrieve features in the feature collection

get

/collections/{collectionId}/items

Authorizations
Path parameters
collectionIdenumrequired

A known collection ID.

Example: bld-fts-building-1
Options: bld-fts-building-1, bld-fts-building-2, bld-fts-building-3, bld-fts-buildingline-1, bld-fts-buildingpart-1, bld-fts-buildingpart-2, gnm-fts-namedarea-1, gnm-fts-namedpoint-1, gnm-fts-namedroadjunction-1, lnd-fts-land-1, lnd-fts-land-2, lnd-fts-land-3, lnd-fts-landform-1, lnd-fts-landformline-1, lnd-fts-landformpoint-1, lnd-fts-landpoint-1, lus-fts-site-1, lus-fts-site-2, lus-fts-siteaccesslocation-1, lus-fts-siteroutingpoint-1, str-fts-compoundstructure-1, str-fts-compoundstructure-2, str-fts-fieldboundary-1, str-fts-structure-1, str-fts-structure-2, str-fts-structure-3, str-fts-structureline-1, str-fts-structurepoint-1, trn-fts-cartographicraildetail-1, trn-fts-rail-1, trn-fts-rail-2, trn-fts-rail-3, trn-fts-roadline-1, trn-fts-roadtrackorpath-1, trn-fts-roadtrackorpath-2, trn-fts-roadtrackorpath-3, trn-ntwk-connectinglink-1, trn-ntwk-connectingnode-1, trn-ntwk-ferrylink-1, trn-ntwk-ferrynode-1, trn-ntwk-ferryterminal-1, trn-ntwk-path-1, trn-ntwk-pathlink-1, trn-ntwk-pathnode-1, trn-ntwk-pavementlink-1, trn-ntwk-railwaylink-1, trn-ntwk-railwaylinkset-1, trn-ntwk-railwaynode-1, trn-ntwk-road-1, trn-ntwk-roadjunction-1, trn-ntwk-roadlink-1, trn-ntwk-roadlink-2, trn-ntwk-roadlink-3, trn-ntwk-roadnode-1, trn-ntwk-street-1, trn-ntwk-tramonroad-1, trn-rami-averageandindicativespeed-1, trn-rami-highwaydedication-1, trn-rami-maintenancearea-1, trn-rami-maintenanceline-1, trn-rami-maintenancepoint-1, trn-rami-reinstatementarea-1, trn-rami-reinstatementline-1, trn-rami-reinstatementpoint-1, trn-rami-restriction-1, trn-rami-routinghazard-1, trn-rami-routingstructure-1, trn-rami-specialdesignationarea-1, trn-rami-specialdesignationline-1, trn-rami-specialdesignationpoint-1, wtr-fts-intertidalline-1, wtr-fts-tidalboundary-1, wtr-fts-water-1, wtr-fts-water-2, wtr-fts-water-3, wtr-fts-waterpoint-1, wtr-ntwk-waterlink-1, wtr-ntwk-waterlinkset-1, wtr-ntwk-waternode-1
Query parameters
bboxnumber[]

The optional bbox parameter specifies a supported bounding box. Only features that have a geometry that intersects the bounding box are selected. The bounding box is provided as four comma-separated numbers: Lower left corner, coordinate axis 1 (e.g. min x axis) Lower left corner, coordinate axis 2 (e.g. min y axis) Upper right corner, coordinate axis 1 (e.g. max x axis) Upper right corner, coordinate axis 2 (e.g. max y axis)The default coordinate reference system of the values is WGS 84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84) unless a different coordinate reference system is specified in the parameter bbox-crs.

Example: [-0.183678,51.474968,-0.068321,51.540143]
bbox-crsenum

The coordinate reference system of the bbox parameter. It must be a 2D coordinate reference system supported by the collection. Default is WGS84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84).

Options: http://www.opengis.net/def/crs/OGC/1.3/CRS84, http://www.opengis.net/def/crs/EPSG/0/27700, http://www.opengis.net/def/crs/EPSG/0/4326, http://www.opengis.net/def/crs/EPSG/0/3857
crsenum

The coordinate reference system of the response geometries. It must be a coordinate reference system supported by the collection. Default is WGS84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84).

Options: http://www.opengis.net/def/crs/OGC/1.3/CRS84, http://www.opengis.net/def/crs/EPSG/0/27700, http://www.opengis.net/def/crs/EPSG/0/4326, http://www.opengis.net/def/crs/EPSG/0/3857, http://www.opengis.net/def/crs/EPSG/0/7405
datetimestring

Either a local date, a date-time with UTC time zone (Z) or an open or closed interval. Open ranges in time intervals at the start or end are supported using a double-dot (..) or an empty string for the start/end. Date and time expressions adhere to RFC 3339. Examples:A date-time: '2021-12-12T23:20:50Z'A closed interval: '2021-12-12T00:00:00Z/2021-12-18T12:31:12Z'Open intervals: '2021-12-12T00:00:00Z/..' or '../2021-12-18T12:31:12Z'An interval until now: '2018-02-12T00:00:00Z/..' or '2018-02-12T00:00:00Z/'Selects features that have a temporal property that intersects the value of the parameter.

Example: 2018-02-12T00:00:00Z/..
limitinteger

The optional limit parameter limits the number of items that are presented in the response document. Minimum = 1. Maximum = 100. Default = 100.

offsetinteger

The optional offset parameter skips past the specified number of features in the collection. Minimum = 0. Default = 0.

filterstring

The optional filter parameter is a filter expression in CQL format which is applied when retrieving resources to determine which resources are included in a result set.

filter-crsenum

Specify which of the supported CRSs to use to encode geometric values in a filter expression. It must be a 2D coordinate reference system supported by the collection. Default is WGS84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84).

Options: http://www.opengis.net/def/crs/OGC/1.3/CRS84, http://www.opengis.net/def/crs/EPSG/0/27700, http://www.opengis.net/def/crs/EPSG/0/4326, http://www.opengis.net/def/crs/EPSG/0/3857
filter-langenum

The optional filter-lang parameter is the specific language used for the filter parameter. Default = cql-text

Options: cql-text
Responses
curl -L \
  --url 'https://api.os.uk/features/ngd/ofa/v1/collections/{collectionId}/items'
{
  "type": "text",
  "links": [
    {
      "href": "text",
      "rel": "text",
      "type": "text",
      "title": "text"
    }
  ],
  "timeStamp": "2025-02-08T22:00:28.303Z",
  "features": [
    {
      "id": "text",
      "type": "text",
      "geometry": {
        "type": "text",
        "coordinates": [
          {
            "x": 1,
            "y": 1
          }
        ]
      },
      "properties": {
        "ANY_ADDITIONAL_PROPERTY": {}
      }
    }
  ]
}

Retrieve a feature from the feature collection

get

/collections/{collectionId}/items/{featureId}

Authorizations
Path parameters
collectionIdenumrequired

A known collection ID.

Example: bld-fts-building-1
Options: bld-fts-building-1, bld-fts-building-2, bld-fts-building-3, bld-fts-buildingline-1, bld-fts-buildingpart-1, bld-fts-buildingpart-2, gnm-fts-namedarea-1, gnm-fts-namedpoint-1, gnm-fts-namedroadjunction-1, lnd-fts-land-1, lnd-fts-land-2, lnd-fts-land-3, lnd-fts-landform-1, lnd-fts-landformline-1, lnd-fts-landformpoint-1, lnd-fts-landpoint-1, lus-fts-site-1, lus-fts-site-2, lus-fts-siteaccesslocation-1, lus-fts-siteroutingpoint-1, str-fts-compoundstructure-1, str-fts-compoundstructure-2, str-fts-fieldboundary-1, str-fts-structure-1, str-fts-structure-2, str-fts-structure-3, str-fts-structureline-1, str-fts-structurepoint-1, trn-fts-cartographicraildetail-1, trn-fts-rail-1, trn-fts-rail-2, trn-fts-rail-3, trn-fts-roadline-1, trn-fts-roadtrackorpath-1, trn-fts-roadtrackorpath-2, trn-fts-roadtrackorpath-3, trn-ntwk-connectinglink-1, trn-ntwk-connectingnode-1, trn-ntwk-ferrylink-1, trn-ntwk-ferrynode-1, trn-ntwk-ferryterminal-1, trn-ntwk-path-1, trn-ntwk-pathlink-1, trn-ntwk-pathnode-1, trn-ntwk-pavementlink-1, trn-ntwk-railwaylink-1, trn-ntwk-railwaylinkset-1, trn-ntwk-railwaynode-1, trn-ntwk-road-1, trn-ntwk-roadjunction-1, trn-ntwk-roadlink-1, trn-ntwk-roadlink-2, trn-ntwk-roadlink-3, trn-ntwk-roadnode-1, trn-ntwk-street-1, trn-ntwk-tramonroad-1, trn-rami-averageandindicativespeed-1, trn-rami-highwaydedication-1, trn-rami-maintenancearea-1, trn-rami-maintenanceline-1, trn-rami-maintenancepoint-1, trn-rami-reinstatementarea-1, trn-rami-reinstatementline-1, trn-rami-reinstatementpoint-1, trn-rami-restriction-1, trn-rami-routinghazard-1, trn-rami-routingstructure-1, trn-rami-specialdesignationarea-1, trn-rami-specialdesignationline-1, trn-rami-specialdesignationpoint-1, wtr-fts-intertidalline-1, wtr-fts-tidalboundary-1, wtr-fts-water-1, wtr-fts-water-2, wtr-fts-water-3, wtr-fts-waterpoint-1, wtr-ntwk-waterlink-1, wtr-ntwk-waterlinkset-1, wtr-ntwk-waternode-1
featureIdstringrequired

A feature ID which is the identifier(id) for the feature.

Example: 11111111-1111-1111-1111-111111111111
Query parameters
crsenum

The coordinate reference system of the response geometries. It must be a coordinate reference system supported by the collection. Default is WGS84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84).

Options: http://www.opengis.net/def/crs/OGC/1.3/CRS84, http://www.opengis.net/def/crs/EPSG/0/27700, http://www.opengis.net/def/crs/EPSG/0/4326, http://www.opengis.net/def/crs/EPSG/0/3857, http://www.opengis.net/def/crs/EPSG/0/7405
Responses
curl -L \
  --url 'https://api.os.uk/features/ngd/ofa/v1/collections/{collectionId}/items/{featureId}'
{
  "id": "text",
  "type": "text",
  "geometry": {
    "type": "text",
    "coordinates": [
      {
        "x": 1,
        "y": 1
      }
    ]
  },
  "properties": {
    "ANY_ADDITIONAL_PROPERTY": {}
  }
}

Use of CQL Operators

The OS NGD API – Features supports a generic filter grammar called Common Query Language (CQL) for specifying enhanced filter criteria to return a subset of features. CQL is written using a familiar text-based syntax, making it more readable and better-suited for creating complex filters.

The following table documents the supported operators:

Operator Type
Supported Operators

Comparison

EQUAL TO [ = ], LESS THAN [ < ], LESS THAN OR EQUAL TO [ <= ], GREATER THAN [ > ], GREATER THAN OR EQUAL TO [ >= ], ISNULL, LIKE, IN, BETWEEN

Logical

AND, OR, NOT [ <> ]

Array

AEQUALS, ACONTAINS, ACONTAINEDBY, AOVERLAPS

Spatial

INTERSECTS

Last updated

Was this helpful?