How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Cognite Assets API

The assets resource type stores digital representations of objects orgroups of objects from the physical world. Assets are organized in hierarchies.For example, a water pump asset can be a part of a subsystem asset on anoil platform asset.## Rate and concurrency limitsBoth the rate of requests (denoted as request per second, or ‘**rps**’) and the number of concurrent (parallel) requests are governed by limits,for all CDF API endpoints. If a request exceeds one of the limits,it will be throttled with a `429: Too Many Requests` response. More on limit typesand how to avoid being throttled is described[here](https://docs.cognite.com/dev/concepts/resource_throttling).Limits are defined at both the overall API service level, and on the API endpoints belonging to the service.\Some types of requests consume more resources (compute, storage IO) than others, and where a service handlesmultiple concurrent requests with varying resource consumption.For example, ‘CRUD’ type requests (**C**reate, **R**etrieve, **R**equest ByIDs, **U**pdate and **D**elete) are far less resourceintensive than ‘Analytical’ type requests (List, Search and Filter) and in addition, the most resourceintensive Analytical endpoint of all, Aggregates, receives its own request budget within the overall Analytical request budget.\The version 1.0 limits for the overall API service and its constituent endpoints are illustrated in the diagram below.\These limits are subject to change, pending review of changing consumption patterns and resource availability over time:### Translating RPS into data speedA single request may retrieve up to 1000 items. In the context of Assets, 1 item = 1 asset record\Therefore, the maximum theoretical data speed at the top API service level is 200,000 items per second for all consumers,and 150,000 for a single identity or client in a project.### Use of Partitions / Parallel RetrievalAs a general guidance, Parallel Retrieval is a technique that should be used where due to query complexity, retrieval of data in asingle request session turns out to be slow. By parallelizing such requests, data retrieval performance can be tuned to meet theclient application needs. Parallel retrieval may also be used where retrieval of large sets of data is required, up to thecapacity limits defined for a given API service. For example (using the Assets API request budget):* A single request may retrieve up to 1000 items* Up to 23 requests per second may be issued for an analytical query (per identity), such as when using /list or /filter API endpoints* This provides a theoretical maximum of 23,000 items read per second per identity* The query complexity may result in it taking longer than 1s to read or write 1000 items in a single request* Therefore, it is appropriate to specify the query to retrieve a lower number of items per request, and retrieve more items in parallel, up to the theoretical maximum performance of 23,000 items per second.**Important Note:**Parallel retrieval should be only used in situations where, due to query complexity,a single request flow provides data retrieval speeds that are significantly less than the theoretical maximum.\Parallel retrieval does not act as a speed multiplier on optimally running queries. Regardless of the numberof concurrent requests issued, the overall requests per second limit still applies.\So for example, a single request returning data at approximately 18,000 items per second will onlybenefit from adding a second parallel request, the capacity of which goes somewhat wastedas only an additional 5,000 items per second will return before the request rate budget limit is reached.

Cognite Assets API is one of 90 APIs that Cognite publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Assets. The published artifact set on APIs.io includes an OpenAPI specification.

This API exposes 9 operations across 8 paths, and defines 130 schemas. It is described by OpenAPI 3.2.0, at version v1.

Requests are made against a single base URL, https://{cluster}.cognitedata.com/api/v1/projects/{project}.

9 operations 8 paths 130 schemas 2 GET7 POST

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.2.0
API Version
v1
Base URL
https://api.cognitedata.com
Authentication
HTTP Bearer, OAuth 2.0, OAuth 2.0, OAuth 2.0, OpenID Connect
Resource Areas
1

Authentication & Security 5

Cognite Assets API declares 5 security schemes for authenticating requests. It accepts HTTP bearer tokens (OpenID Connect or OAuth2 token) (oidc-token). It supports OAuth 2.0 (oauth2-client-credentials) using the clientCredentials flow, exposing 1 scope. It supports OAuth 2.0 (oauth2-auth-code) using the authorizationCode flow, exposing 1 scope. It supports OAuth 2.0 (oauth2-open-industrial-data) using the clientCredentials flow, exposing 1 scope. It supports OpenID Connect (org-oidc-token) discovered at https://auth.cognite.com/.well-known/openid-configuration. By default, every request must be authenticated.

  • oidc-token — Access token issued by the CDF project's configured identity provider. Access token must be an OpenID Connect token, and the project must be configured to acce…
  • oauth2-client-credentials — Access token issued by the CDF project's configured identity provider. Access token must be an OpenID Connect token, and the project must be configured to acce…
  • oauth2-auth-code — Access token issued by the CDF project's configured identity provider. Access token must be an OpenID Connect token, and the project must be configured to acce…
  • oauth2-open-industrial-data — Auth flow for Open Industrial Data. Get your client secret from https://hub.cognite.com/open-industrial-data-211.
  • org-oidc-token — Access token issued by the Cognite authorization server, and valid for the target organization. The token must be an OpenID Connect token, and it can be obtain…

Paths & Operations 9

Across 8 paths, the API surfaces 9 operations — 2 GET, 7 POST. Each is listed below with its method, path, parameters, and response codes.

Assets 9

The assets resource type stores digital representations of objects or groups of objects from the physical world. Assets are organized in hierarchies. For example, a water pump ass…

GET
/assets
List assets
getAssets 17 params → 200400429
POST
/assets
Create assets
createAssets body → 201400429
GET
/assets/{id}
Retrieve an asset by its ID
getAsset 1 param → 200400429
POST
/assets/list
Filter assets
listAssets body → 200400429
POST
/assets/aggregate
Aggregate assets
aggregateAssets body → 200400429
POST
/assets/byids
Retrieve assets
byIdsAssets body → 200400429
POST
/assets/update
Update assets
updateAssets body → 200400429
POST
/assets/search
Search assets
searchAssets body → 200400429
POST
/assets/delete
Delete assets
deleteAssets body → 200400429

Schemas 130

The contract defines 130 schemas that model the data the API accepts and returns. The most detailed are ExternalAsset (10 properties), Error (4 properties), AggregatePropertyValues (3 properties), AssetSortProperty (3 properties). Each schema is shown below with its type and property counts.

Label
object
A label assigned to a resource.
1 property 1 required
DataSetIdEither
MultiLineString
object
2 properties 2 required
AssetMetadata
object
Custom, application specific metadata. String key - String value. Limits: Maximum length of key is 128 bytes, value 10240 bytes, up to 256 key-value pairs, of…
CountAggregateResult
object
Common aggregate structure to represent aggregate result which have one count for filter resultset (Documents Count, Property Cardinality, etc).
1 property 1 required
429Error
object
Cognite API throttling.
2 properties 2 required
JsonArrayInt64
string
PointCoordinates
array
Coordinates of a point in 2D space, described as an array of 2 numbers. Example: [4.306640625, 60.205710352530346]
AssetMetadataKeysAggregate
PrefixFilter
object
1 property 1 required
AssetChange
CogniteInternalId
integer
A server-generated ID for the object.
AggregateResult
object
AssetSortProperty
object
3 properties 1 required
AggregateStringValues
object
3 properties 2 required
AssetFilter
object
1 property
ObjectPatchAddRemoveAsset
object
2 properties
ResourceDescription
string
The description of the resource type.
SearchFilter
object
1 property 1 required
Point
object
2 properties 2 required
LabelsPatch
Updates the resource's assigned labels. Labels can be added, removed or replaced (set). Adding an already attached label is an idempotent operation. Removing a…
MultiPolygonCoordinates
array
List of multiple polygons. Each polygon is defined as a list of one or more linear rings representing a shape. A linear ring is the boundary of a surface or th…
AssetQuery
string
Whitespace-separated terms to search for in assets. Does a best-effort fuzzy search in relevant fields (currently name and description) for variations of any o…
GeoLocationGeometry
object
Represents the points, curves and surfaces in the coordinate space.
1 required
ValuesAggregateResult
object
Common aggregate structure to represent aggregate result which have count buckets for filter resultset (Unique Property Values, Not Null Document Properties, e…
1 property 1 required
GeoLocationFilter
object
Only include files matching the specified geographic relation.
2 properties 2 required
DataAsset
object
1 property 1 required
SetLongField
object
1 property 1 required
AssetAggregateKeys
object
1 property
AssetPatch
object
Changes applied to asset
1 property 1 required
Value
Value you wish to find in the provided property.
AssetCardinalityPropertiesAggregate
AggregatePropertyValues
object
A single bucket to represent uniqueProperties aggregate result.
3 properties 2 required
ContainsAllFilter
object
1 property 1 required
ExistsFilter
object
1 property 1 required
AssetIdEither
SinglePatchRequiredName
object
Set a new value for the asset name.
1 property 1 required
AssetSearchFilter
Search request with filter capabilities.
AssetExternalId
object
1 property 1 required
FilterProperty
array
Property you want to filter. Use a list of strings to specify nested properties. Example: You have the object { "room": { "id": "b53" }, "roomId": "a23" } Use…
AssetAggregateLeafFilter
object
Aggregate leaf filter.
PartitionLimited10
string
Splits the data set into N partitions. The attribute is specified as a "M/N" string, where M is a natural number in the interval of [1, N]. You need to follow…
SinglePatchRequiredParentExternalId
object
Change the external ID of the object.
1 property 1 required
AssetWithPropertyCountAggregate
StringValue
object
A unique string value in the field.
1 property 1 required
AssetMetadataValuesAggregate
AssetListScope
EpochTimestamp
integer
The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.
MultiPoint
object
2 properties 2 required
AssetAggregateRequest
Aggregation request of assets. Filters behave the same way as for the filter endpoint. Default aggregation is count.
AssetSource
string
The source of the asset.
Polygon
object
2 properties 2 required
AggregatedProperties
object
1 property
AssetParentExternalId
string
The external ID of the parent. This will be resolved to an internal ID and stored as parentId.
GenericRangeFilter
object
1 property 1 required
SinglePatchLong
object
Set a new value for the long, or remove the value.
ObjectPatchAsset
object
Custom, application specific metadata. String key - String value. Limits of updated asset: Maximum length of key is 128 bytes, value 10240 bytes, up to 256 key…
AssetAggregateBoolFilter
object
A query that matches items matching boolean combinations of other queries. It's built using one or more boolean clauses of the following types: and, or, or not.
CogniteExternalId
string
The external ID provided by the client. Must be unique for the resource type.
AssetLimit
object
1 property
SinglePatchGeoLocation
object
Set a new value for the geoLocation, or remove the value.
SinglePatchAssetSource
object
Set a new value for the source, or remove the value.
SetAssetSource
object
1 property 1 required
CogniteExternalIdPrefix
string
Filter by this (case-sensitive) prefix for the external ID.
Asset
SetGeoLocation
object
1 property 1 required
LabelList
array
A list of the labels associated with this resource item.
IgnoreUnknownIdsField
object
1 property
DataWithCursorAsset
object
A list of objects along with possible cursors to get the next or previous page of results.
2 properties 1 required
MultiPointCoordinates
array
List of Points. Each Point is defined as an array of 2 numbers, representing coordinates of a point in 2D space. Example: [[35, 10], [45, 45]]
AssetAggregateFilter
object
A filter DSL (Domain Specific Language) to define aggregate filter queries. See more information about filtering DSL [here](https://docs.cognite.com/dev/concep…
ObjectPatchSetAsset
object
1 property 1 required
ContainsAnyFilter
object
1 property 1 required
DataSetExternalId
object
1 property 1 required
LabelContainsAllFilter
object
1 property 1 required
AssetSearch
object
1 property
Values
array
One or more values you wish to find in the provided property.
AggregatePrefixFilter
object
1 property 1 required
Cursor
object
Cursor for paging through results. In general, if a response contains a nextCursor property, it means that there may be more results, and you should pass that…
1 property
AssetDataIds
object
JsonArrayString
string
AssetBoolFilter
object
A query that matches items matching boolean combinations of other queries. It is built using one or more boolean clauses of the following types: and, or, or no…
LabelFilter
Return only the resource matching the specified label constraints.
AssetIdentifier
object
1 property 1 required
PolygonCoordinates
array
List of one or more linear rings representing a shape. A linear ring is the boundary of a surface or the boundary of a hole in a surface. It is defined as a li…
RemoveField
object
1 property 1 required
AssetAggregateProperties
object
1 property 1 required
DataSetInternalId
object
1 property 1 required
AggregateIntegerValues
object
3 properties 2 required
SetDescription
object
1 property 1 required
EqualsFilter
object
1 property 1 required
AssetUniqueValuesAggregate
AggregatedProperty
string
ExternalAsset
object
A representation of a physical asset, for example a factory or a piece of equipment.
10 properties 1 required
AssetChangeByExternalId
DeleteRequest
object
LabelsAddRemove
object
2 properties
AssetDescription
string
The description of the asset.
LabelsSet
object
1 property
LineStringCoordinates
array
Coordinates of a line described by a list of two or more points. Each point is defined as a pair of two numbers in an array, representing coordinates of a poin…
AggregateRangeFilter
object
1 property 1 required
AssetChangeById
SinglePatchResourceDescription
object
AssetCountAggregate
AggregateResultItem
object
Aggregated metrics of the asset.
3 properties
SinglePatchExternalId
object
Set a new value for the externalId, or remove the value. Must be unique for the resource type.
SinglePatchRequiredInternalId
object
Change the ID of the object.
1 property 1 required
MultiLineStringCoordinates
array
List of lines where each line (LineString) is defined as a list of two or more points. Each point is defined as a pair of two numbers in an array, representing…
AssetUniquePropertiesAggregate
SetExternalId
object
1 property 1 required
RangeValue
Value you wish to find in the provided property using a range clause.
InFilter
object
1 property 1 required
LineString
object
2 properties 2 required
AssetCardinalityValuesAggregate
GeoLocation
object
Geographic metadata.
3 properties 2 required
AggregateInFilter
object
1 property 1 required
MultiPolygon
object
2 properties 2 required
AssetAdvancedFilter
object
1 property
LabelContainsAnyFilter
object
1 property 1 required
AssetInternalId
object
1 property 1 required
AssetSort
object
1 property
DataExternalAsset
object
1 property 1 required
DataExternalAssetItem
AggregateProperty
array
Property you want to aggregate. Use a list of strings to specify nested properties. The same way the properties are represented in aggregate responses. Example…
Error
object
Cognite API error.
4 properties 2 required
EpochTimestampRange
object
Range between two timestamps (inclusive).
2 properties
DataAssetChange
object
1 property 1 required
AssetLeafFilter
object
Leaf filter.
AssetName
string
The name of the asset.
PartitionObjectLimited10
object
1 property

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

cognite-assets-api-openapi.yml Raw ↑

Other APIs Cognite publishes across the network.

Cognite Data Fusion API
Cognite 3D Asset Mapping API
Cognite 3D Files API
Cognite 3D Jobs API
Cognite 3D Model Revisions API
Cognite 3D Models API
Cognite Annotations API
Cognite Connections API
Cognite Containers API
Cognite Data models API
Cognite Data point subscriptions API
Cognite Data products API
Where this information came from

This is an independent, third-party profile of Cognite Assets API, 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.