Open Geospatial Consortium (OGC) Moving Features API
Moving feature data, including the temporal geometry, temporal properties, etc.
Moving feature data, including the temporal geometry, temporal properties, etc.
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-movingfeatures-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 Moving Features 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 MovingFeatures 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: MovingFeatures
description: Moving feature data, including the temporal geometry, temporal properties, etc.
paths:
/collections/{collectionId}/items:
get:
operationId: retrieveMovingFeatures
summary: Retrieve moving feature collection
description: 'A user can retrieve moving feature collection to access the static information of the moving feature by simple filtering and a limit.
Specifically, if the `subTrajectory` parameter is "true", it will return the temporal geometry within the time interval specified by `datetime` parameter.
'
tags:
- MovingFeatures
parameters:
- $ref: '#/components/parameters/collectionId'
- $ref: '#/components/parameters/bbox'
- $ref: '#/components/parameters/datetime'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/subtrajectory'
responses:
'200':
$ref: '#/components/responses/MovingFeatures'
'404':
description: A collection with the specified id was not found.
'500':
$ref: '#/components/responses/ServerError'
post:
operationId: insertMovingFeatures
summary: Insert moving features
description: "A user SHOULD insert a set of moving features or a moving feature into a collection with id `collectionId`.\n\nThe request body schema SHALL follows the [MovingFeature object](https://docs.opengeospatial.org/is/19-045r3/19-045r3.html#mfeature) or \n[MovingFeatureCollection object](https://docs.opengeospatial.org/is/19-045r3/19-045r3.html#mfeaturecollection) in the OGC MF-JSON.\n"
tags:
- MovingFeatures
parameters:
- $ref: '#/components/parameters/collectionId'
requestBody:
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/movingFeature-mfjson'
- $ref: '#/components/schemas/movingFeatureCollection'
example:
type: Feature
crs:
type: Name
properties:
name: urn:ogc:def:crs:OGC:1.3:CRS84
trs:
type: Link
properties:
type: OGCDEF
href: http://www.opengis.net/def/uom/ISO-8601/0/Gregorian
temporalGeometry:
type: MovingPoint
datetimes:
- '2011-07-14T22:01:01Z'
- '2011-07-14T22:01:02Z'
- '2011-07-14T22:01:03Z'
- '2011-07-14T22:01:04Z'
- '2011-07-14T22:01:05Z'
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: http://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
temporalProperties:
- datetimes:
- '2011-07-14T22:01:01.450Z'
- '2011-07-14T23:01:01.450Z'
- '2011-07-15T00:01:01.450Z'
length:
type: Measure
form: http://qudt.org/vocab/quantitykind/Length
values:
- 1
- 2.4
- 1
interpolation: Linear
discharge:
type: Measure
form: MQS
values:
- 3
- 4
- 5
interpolation: Step
- datetimes:
- 1465621816590
- 1465711526300
camera:
type: Image
values:
- http://www.opengis.net/spec/movingfeatures/json/1.0/prism/example/image1
- iVBORw0KGgoAAAANSUhEU......
interpolation: Discrete
labels:
type: Text
values:
- car
- human
interpolation: Discrete
geometry:
type: LineString
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
properties:
name: car1
state: test1
video: http://www.opengis.net/spec/movingfeatures/json/1.0/prism/example/video.mpeg
bbox:
- 139.757083
- 35.627483
- 0
- 139.757716
- 35.627701
- 4.5
time:
- '2011-07-14T22:01:01Z'
- '2011-07-15T01:11:22Z'
id: mf-1
responses:
'201':
description: 'Successful create a set of moving features or a moving feature into a specific collection.
'
headers:
Locations:
description: A list of URI of the newly added resources
schema:
type: array
items:
type: string
example:
- https://data.example.org/collections/mfc-1/items/mf-1
- https://data.example.org/collections/mfc-1/items/109301273
'400':
description: A query parameter was not validly used.
'404':
description: A collection with the specified id was not found.
'500':
$ref: '#/components/responses/ServerError'
/collections/{collectionId}/items/{mFeatureId}:
get:
operationId: accessMovingFeature
summary: Access the static data of the moving feature
description: 'A user can access a static data of a moving feature with id `mFeatureId`.
The static data of a moving feature is not included temporal geometries and temporal properties.
'
tags:
- MovingFeatures
parameters:
- $ref: '#/components/parameters/collectionId'
- $ref: '#/components/parameters/mFeatureId'
responses:
'200':
$ref: '#/components/responses/MovingFeature'
'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'
delete:
operationId: deleteMovingFeature
summary: Delete a single moving feature
description: 'The moving feature with id `mFeatureId` and including temporal geometries and properties SHOULD be deleted.
'
tags:
- MovingFeatures
parameters:
- $ref: '#/components/parameters/collectionId'
- $ref: '#/components/parameters/mFeatureId'
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.
'
'500':
$ref: '#/components/responses/ServerError'
components:
schemas:
movingFeature:
type: object
required:
- id
- type
properties:
type:
type: string
enum:
- Feature
temporalGeometry:
$ref: '#/components/schemas/temporalGeometry'
temporalProperties:
$ref: '#/components/schemas/temporalProperties-mfjson'
crs:
$ref: '#/components/schemas/crs'
trs:
$ref: '#/components/schemas/trs'
bbox:
$ref: '#/components/schemas/bbox'
time:
$ref: '#/components/schemas/lifeSpan'
geometry:
$ref: '#/components/schemas/geometryGeoJSON'
properties:
type:
- object
- 'null'
id:
description: An identifier for the feature
oneOf:
- type: string
- type: integer
links:
type: array
items:
$ref: '#/components/schemas/link'
movingFeatureCollection:
description: MF-JSON Prism encoding MovingFeatureCollection Object
title: MF-JSON MovingFeatureCollection
type: object
required:
- type
- features
properties:
type:
type: string
enum:
- FeatureCollection
features:
type: array
minItems: 1
items:
$ref: '#/components/schemas/movingFeature-mfjson'
crs:
$ref: '#/components/schemas/crs'
trs:
$ref: '#/components/schemas/trs'
bbox:
$ref: '#/components/schemas/bbox'
time:
$ref: '#/components/schemas/lifeSpan'
label:
type:
- string
- 'null'
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
multipolygonGeoJSON:
type: object
required:
- type
- coordinates
properties:
type:
type: string
enum:
- MultiPolygon
coordinates:
type: array
items:
type: array
items:
type: array
minItems: 4
items:
type: array
minItems: 2
items:
type: number
multilinestringGeoJSON:
type: object
required:
- type
- coordinates
properties:
type:
type: string
enum:
- MultiLineString
coordinates:
type: array
items:
type: array
minItems: 2
items:
type: array
minItems: 2
items:
type: number
geometryGeoJSON:
oneOf:
- $ref: '#/components/schemas/pointGeoJSON'
- $ref: '#/components/schemas/multipointGeoJSON'
- $ref: '#/components/schemas/linestringGeoJSON'
- $ref: '#/components/schemas/multilinestringGeoJSON'
- $ref: '#/components/schemas/polygonGeoJSON'
- $ref: '#/components/schemas/multipolygonGeoJSON'
- $ref: '#/components/schemas/geometrycollectionGeoJSON'
movingFeatures:
type: object
required:
- type
- features
properties:
type:
type: string
enum:
- FeatureCollection
features:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/movingFeature'
crs:
$ref: '#/components/schemas/crs'
trs:
$ref: '#/components/schemas/trs'
bbox:
$ref: '#/components/schemas/bbox'
time:
$ref: '#/components/schemas/lifeSpan'
links:
type: array
items:
$ref: '#/components/schemas/link'
timeStamp:
type: string
format: date-time
numberMatched:
type: integer
minimum: 0
numberReturned:
type: integer
minimum: 0
multipointGeoJSON:
type: object
required:
- type
- coordinates
properties:
type:
type: string
enum:
- MultiPoint
coordinates:
type: array
items:
type: array
minItems: 2
items:
type: number
linestringGeoJSON:
type: object
required:
- type
- coordinates
properties:
type:
type: string
enum:
- LineString
coordinates:
type: array
minItems: 2
items:
type: array
minItems: 2
items:
type: number
pointGeoJSON:
type: object
required:
- type
- coordinates
properties:
type:
type: string
enum:
- Point
coordinates:
type: array
minItems: 2
items:
type: number
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
bbox:
description: MF-JSON Prism encoding BoundingBox Object
title: MF-JSON BoundingBox
type:
- array
- 'null'
minItems: 4
items:
type: number
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'
lifeSpan:
description: MF-JSON Prism encoding LifeSpan Object
title: MF-JSON LifeSpan
type: array
minItems: 2
maxItems: 2
uniqueItems: true
items:
type:
- string
- 'null'
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
temporalComplexGeometry:
description: MF-JSON Prism encoding TemporalComplexGeometry Object
title: MF-JSON TemporalComplexGeometry
type: object
required:
- type
- prisms
properties:
type:
type: string
default: MovingGeometryCollection
prisms:
type: array
items:
$ref: '#/components/schemas/temporalPrimitiveGeometry'
crs:
$ref: '#/components/schemas/crs'
trs:
$ref: '#/components/schemas/trs'
geometrycollectionGeoJSON:
type: object
required:
- type
- geometries
properties:
type:
type: string
enum:
- GeometryCollection
geometries:
type: array
items:
$ref: '#/components/schemas/geometryGeoJSON'
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
movingFeature-mfjson:
description: MF-JSON Prism encoding MovingFeature Object
title: MF-JSON MovingFeature
type: object
required:
- type
- temporalGeometry
properties:
type:
type: string
enum:
- Feature
temporalGeometry:
$ref: '#/components/schemas/temporalGeometry'
temporalProperties:
$ref: '#/components/schemas/temporalProperties-mfjson'
crs:
$ref: '#/components/schemas/crs'
trs:
$ref: '#/components/schemas/trs'
bbox:
$ref: '#/components/schemas/bbox'
time:
$ref: '#/components/schemas/lifeSpan'
geometry:
$ref: '#/components/schemas/geometryGeoJSON'
properties:
type:
- object
- 'null'
id:
description: An identifier for the feature
oneOf:
- type: string
- type: integer
parametricValues:
description: MF-JSON Prism encoding ParametricValues Object
title: MF-JSON ParametricValues
type: object
required:
- datetimes
properties:
datetimes:
type: array
uniqueItems: true
minItems: 2
items:
type: string
format: date-time
additionalProperties:
oneOf:
- type: object
required:
- type
- values
properties:
type:
type: string
enum:
- Measure
values:
type:
- array
- 'null'
items:
type: number
interpolation:
oneOf:
- type: string
enum:
- Discrete
- Step
- Linear
- Regression
default: Linear
- type: string
format: uri
description:
type: string
form:
oneOf:
- type: string
minLength: 3
maxLength: 3
- type: string
format: uri
- type: object
required:
- type
- values
properties:
type:
type: string
enum:
- Text
values:
type:
- array
- 'null'
items:
oneOf:
- type: string
- type: boolean
interpolation:
oneOf:
- type: string
enum:
- Discrete
- Step
- Linear
- Regression
default: Linear
- type: string
format: uri
description:
type: string
- type: object
required:
- type
- values
properties:
type:
type: string
enum:
- Image
values:
type:
- array
- 'null'
items:
type: string
interpolation:
oneOf:
- type: string
enum:
- Discrete
- Step
- Linear
- Regression
default: Linear
- type: string
format: uri
description:
type: string
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
polygonGeoJSON:
type: object
required:
- type
- coordinates
properties:
type:
type: string
enum:
- Polygon
coordinates:
type: array
items:
type: array
minItems: 4
items:
type: array
minItems: 2
items:
type: number
crs:
description: MF-JSON Prism encoding CoordinateReferenceSystem Object
title: MF-JSON CRS
oneOf:
- $ref: '#/components/schemas/namedCRS'
- $ref: '#/components/schemas/linkedCRS'
temporalProperties-mfjson:
description: MF-JSON Prism encoding TemporalProperties Object
title: MF-JSON TemporalProperties
type:
- array
- 'null'
items:
$ref: '#/components/schemas/parametricValues'
temporalGeometry:
description: MF-JSON Prism encoding TemporalGeometry Object
title: MF-JSON TemporalGeometry
oneOf:
- $ref: '#/components/schemas/temporalPrimitiveGeometry'
- $ref: '#/components/schemas/temporalComplexGeometry'
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
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
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
responses:
MovingFeature:
description: A moving feature static data.
content:
application/geo+json:
schema:
$ref: '#/components/schemas/movingFeature'
example:
id: mf-1
type: Feature
geometry:
type: LineString
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
properties:
name: car1
state: test1
video: http://www.opengis.net/spec/movingfeatures/json/1.0/prism/example/video.mpeg
bbox:
- 139.757083
- 35.627483
- 0
- 139.757716
- 35.627701
- 4.5
time:
- '2011-07-14T22:01:01Z'
- '2011-07-15T01:11:22Z'
crs:
type: Name
properties: urn:ogc:def:crs:OGC:1.3:CRS84
trs:
type: Name
properties: urn:ogc:data:time:iso8601
ServerError:
description: A server error occurred.
content:
application/json:
schema:
$ref: '#/components/schemas/exception'
example:
code: '500'
description: Server Internal Error
MovingFeatures:
description: A list of static data of moving feature.
content:
application/json:
schema:
$ref: '#/components/schemas/movingFeatures'
example:
type: FeatureCollection
features:
- id: mf-1
type: Feature
geometry:
type: LineString
coordinates:
# --- truncated at 32 KB (33 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ogc/refs/heads/main/openapi/ogc-movingfeatures-api-openapi.yml