The NGSI-LD API standardised by ETSI ISG CIM in GS CIM 009, a JSON-LD context information management API for entities, attributes, relationships, subscriptions, temporal queries, entity types, context source registration and distributed federation. It is the API layer beneath most European smart-city and FIWARE deployments and is published as OpenAPI 3.0.3 and 3.1.0.
ETSI NGSI-LD API (ISG CIM) is one of 24 APIs that ETSI publishes on the APIs.io network, described by a machine-readable OpenAPI specification.
Tagged areas include Context Information, NGSI-LD, Smart Cities, IoT, and JSON-LD. The published artifact set on APIs.io includes API documentation, an API reference, and an OpenAPI specification.
This API exposes
49 operations
across 28 paths,
organized into 9 resource areas,
and defines 65 schemas.
It is described by OpenAPI 3.0.3, at version 1.7.1.
Requests are made against a single base URL, {protocol}://{hostname}:{port}/ngsi-ld/v1.
49 operations28 paths65 schemas9 DELETE16 GET7 PATCH15 POST2 PUT
Metadata
The identity and technical contract details declared by the specification.
Across 28 paths, the API surfaces 49 operations — 9 DELETE, 16 GET, 7 PATCH, 15 POST, 2 PUT. They span 9 resource areas: Context Information Provision, Context Information Consumption, Context Source Registration, Context Source Discovery, Context Information Subscription, Context Source Registration Subscription, Temporal Context Information Provision, Temporal Context Information Consumption, JSON-LD Context API. Each is listed below with its method, path, parameters, and response codes.
Context Information Provision 14
POST
/entities
Entity creation
createEntity3 paramsbody→ 201207400409422
DELETE
/entities/{entityId}
Entity deletion by id
deleteEntity5 params→ 204207400404
PATCH
/entities/{entityId}
Entity merge by id
mergeEntity8 paramsbody→ 204207400404
PUT
/entities/{entityId}
Entity replacement by id
replaceEntity5 paramsbody→ 204207400404
POST
/entities/{entityId}/attrs
Append Attributes to Entity
appendAttrs6 paramsbody→ 204207400404
PATCH
/entities/{entityId}/attrs
Update Attributes of an Entity
updateEntity5 paramsbody→ 204207400404
PATCH
/entities/{entityId}/attrs/{attrId}
Partial Attribute Update
updateAttrs6 paramsbody→ 204207400404
DELETE
/entities/{entityId}/attrs/{attrId}
Attribute delete
deleteAttrs8 params→ 204207400404
PUT
/entities/{entityId}/attrs/{attrId}
Attribute replace
replaceAttrs6 paramsbody→ 204207400404
POST
/entityOperations/create
Batch Entity Creation
createBatch3 paramsbody→ 201207400
POST
/entityOperations/upsert
Batch Entity Creation or Update (Upsert)
upsertBatch4 paramsbody→ 201204207400
POST
/entityOperations/update
Batch Entity Update
updateBatch4 paramsbody→ 204207400
POST
/entityOperations/delete
Batch Entity Delete
deleteBatch3 paramsbody→ 204207400
POST
/entityOperations/merge
Batch Entity Merge
mergeBatch3 paramsbody→ 204207400
Context Information Consumption 7
GET
/entities
Query entities
queryEntity19 params→ 200400501
GET
/entities/{entityId}
Entity retrieval by id
retrieveEntity9 params→ 200400404501
POST
/entityOperations/query
Query entities based on POST
queryBatch6 paramsbody→ 200400
GET
/types
Retrieve available entity types
retrieveEntityTypes4 params→ 200400
GET
/types/{type}
Details about available entity type
retrieveEntityTypeInfo4 params→ 200400404
GET
/attributes
Available attributes
retrieveAttrTypes4 params→ 200400
GET
/attributes/{attrId}
Details about available attribute
retrieveAttrTypeInfo4 params→ 200400404
Context Source Registration 3
POST
/csourceRegistrations
Csource registration creation
createCSR3 paramsbody→ 201400409422
PATCH
/csourceRegistrations/{registrationId}
Csource registration update by id
updateCSR4 paramsbody→ 204400404
DELETE
/csourceRegistrations/{registrationId}
Csource registration deletion by id
deleteCSR4 params→ 204400404
Context Source Discovery 2
GET
/csourceRegistrations
Discover Csource registrations
queryCSR23 params→ 200400
GET
/csourceRegistrations/{registrationId}
Csource registration retrieval by id
retrieveCSR5 params→ 200400404
Context Information Subscription 5
POST
/subscriptions
Create Subscription
createSubscription3 paramsbody→ 201400409
GET
/subscriptions
Retrieve list of Subscriptions
querySubscription6 params→ 200400
GET
/subscriptions/{subscriptionId}
Subscription retrieval by id
retrieveSubscription5 params→ 200400404
PATCH
/subscriptions/{subscriptionId}
Subscription update by id
updateSubscription4 paramsbody→ 204400404
DELETE
/subscriptions/{subscriptionId}
Subscription deletion by id
deleteSubscription4 params→ 204400404
Context Source Registration Subscription 5
POST
/csourceSubscriptions
Create subscription to Csource registration
createCSRSubscription3 paramsbody→ 201400409
GET
/csourceSubscriptions
Retrieval of list of subscriptions to Csource registrations
queryCSRSubscription6 params→ 200400
GET
/csourceSubscriptions/{subscriptionId}
Csource registration subscription update by id
retrieveCSRSubscription5 params→ 200400404
PATCH
/csourceSubscriptions/{subscriptionId}
Csource registration subscription update by id
updateCSRSubscription4 paramsbody→ 204400404
DELETE
/csourceSubscriptions/{subscriptionId}
Csource registration subscription deletion by id
deleteCSRSubscription4 params→ 204400404
Temporal Context Information Provision 6
POST
/temporal/entities
Temporal Representation of Entity creation
upsertTemporal3 paramsbody→ 201204400422
DELETE
/temporal/entities/{entityId}
Temporal Representation of Entity deletion by id
deleteTemporal4 params→ 204400404
POST
/temporal/entities/{entityId}/attrs
Temporal Representation of Entity Attribute instance addition
appendAttrsTemporal4 paramsbody→ 204400404
DELETE
/temporal/entities/{entityId}/attrs/{attrId}
Attribute from Temporal Representation of Entity deletion
Temporal Representation of Entity Query based on POST
temporalQueryBatch3 paramsbody→ 200400
JSON-LD Context API 4
POST
/jsonldContexts
Add a user @context to the internal cache
createContext1 parambody→ 201400
GET
/jsonldContexts
List all cached @contexts
listContexts3 params→ 200400
GET
/jsonldContexts/{contextId}
Serve one specific user @context
retrieveContext3 params→ 200400404422
DELETE
/jsonldContexts/{contextId}
Delete one specific @context from internal cache, possibly re-inserting a freshly downloaded copy of it
deleteContext3 params→ 204400404503
Schemas 65
The contract defines 65 schemas that model the data the API accepts and returns. The most detailed are CsourceRegistration (27 properties), Subscription.Common (20 properties), NotificationParams (11 properties), Property (10 properties). Each schema is shown below with its type and property counts.
AnyValue
Any JSON value as defined by IETF RFC 8259.
options.noOverwrite
string
6.16.3 For POST method associated to the operations "Batch Entity Update" and "Append Entity Attributes", the "noOvevwrite" options query parameter indicates t…
options.representation
string
6.3.7 Representation of Entities. When its value includes the keyword "normalized", a normalized representation of Entities shall be provided as defined by cla…
options.sysAttrs
string
6.3.11 Including system generated attributes. When its value includes the keyword "sysAttrs", a representation of NGSI-LD Elements shall be provided so that th…
options.temporal
string
6.3.12 Simplified or aggregated temporal representation of entities. When its value includes the keyword "temporalValues", a simplified temporal representation…
options.upsert
string
6.15.3 Upsert configuration. "replace". Indicates that all the existing Entity content shall be replaced (default mode); "update". Indicates that existing Enti…
CreatedAt
string
It is defined as the temporal Property at which the Entity, Property or Relationship was entered into an NGSI-LD system. Entity creation timestamp. See clause…
ModifiedAt
string
It is defined as the temporal Property at which the Entity, Property or Relationship was last modified in an NGSI-LD system, e.g. in order to correct a previou…
DeletedAt
string
It is defined as the temporal Property at which the Entity, Property or Relationship was deleted from an NGSI-LD system. Entity deletion timestamp. See clause…
ObservedAt
string
It is defined as the temporal Property at which a certain Property or Relationship became valid or was observed. For example, a temperature Value was measured…
Attribute
object
5.2.28 This type represents the data needed to define the attribute information.
6 properties3 required
AttributeList
object
5.2.27 This type represents the data needed to define the attribute list representation as mandated by clause 4.5.13.
3 properties3 required
BatchEntityError
object
5.2.17 This datatype represents an error raised (associated to a particular Entity) during the execution of a batch or distributed operation.
3 properties2 required
BatchOperationResult
object
5.2.16 The datatype represents the result of a batch operation.
2 properties2 required
CsourceNotification
object
5.3.2 This datatype represents the parameters that allow building a Context Source Notification to be sent to a subscriber.
6 properties6 required
CsourceRegistration
object
5.2.9 This type represents the data needed to register a new Context Source.
27 properties
DateTimeValue
object
Date representation as mandated by C.6 "Date Representation".
2 properties2 required
Endpoint
object
5.2.15 This datatype represents the parameters that are required in order to define an endpoint for notifications.
6 properties1 required
Entity
object
5.2.4 NGSI-LD Entity.
9 properties
EntityInfo
object
5.2.8 This type represents what Entities, Entity Types or group of Entity ids (as a regular expression pattern mandated by IEEE 1003.2TM) can be provided (by C…
3 properties1 required
EntitySelector
object
5.2.33 This type selects which entity or group of entities are queried or subscribed to by Context Consumers. The id takes precedence over idPattern.
3 properties1 required
EntityTemporal
object
5.2.20 This is the same data type as mandated by clause 5.2.4 with the only deviation that the representation of Properties and Relationships shall be the temp…
9 properties
EntityType
object
5.2.25 This type represents the data needed to define the elements of the detailed entity type list representation as mandated by clause 4.5.11.
4 properties4 required
EntityTypeInfo
object
5.2.26 This type represents the data needed to define the detailed entity type information representation as mandated by clause 4.5.12.
5 properties5 required
EntityTypeList
object
5.2.24 This type represents the data needed to define the entity type list representation as mandated by clause 4.5.10.
3 properties3 required
Feature
object
5.2.29 This data type represents a spatially bounded Entity in GeoJSON format, as mandated by IETF RFC 7946.
5 properties4 required
FeatureCollection
object
5.2.30 This data type represents a list of spatially bounded Entities in GeoJSON format, as mandated by IETF RFC 7946.
3 properties1 required
FeatureProperties
object
5.2.31 This data type represents the type and the associated attributes (Properties and Relationships) of an Entity in GeoJSON format.
1 property1 required
Geometry.position
array
A single position.
Geometry.positionArray
array
An array of positions.
Geometry.lineString
An array of two or more positions.
Geometry.linearRing
An array of four positions where the first equals the last (i.e., a closed LineString).
Geometry.polygon
array
An array of linear rings.
Geometry.Point
object
2 properties
Geometry.MultiPoint
object
2 properties
Geometry.Polygon
object
2 properties
Geometry.LineString
object
2 properties
Geometry.MultiLineString
object
2 properties
Geometry.MultiPolygon
object
2 properties
Geometry
A valid GeoJSON geometry object (as mandated by RFC7946).
GeoProperty
object
5.2.7 NGSI-LD GeoProperty.
9 properties
GeoQuery
object
5.2.13 This datatype represents a geoquery used for Subscriptions.
4 properties3 required
KeyValuePair
object
5.2.22 This datatype represents the optional information that is required when contacting an endpoint for notifications.
2 properties2 required
LanguageProperty
object
5.2.32 NGSI-LD LanguageProperty.
9 properties
LdContext
5.2.3 JSON-LD @context When encoding NGSI-LD Entities, Context Source Registrations, Subscriptions and Notifications, as pure JSON-LD (MIME type "application/l…
LdContextMetadata
array
JSON object which represents information (metadata) about an @context currently stored by the Broker as defined in 5.13.3.5. It contains information about the…
NotUpdatedDetails
object
5.2.19 This datatype represents additional information provided by an implementation when an Attribute update did not happen.
3 properties2 required
Notification
object
5.3.1 This datatype represents the parameters that allow building a notification to be sent to a subscriber.
5 properties5 required
NotificationParams
object
5.2.14 This datatype represents the parameters that allow to convey the details of a notification.
11 properties1 required
Path
string
Common schema for URI data type in path parameters.
ProblemDetails
object
The definition of the general "ProblemDetails" data structure from IETF RFC 7807 is reproduced inthis structure. Compared to the general framework defined in I…
5 properties2 required
Property
object
5.2.5 NGSI-LD Property.
10 properties
Query
object
5.2.23 This datatype represents the information that is required in order to convey a query when a "Query Entities" operation is to be performed (as per clause…
8 properties1 required
Query.temporal
5.2.23 This datatype represents the information that is required in order to convey a query when a "Query Temporal Evolution of Entities" operation is to be pe…
RegistrationInfo
object
5.2.10 RegistrationInfo.
3 properties
RegistrationManagementInfo
object
5.2.34 This type represents the data to alter the default behaviour of a Context Broker when making a distributed operation request to a registered Context Sou…
4 properties
Relationship
object
5.2.6 NGSI-LD Relationship.
9 properties
Subscription
Subscription.Common
object
5.2.12 This datatype represents a Context Subscription.
20 properties
Subscription.Periodic
Subscription.OnChange
TemporalQuery
object
5.2.21 This datatype represents a temporal query.
4 properties2 required
TimeInterval
object
5.2.11 NGSI-LD TimeInterval.
2 properties1 required
UpdateResult
object
5.2.18 This datatype represents the result of Attribute update (append or update) operations in the NGSI-LD API regardless of whether local or distributed.
2 properties2 required
VocabularyProperty
object
5.2.35 NGSI-LD VocabularyProperty.
9 properties
Specification
The full machine-readable OpenAPI contract behind this narrative.
Every API here is available over the API and to AI agents over MCP. APIs is not yet its own endpoint on the v1 API. Reach this content through network search and the tag graph, or the MCP server below.
Installs https://mcp.apievangelist.com/mcp in Claude, Cursor, VS Code and the rest — one button, every client.
MCP tools for apis
4 tools reach this content
search_api_evangelistSearch every content type across the network at once.
find_relatedThe shared-tag relevance graph — what else covers this.
get_tagEverything one tag labels, across all content types.
guide_topicPRO — a curated bundle for a topic: area, guidance, rules, papers, stories, services.
A second provider on the same verified email joins the account you already have.
Your account
ⓘWhere this information came from
This is an independent, third-party profile of ETSI NGSI-LD API (ISG CIM), published by
API Evangelist. We do not operate, host, resell, or
support these APIs, and we are not affiliated with or endorsed by the company unless stated above.
Everything here is built from publicly available information — the company's own site,
developer portal, documentation, public repositories, and the specifications it publishes for public use.
Nothing is obtained by breaching a system, defeating an access control, or using credentials.
The Kin Score and Agent Readiness rating are independently calculated assessments of a company's
public API artifacts, scored against a published rubric. They are not certifications,
endorsements, security assessments, or audits.
Corrections, re-scores, and removal are free — no partnership or purchase required, and
you do not need to justify the request. A removed company is recorded as unrated, never scored
zero for having asked. Acknowledgement within one business day; removal within two.
info@apievangelist.com
·
Read the full data-sourcing policy → On a security or compliance team? Put security in the subject line and
you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.