Cognite Data Fusion API

The Cognite Data Fusion (CDF) REST API provides programmatic access to industrial data including assets, time series, events, files, sequences, 3D models, data modeling spaces and instances, entity matching for contextualization, SQL transformations, serverless functions, workflow orchestration, and SAP writeback. Supports OAuth 2.0 and API key authentication against project-scoped endpoints.

OpenAPI Specification

cognite-data-fusion-api.yaml Raw ↑
openapi: 3.1.0
info:
  title: Cognite API
  description: "# Introduction\nThis is the reference documentation for the Cognite\
    \ API with\nan overview of all the available methods.\n\n# Postman\nSelect the\
    \ **Download** button to download our OpenAPI specification to get started.\n\n\
    To import your data into Postman, select **Import**, and the Import modal opens.\n\
    You can import items by dragging or dropping files or folders. You can choose\
    \ how to import your API and manage the import settings in **View Import Settings**.\n\
    \nIn the Import Settings, set the **Folder organization** to **Tags**, select\n\
    **Enable optional parameters** to turn off the settings, and select **Always inherit\
    \ authentication** to turn on the settings. Select **Import**.\n\nSet the Authorization\
    \ to **Oauth2.0**. By default, the settings are for Open Industrial Data. Navigate\
    \ to [Cognite Hub](https://hub.cognite.com/open-industrial-data-211) to understand\
    \ how to get the credentials for use in Postman.\n\nFor more information, see\
    \ [Getting Started with Postman](https://developer.cognite.com/dev/guides/postman/).\n\
    \n# Pagination\nMost resource types can be paginated, indicated by the field `nextCursor`\
    \ in the response.\nBy passing the value of `nextCursor` as the cursor you will\
    \ get the next page of `limit` results.\nNote that all parameters except `cursor`\
    \ has to stay the same.\n\n# Parallel retrieval\nAs general guidance, Parallel\
    \ Retrieval is a technique that should be used when due to query complexity, retrieval\
    \ of data in a single request is significantly slower than it would otherwise\
    \ be for a simple request.  Parallel retrieval does not act as a speed multiplier\
    \ on optimally running queries.  By parallelizing such requests, data retrieval\
    \ performance can be tuned to meet the client application needs. \n\nCDF supports\
    \ parallel retrieval through the `partition` parameter, which has the format `m/n`\
    \ where `n` is the amount of partitions you would like to split the entire data\
    \ set into.\nIf you want to download the entire data set by splitting it into\
    \ 10 partitions, do the following in parallel with `m` running from 1 to 10:\n\
    \  - Make a request to `/events` with `partition=m/10`.\n  - Paginate through\
    \ the response by following the cursor as explained above. Note that the `partition`\
    \ parameter needs to be passed to all subqueries.\n\nProcessing of parallel retrieval\
    \ requests is subject to concurrency quota availability. The request returns the\
    \ `429` response upon exceeding concurrency limits. See the Request throttling\
    \ chapter below.\n\nTo prevent unexpected problems and to maximize read throughput,\
    \ you should at most use 10 partitions. \nSome CDF resources will automatically\
    \ enforce a maximum of 10 partitions.\nFor more specific and detailed information,\
    \ please read the ```partition``` attribute documentation for the CDF resource\
    \ you're using.  \n\n# Requests throttling\nCognite Data Fusion (CDF) returns\
    \ the HTTP `429` (too many requests) response status code when project capacity\
    \ exceeds the limit.\n\nThe throttling can happen:\n  - If a user or a project\
    \ sends too many (more than allocated) concurrent requests.\n  - If a user or\
    \ a project sends a too high (more than allocated) rate of requests in a given\
    \ amount of time.\n\nCognite recommends using a retry strategy based on truncated\
    \ exponential backoff to handle sessions with HTTP response codes 429.\n\nCognite\
    \ recommends using a reasonable number (up to 10) of  `Parallel retrieval` partitions.\n\
    \nFollowing these strategies lets you slow down the request frequency to maximize\
    \ productivity without having to re-submit/retry failing requests.\n\nSee more\
    \ [here](https://docs.cognite.com/dev/concepts/resource_throttling).\n\n# API\
    \ versions\n## Version headers\nThis API uses calendar versioning, and version\
    \ names follow the `YYYYMMDD` format.\nYou can find the versions currently available\
    \ by using the version selector at the top of this page.\n\nTo use a specific\
    \ API version, you can pass the `cdf-version: $version` header along with your\
    \ requests to the API.\n\n## Beta versions\nThe beta versions provide a preview\
    \ of what the stable version will look like in the future.\nBeta versions contain\
    \ functionality that is reasonably mature, and highly likely to become a part\
    \ of the stable API.\n\nBeta versions are indicated by a `-beta` suffix after\
    \ the version name. For example, the beta version header for the\n2023-01-01 version\
    \ is then `cdf-version: 20230101-beta`.\n\n## Alpha versions\nAlpha versions contain\
    \ functionality that is new and experimental, and not guaranteed to ever become\
    \ a part of the stable API.\nThis functionality presents no guarantee of service,\
    \ so its use is subject to caution.\n\nAlpha versions are indicated by an `-alpha`\
    \ suffix after the version name. For example, the alpha version header for\nthe\
    \ 2023-01-01 version is then `cdf-version: 20230101-alpha`."
  version: v1
  contact:
    name: Cognite Support
    url: https://support.cognite.com
    email: [email protected]
servers:
- url: https://{cluster}.cognitedata.com/api/v1/projects/{project}
  description: The URL for the CDF cluster to connect to
  variables:
    cluster:
      enum:
      - api
      - az-tyo-gp-001
      - az-eastus-1
      - az-power-no-northeurope
      - westeurope-1
      - asia-northeast1-1
      - gc-dsm-gp-001
      default: api
      description: The CDF cluster to connect to
    project:
      default: publicdata
      description: The CDF project name.
security:
- oidc-token:
  - https://{cluster}.cognitedata.com/.default
- oauth2-client-credentials:
  - https://{cluster}.cognitedata.com/.default
- oauth2-open-industrial-data:
  - https://api.cognitedata.com/.default
- oauth2-auth-code:
  - https://{cluster}.cognitedata.com/.default
tags:
- name: Changelog
  description: "This article documents all notable changes to the Cognite Data Fusion\
    \ (CDF) API v1.\n\n<!--\nGroup changes by release (and date), API area, and these\
    \ types of changes:\n\n - **Added** for new features.\n - **Changed** for changes\
    \ in existing functionality.\n - **Deprecated** for soon-to-be removed features.\n\
    \ - **Removed** for now removed features.\n - **Fixed** for any bug fixes.\n -\
    \ **Security** in case of vulnerabilities.-\n\nUse[ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html)\
    \ for dates: 2019-06-20\n\nAdd entries for new features on top of this page. Newest\
    \ release goes on top.\nChanges only for API v1 series\n\nTemplate:\n\n## <YYYY-MM-DD>\n\
    \n### <Core resource name>\n\n#### <Group name -- see top of the page>\n\n   \
    \ - <my change>\n    - <my change>\n\n#### <Group name -- see top of the page>\n\
    \n    - <my change>\n    - <my change>\n-->\n\n## 2026-05-28\n### Data Products\n\
    #### Added\n\nA new API for managing data products. Data products act as a governance\
    \ layer around data modeling, establishing trust and reliability for business\
    \ decisions through clear ownership, comprehensive metadata, and standardized\
    \ access patterns.\n- `POST /dataproducts` creates a data product.\n- `GET  /dataproducts`\
    \ lists all data products.\n- `GET  /dataproducts/{externalId}` gets a data product.\n\
    - `POST /dataproducts/update` updates a data product.\n- `POST /dataproducts/delete`\
    \ deletes a data product.\n- `POST /dataproducts/{externalId}/versions` creates\
    \ a data product version.\n- `GET  /dataproducts/{externalId}/versions` lists\
    \ all versions of a data product.\n- `GET  /dataproducts/{externalId}/versions/{version}`\
    \ gets a data product version.\n- `POST /dataproducts/{externalId}/versions/update`\
    \ updates a data product version.\n- `POST /dataproducts/{externalId}/versions/delete`\
    \ deletes data product versions.\n\n### Entity matching\n\n#### Changed\n\n- `GET\
    \ /context/entitymatching`: added cursor pagination (`cursor` query parameter,\
    \ optional `nextCursor` in response). `limit` defaults to 100 with maximum 1000.\n\
    \n## 2026-05-27\n### Atlas AI\n#### Added\n- Agent list: optional query `skillExternalId`\
    \ to filter agents by skill external ID.\n\n#### Changed\n- Skills upload: query\
    \ `externalId` is required to set the CDF external ID for `SKILL.md` (trimmed\
    \ before validation; was optional with frontmatter `name` as fallback).\n- Skills\
    \ create: `externalId` is required on the create request body (was optional).\n\
    - Agent list: `skillName` query filter constrained to skill-name rules (1â\x80\
    \x9364 characters; lowercase letters, digits, and hyphens; must not start with\
    \ `cdf-`).\n- Skill `externalId`: 1â\x80\x93128 characters, no null (U+0000),\
    \ must not start with `cdf-` (replaces slug-style name rules, max 64).\n- Skills\
    \ upload: single UTF-8 `.md` file only (`SKILL.md` shape); zip archives and additional\
    \ skill files are no longer supported.\n- Skills create/upload: project may have\
    \ at most **200** skills (`maxSkillLimit` default **200**, was 30); exceeding\
    \ the limit returns **400**.\n- Download: `GET /ai/skills/{skill_external_id}/download`\
    \ â\x80\x94 path uses skill external ID (was `skill_name`); zip contains the skill's\
    \ `SKILL.md` only; `skill_external_id` is trimmed before validation.\n\n#### Removed\n\
    - `GET /ai/skills/{skill_name}/{file_external_id}` per-file download endpoint.\n\
    - `additionalFiles` on skill create/update and related schemas (`AdditionalFileRequest`,\
    \ `SkillAdditionalFileResponse`).\n- Zip-based skill upload and multi-file skill\
    \ packages.\n\n## 2026-05-26\n### Data Modeling API\n#### Added\n- Added `recordsOnlyContainers`\
    \ and `recordsOnlyContainerProperties` to `ProjectStatistics` response definition.\n\
    - Added `containerProperties`, `recordsOnlyContainers` and `recordsOnlyContainerProperties`\
    \ to `SpaceStatistics` response definition.\n\n## 2026-05-22\n### Chat Completions\
    \ API (alpha)\n#### Added\n- Added new `ai/openai/chat/completions` endpoint to\
    \ generate chat completions\n- Added new `ai/openai/models` endpoint to list available\
    \ models\n\n### Agents API (beta)\n#### Added\n- Added `subagents` field to the\
    \ agents API\n\n## 2026-05-21\n### Functions\n#### Changed\n- `POST /functions/{functionId}/call`\
    \ now returns `429 Too Many Requests` (previously `400`) when a function has reached\
    \ 100 concurrent running calls. The response schema is unchanged. This change\
    \ was communicated on Cognite Hub in September 2025.\n\n## 2026-05-18\n### Atlas\
    \ AI\n#### Changed\n- Skills download and per-file read endpoints: `skill_name`\
    \ and `file_external_id` path segments are trimmed of leading and trailing whitespace\
    \ before validation.\n- Per-file read `file_external_id`: accepts any 1â\x80\x93\
    128 character identifier without null (U+0000); updated parameter and response\
    \ descriptions.\n\n### Token API\n#### Added\n- Added \"Cognite Units Capability\"\
    \ to the token inspection response, including required `cogUnitsAcl` and `projectScope`\
    \ properties.\n\n## 2026-05-12\n### Atlas AI\n#### Added\n- Added Skills API (`/ai/skills`,\
    \ by-ids, delete, upload, download, per-file read) and related schemas.\n- Agent\
    \ schemas: `labels`, `skills`; runtime metadata and session chunk/progress response\
    \ types.\n- Agent session (beta): `retentionPolicy` when starting a conversation\
    \ (`temporary` by default vs `persisted`).\n\n#### Changed\n- Agent contract defaults:\
    \ model `azure/gpt-4.1`, runtime **1.2.0**; `ownerId` described as read-only (set\
    \ on create).\n\n### Functions\n#### Changed\n- `owner` on `POST /functions` is\
    \ now server-stamped from the caller's token when absent or when it carries the\
    \ reserved `user_identifier:` prefix; all other client-supplied values are preserved.\n\
    \n## 2026-05-08\n### Groups API\n#### Added\n- Added `cogUnitsAcl` support to\
    \ `CogniteCapability`, including `cogunits_aclAcl`, `cogunits_aclAction`, and\
    \ `cogunits_aclScope` schema definitions.\n\n### Data Workflows (internal)\n####\
    \ Added\n- Added `docParser` task type to Data Workflows\n\n## 2026-05-07\n###\
    \ Data Modeling API\n#### Added\n- Added `isAutoRetryable` to `UpsertConflict`\
    \ response definition.\n\n### Agent APIs (beta)\n#### Added\n- Documented the\
    \ `query` agent tool (beta) for exploring Cognite data models and instances with\
    \ direct SDK-level control.\n\n#### Changed\n- Updated the documented default\
    \ agent `runtimeVersion` to 1.2.0 (previously 1.1.1).\n\n## 2026-05-06\n### Data\
    \ Workflows (beta)\n#### Changed\n- Upgrade Json Mapping task type definition\
    \ to beta version\n- Remove deprecated `inputs` arguments from Json Mapping task\
    \ type\n\n### Cognite Functions\n#### Added\n- Added `functionType` as a get-only\
    \ field on Cognite Functions allowing to differentiate between `classic` functions\
    \ and `functionApp`.\n\n## 2026-05-05\n### Signals\n#### Changed\n- Signals API\
    \ is now in beta (promoted from alpha)\n\n### Seismic\n#### Removed\n- Seismic\
    \ API is removed\n\n## 2026-05-04\n### Simulator integration API\n#### Changed\n\
    - Made `simulatorIntegrationExternalId` optional when creating routines, routine\
    \ revisions, and simulation runs.\n- Added `queued` status to `SimulationRunStatus`\
    \ enum to represent runs which are not assigned to any connector.\n\n## 2026-04-30\n\
    ### Streams and Records API\n#### Added\n- `targetUnits` parameter has been added\
    \ to records `/sync`, `/filter` and `/aggregate` endpoint\n  requests, which allows\
    \ unit conversion from source units to specified target units or unit system.\n\
    - `includeTyping` parameter has been added to records `/sync`, `/filter` and `/aggregate`\
    \ endpoint\n  requests. If set to true, typing information of properties present\
    \ in the request and\n  the response will be included in the response.\n\n## 2026-04-23\n\
    ### Cognite Functions\n#### Changed\n- Cognite functions now use Python 3.13 (py313)\
    \ as the default runtime, replacing Python 3.12 (py312).\n\n### Agent APIs (beta)\n\
    #### Added\n- Extended `ReasoningDTO` with a structured `data` field to expose\
    \ machine-readable reasoning payloads in agent chat responses.\n- Added reasoning\
    \ payload schemas `AgentReasoningDataDTO` and `ToolCallDetailDTO` to represent\
    \ tool-call details in reasoning output.\n\n## 2026-04-21\n### Documents AI API\n\
    #### Added\n- Added an optional `text` field (array of strings, defaults to empty)\
    \ to `PageReferenceDTO` (beta). When the `DocumentAskTool` returns file attachments,\
    \ each page reference now includes the raw passage text that was cited, in addition\
    \ to the page number.\n\n## 2026-04-15\n### Data Modeling API\n#### Added\n- New\
    \ debug notice `intractableCursorWithNestedFilter` (grade D, warning): emitted\
    \ when a query\n  supplies both a cursor and a nested filter on the same result\
    \ set expression. The additional\n  join required by the nested filter can prevent\
    \ efficient index-backed pagination.\n\n## 2026-04-10\n### Cognite Functions\n\
    #### Added\n- Added functionsAcl:RUN action, which grants permission to call functions\
    \ without the ability to create or delete them. functionsAcl:WRITE continues to\
    \ include call access in addition to create and delete permissions.\n\n## 2026-03-25\n\
    ### Streams and Records API\n#### Changed\nStricter validation in aggregate records\
    \ request:\n- Aggregate identifiers can no longer contain `.` character.\n- Values\
    \ `_count` and `_bucket_count` can no longer be used as aggregate identifiers.\n\
    - Duplicate aggregate identifiers within the aggregate tree are no longer allowed.\n\
    \n## 2026-03-24\n### Data Modeling API\n#### Changed\n- Added `EnumProperty` to\
    \ `RecordContainerPropertyTypeDefinition`, enabling enum properties in containers\
    \ with `usedFor` set to `record`.\n- Updated the supported storage types description\
    \ for record container properties to include `enum`.\n\n## 2026-03-23\n### Streams\
    \ and Records API\n#### Changed\n- Fixed maximum number of active streams created\
    \ from `BasicLiveData` template to match what we actually allow.\n\n## 2026-03-20\n\
    ### Data Workflows (beta)\n#### Added\n- Added new `functionApp` task type, enabling\
    \ workflows to invoke HTTP endpoints on Cognite Function Apps. Supports built-in\
    \ system paths (e.g. `/__health__`, `/__routes__`) and user-defined routes.\n\n\
    ## 2026-03-17\n### Transformations\n#### Added\n- Added `autoCreate` field to\
    \ `ViewDataSource` and `DataModelSource` destination configurations for transformations.\
    \ The `autoCreate` field accepts an `AutoCreateOptions` object with three boolean\
    \ properties:\n  - `startNodes`: Controls automatic creation of missing start\
    \ nodes when creating edges (default: true)\n  - `endNodes`: Controls automatic\
    \ creation of missing end nodes when creating edges (default: true)\n  - `directRelations`:\
    \ Controls automatic creation of missing direct relation targets (default: true)\n\
    \  When set to false, the transformation will validate node/relation references\
    \ and return a 400 error if referenced instances do not exist.\n\n## 2026-03-12\n\
    ### 3D API (beta)\n#### Deprecated\n- Deprecated `ContextualizeImage360AnnotationBody`\
    \ and `DeleteContextualizedImage360AnnotationsBody` request bodies for the 360\
    \ image contextualization endpoints. These will be removed before the endpoints\
    \ are released. Use the RC (Release Candidate) variants (`ContextualizeImage360AnnotationRCBody`\
    \ and `DeleteContextualizedImage360AnnotationsRCBody`) instead.\n\n## 2026-03-09\n\
    ### Agent APIs (beta)\n#### Added\n- New OpenAI models: `azure/gpt-5.2`, `azure/gpt-5.4`\n\
    \nNote: Availability of models may differ between the chosen cloud provider and\
    \ region of the CDF cluster.\n\n## 2026-03-06\n### Agent APIs (beta)\n#### Changed\n\
    - Changed the default Query Knowledge Graph (QKG) Tool strategy from v1 to v2.\n\
    \n\n## 2026-03-04\n### Agent APIs (beta)\n#### Added\n- Added `stream` parameter\
    \ to `AgentSessionRequest` to enable progress message streaming.\n\n## 2026-01-20\n\
    ### Data Modeling API\n#### Added\n- Added 3 new endpoints to trigger revalidation\
    \ of failed constraints or indexes.\n    - `/models/containers/constraints/retry`\
    \ for container-level constraints (`requires`, `uniqueness`)\n    - `/models/containers/indexes/retry`\
    \ for indexes\n    - `/models/containers/properties/retry` for property-level\
    \ constraints (`nullable`, `maxListSize`, `maxTextSize`)\n\n## 2026-01-15\n###\
    \ Data Workflows\n#### Added\n- Added `maxConcurrentExecutions` field to workflows\
    \ to limit concurrent executions.\n\n## 2026-01-13\n### Hosted Extractors\n####\
    \ Added\n- Added support for client credentials authentication to eventhub sources.\n\
    \n## 2026-01-06\n### 3D API (beta)\n#### Added\n- Added (beta) documentation for\
    \ a new `/3d/contextualization/cad` endpoint, for contextualization of CAD nodes\
    \ and asset instanceIds in DataModelOnly projects. This endpoint is preferred\
    \ over the legacy `/3d/models/<modelId>/revisions/<revisionIs>/mappings` endpoint.\n\
    \n## 2025-12-06\n### Data Workflows\n#### Added\n- Added `parentTaskExternalId`\
    \ field to `TaskExecution` schema to identify the parent task for tasks within\
    \ dynamic tasks or subworkflows. The field is null for top-level tasks.\n\n##\
    \ 2025-12-05\n### 3D API (beta)\n#### Added\n- Added (beta) documentation for\
    \ the optional `pipelineConfiguration` property for the 3D API create revision\
    \ endpoint, for point cloud processing in Hybrid CDF projects. The settings within\
    \ that property controls opt-in point cloud processing steps such as 360-images\
    \ extraction, point cloud classification and point cloud volume suggestions.\n\
    \n## 2025-11-25\n### Data Workflows\n#### Added\n- Added `/workflows/triggers/{triggerExternalId}/pause`\
    \ endpoint to pause triggers. A paused trigger will not create new workflow executions\
    \ until resumed.\n- Added `/workflows/triggers/{triggerExternalId}/resume` endpoint\
    \ to resume a previously paused trigger.\n\n## 2025-11-28\n### Data Modeling API\n\
    #### Added\n- Added `record` value that can be specified for the container's ```usedFor```\
    \ property\n\n## 2025-11-26\n### Agent APIs (beta)\n#### Added\n- Within Agent\
    \ CRUD requests, under the agent objects `tools` section, a description of each\
    \ tool is now rendered above the selected `type` that explains what the tool is\
    \ about.\n\n### 3D API (beta)\n#### Added\n- Added more detailed documentation\
    \ for the OptimizerJob type in the 3d/jobs endpoint, especially configuration\
    \ for Point cloud processing. This will be available as Beta documentation.\n\n\
    ## 2025-11-21\n### Hosted extractors API\n#### Added\n- Added `authCertificate`\
    \ to REST sources.\n#### Deprecated\n- Deprecated eventhub `keyName` and `keyValue`\
    \ in favor of `authentication`. `username` and `password` with basic authentication\
    \ replaces the old fields. This is to make room for other forms of authentication.\n\
    \n## 2025-11-20\n### Agent APIs (beta)\n#### Added\n- Added `runtimeVersion` field\
    \ to agent creation, update, and response schemas. The runtime version defines\
    \ the complete execution environment including system prompt, available tools,\
    \ and core features. Defaults to version 1.0.2.\n- Added `examineDataSemantically`\
    \ (alpha) to the list of available tools for agents.\n- Added new AWS model: `aws/claude-4.5-sonnet`.\n\
    \n## 2025-11-18\n### Simulator integration API\n#### Added\n- Added `kind` field\
    \ to simulator routines and routine revisions (beta) to classify routines by size\
    \ and complexity; use `long` for routines that require more inputs, outputs, and\
    \ script steps than usual.\n- Added `kind` filter to the simulator routines list\
    \ endpoint (`POST /simulators/routines/list`) and routine revisions list endpoint\
    \ (`POST /simulators/routines/revisions/list`), allowing filtering of routines\
    \ by kind. In the revisions listing (`POST /simulators/routines/revisions/list`),\
    \ `includeAllFields=true` returns all fields but omits 'long' routines and cannot\
    \ be combined with the `kind` filter.\n\n## 2025-11-13\n### 3D API\n#### Added\n\
    - Added 3D API endpoints to create and delete image 360 contextualization connections\
    \ to CogniteAsset instances. These endpoints are only available in DataModelOnly\
    \ projects. Currently available in beta\n  - `POST /3d/contextualization/image360`\
    \ define image360 contextualizations towards assets\n  - `POST /3d/contextualization/image360/delete`\
    \ remove image360 contextualizations towards assets\n\n## 2025-11-11\n### Streams\
    \ and Records API\n#### Changed\n- Changed format of partial success response\
    \ for record ingest, upsert and delete operations.\n\n## 2025-11-06\n### Simulator\
    \ integration API\n- Added `simulatorExternalIds` filter to the simulator model\
    \ revisions list endpoint (`POST /simulators/models/revisions/list`), allowing\
    \ filtering of model revisions by simulator external IDs.\n\n## 2025-11-04\n###\
    \ Streams and Records API\n#### Added\n- The Streams and Records API is now in\
    \ General Availability (GA).\n    - The following endpoints are now available:\n\
    \        - `POST /streams` to create a stream.\n        - `DELETE /streams/{streamId}`\
    \ to delete a stream.\n        - `GET /streams` to list all streams.\n       \
    \ - `GET /streams/{streamId}` to retrieve a specific stream.\n        - `POST\
    \ /streams/{streamId}/records` to create new records into a stream.\n        -\
    \ `POST /streams/{streamId}/records/upsert` to create new or update existing records\
    \ in a mutable stream.\n        - `POST /streams/{streamId}/records/delete` to\
    \ delete records in a mutable stream.\n        - `POST /streams/{streamId}/records/filter`\
    \ to retrieve records from a stream.\n        - `POST /streams/{streamId}/records/sync`\
    \ to sync records from a stream.\n        - `POST /streams/{streamId}/records/aggregate`\
    \ to aggregate record data from a stream.\n\n## 2025-10-29\n### Simulator integration\
    \ API\n#### Added\n- Added `simulatorExternalIds` filter to the simulator routines\
    \ list endpoint (`POST /simulators/routines/list`), allowing filtering of routines\
    \ by simulator external IDs.\n- Added support for simulator routines aggregation\
    \ (`POST /simulators/routines/aggregate`)\n\n## 2025-10-07\n### Agents API\n####\
    \ Added\n- Added support for interactive message types in the Agent API, enabling\
    \ bidirectional communication between agents and clients. Agents can now request\
    \ clients to execute actions, and clients can respond with action messages containing\
    \ the results.\n\n## 2025-10-03\n### Cognite Functions\n#### Removed\n- Python\
    \ 3.9 (py39) is no longer supported as a runtime argument for Cognite functions.\n\
    \n## 2025-10-02\n### Agent APIs (beta)\n- Gemini 2.0 Flash and Claude 3 Haiku\
    \ have been retired as model options.\n\n## 2025-10-01\n### Data Modeling API\n\
    #### Added\n- Added `state` field to constraints returned from the service, describing\
    \ whether the constraint is validated or failed.\n- Added `state` field to indexes\
    \ returned from the service, describing whether the index is successfully built,\
    \ or if building failed.\n- Added fields `maxListSize` and `maxTextSize` to the\
    \ `constraintState` field in properties returned from the service, describing\
    \ whether the associated property-level constraints are valdiated or failed.\n\
    \n## 2025-09-29\n### Agent APIs (beta)\n#### Deprecated\n- `agentId` in the `/ai/agents/chat`\
    \ endpoint has been deprecated in favor of `agentExternalId`. `agentId` will be\
    \ retired from 2025-11-29.\n#### Removed\n- Gemini 1.5 Pro and Gemini 1.5 Flash\
    \ have been retired as model options.\n\n## 2025-09-26\n### Time Series API\n\
    #### Changed\n- Increased the maximum length of string data points from 255 characters\
    \ to 1023 bytes (UTF-8 encoded).\n\n## 2025-09-09\n### Data Modeling API\n####\
    \ Added\n- Added field `constraintState` to properties returned from the service,\
    \ describing the state of any property-level constraints. Currently includes the\
    \ field `nullability` which tracks the state of any non-null constraint.\n\n##\
    \ 2025-09-08\n\n### Default runtime in Cognite functions\n\n#### Changed\n- Default\
    \ Python runtime in Cognite functions has been updated from Python 3.11 (py311)\
    \ to Python 3.12 (py312).\n\n## 2025-09-02\n### Data Modeling API\n#### Added\n\
    - Added a `debug` parameter to the `/models/instances/query`, `/models/instances/sync`,\
    \ and `/models/instances/list` endpoints.\n- The feature returns `notices` providing\
    \ insights into query execution, which can be used for performance analysis and\
    \ optimization.\n\n## 2025-08-26\n### Data sets API\n#### Fixed\n- Add length\
    \ constraints on `name` and `description` fields for the `/update` endpoint to\
    \ disallow empty strings.\n\n## 2025-09-02\n### 3D API\n#### Added\n- Added 3D\
    \ API endpoints to create and delete point cloud volume contextualization connections\
    \ to CogniteAsset instances. These endpoints are only available in DataModelOnly\
    \ projects. Currently available in beta.\n  - `POST /3d/contextualization/pointcloud`\n\
    \  - `POST /3d/contextualization/pointcloud/delete`\n\n## 2025-08-28\n### Agent\
    \ APIs (beta)\n#### Added\n- New OpenAI models: `azure/o3`, `azure/o4-mini`, `azure/gpt-4.1`,\
    \ `azure/gpt-4.1-nano`, `azure/gpt-4.1-mini`, `azure/gpt-5`, `azure/gpt-5-mini`,\
    \ `azure/gpt-5-nano`\n- New Gemini models: `gcp/gemini-2.5-pro`, `gcp/gemini-2.5-flash`\n\
    - New AWS models:  `aws/claude-4-sonnet`, `aws/claude-4-opus`, `aws/claude-4.1-opus`\n\
    \nNote: Availability of models may differ between the chosen cloud provider and\
    \ region of the CDF cluster.\n\n#### Improved\n- Various improvements to the Agent\
    \ APIs after feedback from the initial alpha release. The Agent APIs (`/ai/agents`)\
    \ to programmatically build and interact with Atlas agents are now in beta state.\n\
    \n## 2025-08-29\n### Simulator integration API\n#### Changed\n- Introduced limits\
    \ for number of simulator nodes and edges in a simulator model revision flowsheet,\
    \ as well as number of properties per node. (Alpha feature)\n- Support multiple\
    \ flowsheets in a simulator model revision data. (Alpha feature)\n\n## 2025-09-02\n\
    ### IAM (Identity and access management)\n#### Added\n- The following endpoints\
    \ (all under https://auth.cognite.com) are added:\n  - `/api/v1/orgs/{org}/principals/{principal}/sessions`:\
    \ List login sessions for a user principal in an organization.\n  - `/api/v1/orgs/{org}/principals/{principal}/sessions/revoke`:\
    \ Revoke one or more login sessions for a user principal\n    in an organization.\n\
    \n## 2025-08-20\n### 3D API\n#### Added\n- Added support in the create 3D asset\
    \ mappings endpoint for creating asset mappings for 3D CAD `nodeId` and  CogniteAsset`assetInstanceId`\
    \ pairs. This creates connections between instances in data modelling and 3D CAD\
    \ nodes. Only available in Hybrid and DMSFirst CDF projects.\n- Added support\
    \ in the list 3D asset mappings endpoint for listing `assetInstanceId` based mappings,\
    \ enabled with the `getDmsInstances=true` parameter.\n\n## 2025-07-21\n### Data\
    \ Modeling API\n#### Added\n- Added `mode` to table expressions in the `/sync`\
    \ endpoint, to select between sync modes:\n  - `onePhase` (default, current behavior):\
    \ All instances are returned while following the cursor\n  - `twoPhase`: Existing\
    \ instances are returned first, then new instances are returned by following the\
    \ cursor\n  - `noBackfill`: Existing instances are not returned, only new instances\
    \ are yielded by following the cursor.\n- Added `backfillSort` to table expressions\
    \ in the `/sync` endpoint, to optionally specify how to sort existing instances\
    \ with `syncMode: twoPhase`.\n\n## 2025-07-18\n### Data Modeling API\n#### Added\n\
    - Add `timezone` property to the `/trigger` endpoint.\n\n## 2025-07-04\n### IAM\
    \ (Identity and access management)\n#### Added\n\n- Added `attributes` to group\
    \ creation in the POST `/api/v1/projects/:project/groups` endpoint to set attributes\
    \ for groups.\n\n## 2025-06-30\n### Data Modeling API\n#### Added\n- Add `allowExpiredCursorsAndAcceptMissedDeletes`\
    \ flag to the `/sync` endpoint.\n\n## 2025-05-21\n### Agent APIs\n#### Fixed\n\
    - Removed the duplicate `/api/v1/projects/{projectName}` prefix from all agents\
    \ endpoints.\n\n### Documents AI API\n#### Fixed\n- Removed the duplicate `/api/v1/projects/{projectName}`\
    \ prefix from all documents AI endpoints.\n\n\n## 2025-05-26\n### Simulator integration\
    \ API\n#### Changed\n- Introduced request body size limits for the simulator integration\
    \ API endpoints.\n  - `POST /simulators/routines/revisions` to create simulator\
    \ routines revisions: 50KB\n  - `POST /simulators/run` to run a simulation: 50KB\n\
    \  - In addition, the simulator connector won't be able to send more than 100KB\
    \ of data in a single run. See the [Simulator integration API documentation](https://api-docs.cognite.com/20230101-beta/tag/Simulators)\
    \ for more details.\n\n## 2025-05-21\n### Simulator integration API\n#### Changed\n\
    - The API now accepts empty strings for simulation values (inputs and outputs).\
    \ Previous restriction on \"STRING\" values to have a minimum length of 1 character\
   

# --- truncated at 32 KB (2846 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cognite/refs/heads/main/openapi/cognite-data-fusion-api.yaml