Open Geospatial Consortium (OGC) Data Collections API
The Data Collections API from Open Geospatial Consortium (OGC) — 2 operation(s) for data collections.
The Data Collections API from Open Geospatial Consortium (OGC) — 2 operation(s) for data collections.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/ogc-data-collections-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Ogc Data Collections API
version: '1.0'
contact:
name: Open Geospatial Consortium
email: info@ogc.org
license:
name: OGC License
url: http://www.opengeospatial.org/legal/
description: 'Operations tagged Data Collections across 3 of this provider''s published API definitions: ogc-dggs-1-0-openapi-ogcapi-dggs-1-bundled.json, ogc-maps-part1-1-0-openapi-ogcapi-maps-1-bundled.json, ogc-tiles-part1-1-0-openapi-ogcapi-tiles-1-bundled.json. Each path carries the servers of the definition it was published in.'
servers:
- description: Example OGC API - DGGS server
url: https://maps.gnosis.earth/ogcapi
- description: Example OGC API - Tiles server
url: https://maps.ecere.com/ogcapi
tags:
- name: Data Collections
paths:
/collections:
get:
tags:
- Data Collections
operationId: getCollectionsList
summary: Retrieve the list of geospatial data collections available from this service.
parameters:
- $ref: '#/components/parameters/datetime'
- $ref: '#/components/parameters/bbox'
- name: limit
in: query
description: 'The optional limit parameter limits the number of collections that are presented in the response document.
Only items are counted that are on the first level of the collection in the response document. Nested objects contained within the explicitly requested items shall not be counted.
* Minimum = 1 * Maximum = 10000 * Default = 10'
required: false
schema:
type: integer
minimum: 1
maximum: 10000
default: 10
style: form
explode: false
- $ref: '#/components/parameters/f-metadata'
responses:
'200':
$ref: '#/components/responses/CollectionsList'
servers:
- description: Example OGC API - DGGS server
url: https://maps.gnosis.earth/ogcapi
/collections/{collectionId}:
get:
tags:
- Data Collections
operationId: getCollection
summary: Retrieve the description of a collection available from this service.
parameters:
- $ref: '#/components/parameters/collectionId-all'
- $ref: '#/components/parameters/f-metadata'
responses:
'200':
$ref: '#/components/responses/Collection'
servers:
- description: Example OGC API - DGGS server
url: https://maps.gnosis.earth/ogcapi
components:
schemas:
extent:
title: Extent with Uniform Additional Dimensions Schema
description: 'This extent schema includes optional additional dimensions, but will still validate for
objects not conforming to UAD.'
allOf:
- type: object
description: 'The extent of the data in the collection. In the Core only spatial and temporal
extents are specified. Extensions may add additional members to represent other
extents, for example, thermal or pressure ranges.
The first item in the array describes the overall extent of
the data. All subsequent items describe more precise extents,
e.g., to identify clusters of data.
Clients only interested in the overall extent will only need to
access the first item in each array.'
properties:
spatial:
description: The spatial extent of the data in the collection.
type: object
properties:
bbox:
description: 'One or more bounding boxes that describe the spatial extent of the dataset.
The first bounding box describes the overall spatial
extent of the data. All subsequent bounding boxes describe
more precise bounding boxes, e.g., to identify clusters of data.
Clients only interested in the overall spatial extent will
only need to access the first item in each array.'
type: array
minItems: 1
items:
description: 'Each bounding box is provided as four or six numbers, depending on
whether the coordinate reference system includes a vertical axis
(height or depth):
* Lower left corner, coordinate axis 1
* Lower left corner, coordinate axis 2
* Minimum value, coordinate axis 3 (optional)
* Upper right corner, coordinate axis 1
* Upper right corner, coordinate axis 2
* Maximum value, coordinate axis 3 (optional)
If the value consists of four numbers, the coordinate reference system is
WGS 84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84)
unless a different coordinate reference system is specified in `crs` property.
If the value consists of six numbers, the coordinate reference system is WGS 84
longitude/latitude/ellipsoidal height (http://www.opengis.net/def/crs/OGC/0/CRS84h)
unless a different coordinate reference system is specified in `crs` property.
For WGS 84 longitude/latitude the values are in most cases the sequence of
minimum longitude, minimum latitude, maximum longitude and maximum latitude.
However, in cases where the box spans the antimeridian the first value
(west-most box edge) is larger than the third value (east-most box edge).
If the vertical axis is included, the third and the sixth number are
the bottom and the top of the 3-dimensional bounding box.
If a feature has multiple spatial geometry properties, it is the decision of the
server whether only a single spatial geometry property is used to determine
the extent or all relevant geometries.'
type: array
oneOf:
- minItems: 4
maxItems: 4
- minItems: 6
maxItems: 6
items:
type: number
example:
- -180
- -90
- 180
- 90
storageCrsBbox:
description: 'One or more bounding boxes that describe the spatial extent of the dataset in the storage (native) CRS (`storageCrs` property).
The first bounding box describes the overall spatial
extent of the data. All subsequent bounding boxes describe
more precise bounding boxes, e.g., to identify clusters of data.
Clients only interested in the overall spatial extent will
only need to access the first item in each array.'
type: array
minItems: 1
items:
description: 'Each bounding box is provided as four or six numbers, depending on
whether the coordinate reference system includes a vertical axis
(height or depth):
* Lower left corner, coordinate axis 1
* Lower left corner, coordinate axis 2
* Minimum value, coordinate axis 3 (optional)
* Upper right corner, coordinate axis 1
* Upper right corner, coordinate axis 2
* Maximum value, coordinate axis 3 (optional)'
type: array
oneOf:
- minItems: 4
maxItems: 4
- minItems: 6
maxItems: 6
items:
type: number
example:
- -180
- -90
- 180
- 90
crs:
description: 'Coordinate reference system of the coordinates of the `bbox` property.
The default reference system is WGS 84 longitude/latitude.
WGS 84 longitude/latitude/ellipsoidal height for coordinates with height.
For non-terrestrial coordinate reference system, another CRS may be specified.'
type: string
enum:
- http://www.opengis.net/def/crs/OGC/1.3/CRS84
- http://www.opengis.net/def/crs/OGC/0/CRS84h
default: http://www.opengis.net/def/crs/OGC/1.3/CRS84
grid:
description: 'Provides information about the limited availability of data within the collection organized
as a grid (regular or irregular) along each spatial dimension.'
type: array
minItems: 2
maxItems: 3
items:
$ref: '#/components/schemas/grid'
temporal:
description: The temporal extent of the features in the collection.
type: object
properties:
interval:
description: 'One or more time intervals that describe the temporal extent of the dataset.
In the Core only a single time interval is supported.
Extensions may support multiple intervals.
The first time interval describes the overall
temporal extent of the data. All subsequent time intervals describe
more precise time intervals, e.g., to identify clusters of data.
Clients only interested in the overall extent will only need
to access the first item in each array.'
type: array
minItems: 1
items:
description: 'Begin and end times of the time interval. The timestamps are in the
temporal coordinate reference system specified in `trs`. By default
this is the Gregorian calendar, expressed using RFC 3339 section 5.6.
Note that these times may be specified using time zone offsets to UTC time other than zero.
The value `null` for start or end time is supported and indicates a half-bounded time interval.'
type: array
minItems: 2
maxItems: 2
items:
type:
- string
- 'null'
format: date-time
example:
- '2011-11-11T12:22:11Z'
- '2011-11-11T08:22:11-04:00'
- null
trs:
description: 'Coordinate reference system of the coordinates in the temporal extent
(property `interval`). The default reference system is the Gregorian calendar.
In the Core this is the only supported temporal coordinate reference system.
Extensions may support additional temporal coordinate reference systems and add
additional enum values.'
type: string
enum:
- http://www.opengis.net/def/uom/ISO-8601/0/Gregorian
default: http://www.opengis.net/def/uom/ISO-8601/0/Gregorian
grid:
$ref: '#/components/schemas/grid'
- anyOf:
- type: object
additionalProperties:
description: The domain intervals for any additional dimensions of the extent (envelope) beyond those described in temporal and spatial.
type: object
oneOf:
- required:
- interval
- definition
- required:
- interval
- trs
- required:
- interval
- vrs
properties:
interval:
description: 'One or more intervals that describe the extent for this dimension of the dataset.
The value `null` is supported and indicates an unbounded or half-bounded interval.
The first interval describes the overall extent of the data for this dimension.
All subsequent intervals describe more precise intervals, e.g., to identify clusters of data.
Clients only interested in the overall extent will only need
to access the first item (a pair of lower and upper bound values).'
type: array
minItems: 1
items:
description: 'Lower and upper bound values of the interval. The values
are in the coordinate reference system specified in `crs`, `trs` or `vrs`.'
type: array
minItems: 2
maxItems: 2
items:
oneOf:
- type:
- string
- 'null'
- type: number
example:
- '2011-11-11T12:22:11Z'
- '2011-11-11T08:22:11-04:00'
- 32.5
- null
trs:
type: string
description: temporal coordinate reference system (e.g. as defined by Features for 'temporal')
vrs:
type: string
description: vertical coordinate reference system (e.g. as defined in EDR for 'vertical')
grid:
$ref: '#/components/schemas/grid'
definition:
type: string
format: uri
description: A URI to the definition of the measured or observed property corresponding to this dimension.
unit:
type: string
description: The unit of measure in which the interval and/or grid values are expressed.
unitLang:
type: string
default: UCUM
description: The language (or vocabulary) in which the unit is expressed (defaults to "UCUM" if not specified).
variableType:
description: The type of variable which may inform correct interpretation and interpolation methods
type: string
enum:
- continuous
- numericalOrdinal
- numericalNominal
- categoricalOrdinal
- categoricalNominal
numberMatched:
description: The number of elements in the response that match the selection parameters like `bbox`.
type: integer
minimum: 0
example: 127
regularGrid:
type: object
description: Regular grid with samples spaced at equal intervals
required:
- resolution
- firstCoordinate
properties:
resolution:
description: Resolution of regularly gridded data along the dimension in the collection
oneOf:
- type:
- string
- 'null'
- type: number
example:
- 0.0006866455078
- PT1H
firstCoordinate:
description: First coordinate where a regular grid begins, with subsequent coordinates adding `resolution` unit at each step
oneOf:
- type:
- string
- 'null'
- type: number
example: -180
relativeBounds:
description: Distance in units from coordinate to the lower and upper bounds of each cell for regular grids, describing the geometry of the cells
type: array
minItems: 2
maxItems: 2
items:
oneOf:
- type:
- string
- 'null'
- type: number
example:
- -0.5
- 0.5
role:
description: The list of duties, job functions or permissions assigned by the system and associated with the context of this member.
type: array
minItems: 1
items:
type: string
grid:
type: object
description: Provides information about the limited availability of data within the collection organized as a grid (regular or irregular) along the dimension.
allOf:
- type: object
required:
- cellsCount
properties:
cellsCount:
description: Number of samples available along the dimension for data organized as a regular or irregular grid.
type: integer
example: 50
- oneOf:
- $ref: '#/components/schemas/regularGrid'
- $ref: '#/components/schemas/irregularGrid'
timeStamp:
description: This property indicates the time and date when the response was generated using RFC 3339 notation.
type: string
format: date-time
example: '2017-08-17T08:05:32Z'
irregularGrid:
type: object
description: Irregular grid with samples spaced at different intervals
required:
- coordinates
properties:
coordinates:
description: 'List of coordinates along the dimension for which data organized as an irregular grid in the collection is available
(e.g., 2, 10, 80, 100).'
type: array
minItems: 1
items:
oneOf:
- type:
- string
- 'null'
- type: number
example:
- - 2
- 10
- 80
- 100
- - '2020-11-12T12:15:00Z'
- '2020-11-12T12:30:00Z'
- '2020-11-12T12:45:00Z'
boundsCoordinates:
description: Coordinates of the lower and upper bounds of each cell in absolute units for irregular grids describing the geometry each cell
type: array
minItems: 1
items:
type: array
minItems: 2
maxItems: 2
items:
oneOf:
- type:
- string
- 'null'
- type: number
example:
- - -180
- -179
- - -179
- -178
numberReturned:
description: 'The number of elements in the response.
A server may omit this information, if the information about the
number of elements is not known or difficult to compute.
If the value is provided, the value shall be identical to the number
of elements in the response.'
type: integer
minimum: 0
example: 10
dataType:
anyOf:
- type: string
- type: string
enum:
- map
- vector
- coverage
link:
type: object
required:
- href
- rel
properties:
href:
type: string
description: Supplies the URI to a remote resource (or resource fragment).
example: http://data.example.com/buildings/123
rel:
type: string
description: The type or semantics of the relation.
example: alternate
type:
type: string
description: A hint indicating what the media type of the result of dereferencing the link should be.
example: application/geo+json
hreflang:
type: string
description: A hint indicating what the language of the result of dereferencing the link should be.
example: en
title:
type: string
description: Used to label the destination of a link such that it can be used as a human-readable identifier.
example: Trierer Strasse 70, 53115 Bonn
length:
type: integer
collectionDesc:
type: object
required:
- id
- links
properties:
id:
type: string
description: identifier of the collection used, for example, in URIs
example: dem
title:
type: string
description: human readable title of the collection
example: Digital Elevation Model
description:
type: string
description: a description of the data in the collection
example: A Digital Elevation Model.
attribution:
type: string
title: Attribution for the collection
description: 'Attribution for the collection that can contain markup text whose format may be indicated in the `attributionMediaType` property. That format can be either plain text (`text/plain`), HTML (`text/html`) or https://commonmark.org/[CommonMark] (`text/markdown`).
If the ''attributionMediaType'' indicates something other than `text/plain`, the `attribution` element string should be interpreted by a markup parser selected based on that media type to be presented to the user
(e.g., `text/markdown` will be parsed by a library supporting CommonMark). By allowing markup, the attribution string can import images (e.g., organization logos) and format the text (e.g., the name of the organization in italics).'
attributionMediaType:
title: Media type of the attribution
description: 'Media type for the markup language of the attribution: It can be either plain text (`text/plain`), HTML (`text/html`) or https://commonmark.org/[CommonMark] (`text/markdown`).'
enum:
- text/plain
- text/html
- text/markdown
accessConstraints:
description: 'Restrictions on the availability of the collection that the user needs to be aware of before using or redistributing the data:
* unclassified: Available for general disclosure
* restricted: Not for general disclosure
* confidential: Available for someone who can be entrusted with information
* secret: Kept or meant to be kept private, unknown, or hidden from all but a select group of people
* topSecret: Of the highest secrecy'
enum:
- unclassified
- restricted
- confidential
- secret
- topSecret
publisher:
type: string
description: Organization or individual responsible for making the data available
contacts:
type: array
description: A list of contacts qualified by their role(s) in association to the collection.
minItems: 1
items:
type: object
description: 'Identification of, and means of communication with, person responsible
for the resource.'
anyOf:
- required:
- name
- required:
- organization
properties:
identifier:
type: string
description: A value uniquely identifying a contact.
name:
type: string
description: The name of the responsible person.
position:
type: string
description: The name of the role or position of the responsible person taken from the organization's formal organizational hierarchy or chart.
organization:
type: string
description: Organization/affiliation of the contact.
logo:
description: Graphic identifying a contact. The link relation should be `icon` and the media type should be an image media type.
allOf:
- $ref: '#/components/schemas/link'
- type: object
required:
- rel
- type
properties:
rel:
enum:
- icon
phones:
type: array
description: Telephone numbers at which contact can be made.
items:
type: object
required:
- value
properties:
value:
type: string
description: The value is the phone number itself.
pattern: ^\+[1-9]{1}[0-9]{3,14}$
example: '+14165550142'
roles:
allOf:
- description: The type of phone number (e.g. home, work, fax, etc.).
- $ref: '#/components/schemas/role'
emails:
type: array
description: Email addresses at which contact can be made.
items:
type: object
required:
- value
properties:
value:
type: string
description: The value is the email number itself.
format: email
roles:
allOf:
- description: The type of email (e.g. home, work, etc.).
- $ref: '#/components/schemas/role'
addresses:
type: array
description: Physical location at which contact can be made.
items:
type: object
properties:
deliveryPoint:
type: array
description: Address lines for the location.
items:
type: string
city:
type: string
description: City for the location.
administrativeArea:
type: string
description: State or province of the location.
postalCode:
type: string
description: ZIP or other postal code.
country:
type: string
description: Country of the physical address. ISO 3166-1 is recommended.
roles:
allOf:
- description: The type of address (e.g. office, home, etc.).
- $ref: '#/components/schemas/role'
links:
type: array
description: On-line information about the contact.
items:
allOf:
- $ref: '#/components/schemas/link'
- type: object
required:
- type
hoursOfService:
type: string
description: Time period when the contact can be contacted.
example: 'Hours: Mo-Fr 10am-7pm Sa 10am-22pm Su 10am-21pm'
contactInstructions:
type: string
description: 'Supplemental instructions on how or when to contact the
responsible party.'
roles:
allOf:
- description: The set of named duties, job functions and/or permissions associated with this contact. (e.g. developer, administrator, etc.).
- $ref: '#/components/schemas/role'
license:
type: string
description: The legal provisions under which the data of this collection is made available.
rights:
type: string
description: A statement that concerns all rights not addressed by the license such as a copyright statement.
formats:
description: A list of formats in which the data of this collection is distributed
type: array
items:
type: object
anyOf:
- required:
- name
- required:
- mediaType
properties:
name:
type: string
mediaType:
type: string
keywords:
type: array
description: The topic or topics of the resource. Typically represented using free-form keywords, tags, key phrases, or classification codes.
items:
type: string
themes:
type: array
description: A knowledge organization system used to classify the resource.
minItems: 1
items:
type: object
required:
- concepts
- scheme
properties:
concepts:
type: array
description: One or more entity/concept identifiers from this knowledge system. it is recommended that a resolvable URI be used for each entity/concept identifier.
minItems: 1
items:
type: object
required:
- id
properties:
id:
type: string
description: An identifier for the concept.
title:
type: string
description: A human readable title for the concept.
description:
type: string
description: A human readable description for the concept.
url:
type: string
format: uri
description: A URI providing further description of the concept.
scheme:
type: string
description: An identifier for the knowledge organization system used to classify the resource. It is recommended that the identifier be a resolvable URI. The list of schemes used in a searchable catalog can be determined by inspecting the server's OpenAPI document or, if the server implements CQL2, by exposing a queryable (e.g. named `scheme`) and enumerating the list of schemes in the queryable's schema definition.
resourceLanguages:
type: array
description: The list of languages in which the data of this collection is available.
items:
type: object
description: The language used for textual values in this record.
required:
- code
properties:
code:
type: string
description: The language tag as per RFC-5646.
example: el
name:
type: string
minLength: 1
description: The untranslated name of of the language.
example: Ελληνικά
alternate:
type: string
description: The name of the language in another well-understood language, usually English.
example: Greek
dir:
type: string
description: The direction for text in this language. The default, `ltr` (left-to-right), represents the most common situation. However, care should be taken to set the value of `dir` appropriately if the language direction is not `ltr`. Other values supported are `rtl` (right-to-left), `ttb` (top-to-bottom), and `btt` (bottom-to-top).
enum:
- ltr
- rtl
- ttb
- btt
default: ltr
links:
type: array
example:
- href: http://data.example.org/collections/dem?f=json
rel: self
type: application/json
title: Digital Elevation Model
- href: http://data.example.org/collections/dem?f=html
rel: alternate
type: application/json
title: Digital Elevation Model
- href: http://data.example.org/collections/dem/coverage
rel: coverage
type: image/tiff; application=geotiff
title: Digital Elevation Model
- href: http://data.example.org/collections/dem/coverage/domainset
rel: domainset
type: application/json
title: Digital Elevation Model
- href: http://data.example.org/collections/dem/coverage/rangetype
rel: rangetype
type: application/json
title: Digital Elevation Model
- href: http://data.example.org/collections/dem/coverage/metadata
rel: metadata
type: application/json
title: Digital Elevation Model
items:
$ref: '#/components/schemas/link'
itemType:
description: indicator about th
# --- truncated at 32 KB (90 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ogc/refs/heads/main/openapi/ogc-data-collections-api-openapi.yml