This resource is part of the asset-centric data model.
- New projects: We recommend using the data modeling service for greater flexibility and performance.
- Existing projects: Asset-centric time series metadata and asset filters are deprecated. Data point reads and writes stay available through
instanceId. See Deprecated and retired features and Data modeling status for CDF projects.
Looking for datapoint operations? See Time series and datapoints for inserting, retrieving, and querying time series data.This page focuses on time series metadata management for asset-centric projects.
id generated at creation. You can specify an externalId to control the identifier, which must be unique within a project. Time series can also have metadata key-value fields and labels for organization and categorization.
Count time series matching filter criteria
Count the number of time series that match selected filtering criteria, such as being part of a specific data set or following a naming convention for externalId.Example: count time series by filter criteria
Example: count time series by filter criteria
Advanced filtering
Time seriesadvancedFilter uses the same leaf filters as asset advanced filtering. See Filter language.
Time series limits differ from assets:
- Maximum depth is 10, and the maximum number of clauses is 100. Each element of
andororcounts toward that total, as does theandororclause itself, so a boolean clause can hold at most 99 elements. - Each
propertyelement is at most 256 characters. - A leaf filter on a string property accepts a value of at most 256 characters.
- A query can contain at most 2
searchleaf filters, each 1 to 128 characters.
Aggregates
Whenaggregate is omitted, the endpoint returns the count of matching time series, the same result as aggregate set to count.
Set aggregate to uniqueValues and name one property in properties to list the distinct values of that property, up to 1000 values. filter and advancedFilter select which time series are included.
List data points
POST /timeseries/data/list reads data points from multiple time series and supports aggregation and pagination.
If start is omitted both at the top level and on an item, it defaults to epoch 0 (1 January 1970). Data points before 1970 are excluded unless you set start to a negative number.
Best practices
Use these tips to increase throughput and query performance.Message size and batching
Send many data points from the same time series in the same request. If you have room for more data points in the request, you can add more time series. Preferred batch sizes are up to 100k numeric data points or 10-100k string data points, depending on the string length (around 1 MB is good). For each time series, group the data points in time. Ideally, different requests shouldn’t have overlapping time series ranges. If data changes, update existing ranges.Error handling
For general guidance on handling429 Too Many Requests responses, exponential backoff, and retry strategies, see API rate limits.
If you receive repeated 500 Internal Server Error responses, you may have found a bug. Contact support@cognite.com and include the request ID from the error message.
Retries and idempotency
Most API endpoints, including all datapoint requests, are idempotent. You can send the same request several times without any effect beyond the first request. When you modify or delete time series, subsequent requests can fail harmlessly if the references have become invalid. The only endpoint that’s not idempotent is creating a time series without externalId. For each successful request, you generate a new time series. The recommendation is to always useexternalId on your time series.
CDF always applies the complete request or nothing at all. A 200 response indicates that the complete request was applied.