Open Geospatial Consortium (OGC) Temporal Geometry API
The spatial change over time (temporal geometry), representing the movement of the rigid or nonrigid body of a feature.
The spatial change over time (temporal geometry), representing the movement of the rigid or nonrigid body of a feature.
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-temporalgeometry-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 Temporal Geometry API
version: 1.0.0
contact:
name: Open Geospatial Consortium
email: info@ogc.org
license:
name: OGC License
url: https://www.ogc.org/legal/
x-logo:
url: https://www.ogc.org/pub/www/files/OGC_Logo_2D_Blue_x_0_0.png
description: 'Operations tagged TemporalGeometry across 3 of this provider''s published API definitions: ogc-movingfeatures-part1-1-0-openapi-ogcapi-movingfeatures-1-bundled.json, ogc-movingfeatures-part1-1-0-openapi-ogcapi-movingfeatures-1-bundled.yaml, ogc-movingfeatures-part1-1-0-openapi-openapi-movingfeatures-1.yaml. Each path carries the servers of the definition it was published in.'
tags:
- name: TemporalGeometry
description: The spatial change over time (temporal geometry), representing the movement of the rigid or nonrigid body of a feature.
paths:
/collections/{collectionId}/items/{mFeatureId}/tgsequence:
get:
operationId: retrieveTemporalGeometrySequence
summary: Retrieve the movement data of the single moving feature
description: 'A user can retrieve only the movement data of a moving feature with id `mFeatureId` by simple filtering and a limit.
'
tags:
- TemporalGeometry
parameters:
- $ref: '#/components/parameters/collectionId'
- $ref: '#/components/parameters/mFeatureId'
- $ref: '#/components/parameters/bbox'
- $ref: '#/components/parameters/datetime'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/leaf'
- $ref: '#/components/parameters/subtrajectory'
responses:
'200':
$ref: '#/components/responses/TemporalGeometrySequence'
'500':
$ref: '#/components/responses/ServerError'
post:
operationId: insertTemporalPrimitiveGeometry
summary: Add movement data into the moving feature
description: 'A user SHOULD add more movement data into a moving feature with id `mFeatureId`.
The request body schema SHALL follows the [TemporalPrimitiveGeometry object](https://docs.ogc.org/is/19-045r3/19-045r3.html#tprimitive) in the OGC MF-JSON.
'
tags:
- TemporalGeometry
parameters:
- $ref: '#/components/parameters/collectionId'
- $ref: '#/components/parameters/mFeatureId'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/temporalPrimitiveGeometry'
example:
type: MovingPoint
datetimes:
- '2011-07-14T22:01:06Z'
- '2011-07-14T22:01:07Z'
- '2011-07-14T22:01:08Z'
- '2011-07-14T22:01:09Z'
- '2011-07-14T22:01:10Z'
coordinates:
- - 139.757083
- 35.627701
- 0.5
- - 139.757399
- 35.627701
- 2
- - 139.757555
- 35.627688
- 4
- - 139.757651
- 35.627596
- 4
- - 139.757716
- 35.627483
- 4
interpolation: Linear
base:
type: glTF
href: https://www.opengis.net/spec/movingfeatures/json/1.0/prism/example/car3dmodel.gltf
orientations:
- scales:
- 1
- 1
- 1
angles:
- 0
- 0
- 0
- scales:
- 1
- 1
- 1
angles:
- 0
- 355
- 0
- scales:
- 1
- 1
- 1
angles:
- 0
- 0
- 330
- scales:
- 1
- 1
- 1
angles:
- 0
- 0
- 300
- scales:
- 1
- 1
- 1
angles:
- 0
- 0
- 270
responses:
'201':
description: 'Successful add more movement data into a specified moving feature.
'
headers:
Location:
description: A URI of the newly added resource
schema:
type: string
example: https://data.example.org/collections/mfc-1/items/mf-1/tgsequence/tg-2
'400':
description: A query parameter was not validly used.
'404':
description: '- A collection with the specified id was not found.
- Or a moving feature with the specified id was not found.
'
'500':
$ref: '#/components/responses/ServerError'
/collections/{collectionId}/items/{mFeatureId}/tgsequence/{tGeometryId}:
delete:
operationId: deleteTemporalPrimitiveGeometry
summary: Delete a singe temporal primitive geometry
description: 'The temporal primitive geometry with id `tGeometryId` SHOULD be deleted.
'
tags:
- TemporalGeometry
parameters:
- $ref: '#/components/parameters/collectionId'
- $ref: '#/components/parameters/mFeatureId'
- $ref: '#/components/parameters/tGeometryId'
responses:
'204':
description: Successfully deleted.
'404':
description: '- A collection with the specified id was not found.
- Or a moving feature with the specified id was not found.
- Or a temporal primitive geometry with the specified id was not found.
'
'500':
$ref: '#/components/responses/ServerError'
components:
schemas:
trs:
description: The "trs" member in MovingFeature object
title: MF-JSON TRS
oneOf:
- $ref: '#/components/schemas/linkedCRS'
- type:
- object
- 'null'
required:
- type
- properties
properties:
type:
type: string
enum:
- Name
properties:
type: object
additionalProperties: false
required:
- name
properties:
name:
type: string
default: urn:ogc:data:time:iso8601
temporalGeometrySequence:
type: object
required:
- type
- geometrySequence
properties:
type:
type: string
enum:
- TemporalGeometrySequence
geometrySequence:
type: array
items:
$ref: '#/components/schemas/temporalPrimitiveGeometry'
links:
type: array
items:
$ref: '#/components/schemas/link'
timeStamp:
type: string
format: date-time
numberMatched:
type: integer
minimum: 0
numberReturned:
type: integer
minimum: 0
motionCurve:
description: MF-JSON Prism encoding MotionCurve Object
title: MF-JSON MotionCurve
oneOf:
- type: string
enum:
- Discrete
- Step
- Linear
- Quadratic
- Cubic
default: Linear
- type: string
format: uri
temporalPrimitiveGeometry:
description: MF-JSON Prism encoding TemporalPrimitiveGeometry Object
title: MF-JSON TemporalPrimitiveGeometry
type: object
required:
- type
- coordinates
- datetimes
properties:
type:
type: string
enum:
- MovingPoint
- MovingLineString
- MovingPolygon
- MovingPointCloud
coordinates:
type: array
minItems: 2
items:
oneOf:
- title: pointGeoJSON coordinates
type: array
minItems: 2
items:
type: number
- title: linestringGeoJSON coordinates
type: array
minItems: 2
items:
type: array
minItems: 2
items:
type: number
- title: polygonGeoJSON coordinates
type: array
items:
type: array
minItems: 4
items:
type: array
minItems: 2
items:
type: number
- title: multipointGeoJSON coordinates
type: array
items:
type: array
minItems: 2
items:
type: number
datetimes:
type: array
uniqueItems: true
minItems: 2
items:
type: string
interpolation:
$ref: '#/components/schemas/motionCurve'
base:
type:
- object
- 'null'
required:
- href
- type
properties:
href:
type: string
format: uri
type:
type: string
orientations:
type:
- array
- 'null'
items:
type: object
required:
- scales
- angles
properties:
scales:
type: array
oneOf:
- minItems: 2
maxItems: 2
- minItems: 3
maxItems: 3
items:
type: number
angles:
type: array
oneOf:
- minItems: 2
maxItems: 2
- minItems: 3
maxItems: 3
items:
type: number
crs:
$ref: '#/components/schemas/crs'
trs:
$ref: '#/components/schemas/trs'
namedCRS:
description: MF-JSON Prism encoding NamedCRS Object
title: MF-JSON NamedCRS
type:
- object
- 'null'
required:
- type
- properties
properties:
type:
type: string
enum:
- Name
properties:
type: object
additionalProperties: false
required:
- name
properties:
name:
type: string
default: urn:ogc:def:crs:OGC:1.3:CRS84
exception:
type: object
required:
- code
properties:
code:
type: string
description:
type: string
link:
type: object
required:
- href
- rel
properties:
href:
type: string
example: http://data.example.com/buildings/123
rel:
type: string
example: alternate
type:
type: string
example: application/geo+json
hreflang:
type: string
example: en
title:
type: string
example: Trierer Strasse 70, 53115 Bonn
length:
type: integer
linkedCRS:
description: MF-JSON Prism encoding LinkedCRS Object
title: MF-JSON LinkedCRS
type:
- object
- 'null'
required:
- type
- properties
properties:
type:
type: string
enum:
- Link
properties:
type: object
required:
- href
- type
properties:
href:
type: string
format: uri
type:
type: string
crs:
description: MF-JSON Prism encoding CoordinateReferenceSystem Object
title: MF-JSON CRS
oneOf:
- $ref: '#/components/schemas/namedCRS'
- $ref: '#/components/schemas/linkedCRS'
parameters:
mFeatureId:
name: mFeatureId
in: path
description: local identifier of a moving feature
required: true
schema:
type: string
datetime:
name: datetime
in: query
description: "Either a date-time or an interval. Date and time expressions adhere to RFC 3339. \nIntervals may be bounded or half-bounded (double-dots at start or end).\n\nExamples:\n\n* A date-time: \"2018-02-12T23:20:50Z\"\n* A bounded interval: \"2018-02-12T00:00:00Z/2018-03-18T12:31:12Z\"\n* Half-bounded intervals: \"2018-02-12T00:00:00Z/..\" or \"../2018-03-18T12:31:12Z\"\n\nOnly features that have temporal information that intersects the value of `datetime` are selected.\n\nIf a feature has multiple temporal properties, it is the decision of the server whether only a single temporal property is used to determine the extent or all relevant temporal properties."
required: true
schema:
type: string
style: form
explode: false
subtrajectory:
name: subTrajectory
in: query
required: false
description: "The `subTrajectory` parameter is a boolean value used with the `datetime` parameter.\nIf the `subTrajectory` is \"true\", \n\n* the `datetime` must be a bounded interval, not half-bounded intervals or a date-time. \n* the `datetime` represents a specified time interval (new start time and new end time)\n* only features with a temporal geometry intersecting the given time interval will return.\n \nThe `subTrajectory` query implements *subTrajectory* operation, which is defined in the [OGC Moving Feature Access](https://docs.ogc.org/is/16-120r3/16-120r3.html).\nThis operation returns only a subsequence of temporal geometry within a time interval contained in the `datetime` parameter, using interpolated trajectory according to the `interpolation` property.\n \nIf the `subTrajectory` parameter is provided with a `bbox` parameter, it will only apply to resources that intersect with a `bbox` parameter. \n\nThe `subTrajectory` parameter must not be used with the `leaf` parameter. \nOnly one of these parameters can be used in the HTTP GET operation."
schema:
type: boolean
style: form
explode: false
collectionId:
name: collectionId
in: path
description: local identifier of a collection
required: true
schema:
type: string
tGeometryId:
name: tGeometryId
in: path
description: local identifier of a temporal primitive geometry
required: true
schema:
type: string
leaf:
name: leaf
in: query
required: false
description: "The `leaf` is provided as a sequence of monotonic increasing instants with date-time strings.\nOnly features that have a temporal geometry and property that intersects the given date-time are selected.\n\nThe `leaf` operation implements *_pointAtTime_* operation which defined in the OGC Moving Feature Access.\nThis operation returns only temporal geometry coordinates (or temporal property values) \nat each date-time included in the `leaf` parameter, using interpolated trajectory according to the `interpolation` property.\n\nIf the `leaf` parameter is provided with a `bbox` or (and) a `datetime` parameter, \nit will only apply to resources that intersect with a `bbox` or (and) a `datetime` parameter. \n\nThe `leaf` parameter shall not be used with the `subTrajectory` and `subTemporalValue` parameter. \nOnly one of those parameters can be used in the HTTP GET operation."
schema:
type: array
uniqueItems: true
minItems: 1
items:
type: string
format: date-time
style: form
explode: false
bbox:
name: bbox
in: query
description: "Only features that have a geometry that intersects the bounding box are selected.\nThe bounding box is provided as four or six numbers, depending on whether the\ncoordinate reference system includes a vertical axis (height or depth):\n\n* Lower left corner, coordinate axis 1\n* Lower left corner, coordinate axis 2\n* Minimum value, coordinate axis 3 (optional)\n* Upper right corner, coordinate axis 1\n* Upper right corner, coordinate axis 2\n* Maximum value, coordinate axis 3 (optional)\n\nIf the value consists of four numbers, the coordinate reference system is\nWGS 84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84)\nunless a different coordinate reference system is specified in the parameter `bbox-crs`.\n\nIf the value consists of six numbers, the coordinate reference system is WGS 84 \nlongitude/latitude/ellipsoidal height (http://www.opengis.net/def/crs/OGC/0/CRS84h)\nunless a different coordinate reference system is specified in the parameter `bbox-crs`.\n\nThe query parameter `bbox-crs` is specified in OGC API - Features - Part 2: Coordinate \nReference Systems by Reference.\n\nFor WGS 84 longitude/latitude the values are in most cases the sequence of\nminimum longitude, minimum latitude, maximum longitude and maximum latitude.\nHowever, in cases where the box spans the antimeridian the first value\n(west-most box edge) is larger than the third value (east-most box edge).\n\nIf the vertical axis is included, the third and the sixth number are the\nbottom and the top of the 3-dimensional bounding box.\n\nIf a feature has multiple spatial geometry properties, it is the decision of the\nserver whether only a single spatial geometry property is used to determine\nthe extent or all relevant geometries."
required: false
schema:
type: array
oneOf:
- minItems: 4
maxItems: 4
- minItems: 6
maxItems: 6
items:
type: number
style: form
explode: false
limit:
name: limit
in: query
description: 'The optional limit parameter limits the number of items 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
responses:
TemporalGeometrySequence:
description: A TemporalGeometrySequence data.
content:
application/json:
schema:
$ref: '#/components/schemas/temporalGeometrySequence'
example:
type: TemporalGeometrySequence
geometrySequence:
- id: tg-1
type: MovingPoint
datetimes:
- '2011-07-14T22:01:02Z'
- '2011-07-14T22:01:03Z'
- '2011-07-14T22:01:04Z'
coordinates:
- - 139.757399
- 35.627701
- 2
- - 139.757555
- 35.627688
- 4
- - 139.757651
- 35.627596
- 4
interpolation: Linear
base:
type: glTF
href: https://www.opengis.net/spec/movingfeatures/json/1.0/prism/example/car3dmodel.gltf
orientations:
- scales:
- 1
- 1
- 1
angles:
- 0
- 355
- 0
- scales:
- 1
- 1
- 1
angles:
- 0
- 0
- 330
- scales:
- 1
- 1
- 1
angles:
- 0
- 0
- 300
crs:
type: Name
properties: urn:ogc:def:crs:OGC:1.3:CRS84
trs:
type: Name
properties: urn:ogc:data:time:iso8601
links:
- href: https://data.example.org/collections/mfc-1/items/mf-1/tgsequence
rel: self
type: application/json
- href: https://data.example.org/collections/mfc-1/items/mf-1/tgsequence&offset=10&limit=1
rel: next
type: application/json
timeStamp: '2021-09-01T12:00:00Z'
numberMatched: 100
numberReturned: 1
ServerError:
description: A server error occurred.
content:
application/json:
schema:
$ref: '#/components/schemas/exception'
example:
code: '500'
description: Server Internal Error
x-refined-from:
- ogc-movingfeatures-part1-1-0-openapi-ogcapi-movingfeatures-1-bundled.json
- ogc-movingfeatures-part1-1-0-openapi-ogcapi-movingfeatures-1-bundled.yaml
- ogc-movingfeatures-part1-1-0-openapi-openapi-movingfeatures-1.yaml