Cognite Data sets API

Data sets let you document and track data lineage, ensure data integrity, and allow 3rd parties to write their insights securely back to a Cognite Data Fusion (CDF) project. Data sets group and track data by its source. For example, a data set can contain all work orders originating from SAP. Typically, an organization will have one data set for each of its data ingestion pipelines in CDF. A data set consists of metadata about the data set, and the data objects that belong to the data set. Data objects, for example events, files, and time series, are added to a data set through the `dataSetId` field of the data object. Each data object can belong to only one data set. To learn more about data sets, see [getting started guide](https://docs.cognite.com/cdf/data_governance/concepts/datasets/)

OpenAPI Specification

cognite-data-sets-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Cognite 3D Asset Mapping Data sets 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\nTo import your data into Postman, select **Import**, and the Import modal opens.\nYou 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: support@cognite.com
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: Data sets
  description: 'Data sets let you document and track data lineage, ensure data integrity, and allow 3rd parties to write their insights securely back to a Cognite Data Fusion (CDF) project.



    Data sets group and track data by its source. For example, a data set can contain all work orders originating from SAP. Typically, an organization will have one data set for each of its data ingestion pipelines in CDF.



    A data set consists of metadata about the data set, and the data objects that belong to the data set. Data objects, for example events, files, and time series, are added to a data set through the `dataSetId` field of the data object. Each data object can belong to only one data set.



    To learn more about data sets, see [getting started guide](https://docs.cognite.com/cdf/data_governance/concepts/datasets/)'
paths:
  /datasets:
    post:
      tags:
      - Data sets
      summary: Create data sets
      description: '


        > **Required capabilities:** `datasetsAcl:WRITE`


        You can create a maximum of 10 data sets per request.'
      operationId: createDataSets
      requestBody:
        description: List of the data sets to create.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DataSetSpecList'
        required: true
      x-capability:
      - datasetsAcl:WRITE
      responses:
        '200':
          $ref: '#/components/responses/DataSetListResponse'
        '400':
          $ref: '#/components/responses/ErrorResponse'
      x-code-samples:
      - lang: JavaScript
        label: JavaScript SDK
        source: "const datasets = [\n  { externalId: 'sensitiveData' },\n  { writeProtected: true }\n];\nconst createdDatasets = await client.datasets.create(datasets);"
      - lang: Python
        label: Python SDK
        source: 'from cognite.client.data_classes import DataSetWrite

          data_sets = [DataSetWrite(name="1st level"), DataSetWrite(name="2nd level")]

          res = client.data_sets.create(data_sets)

          '
      - lang: Java
        label: Java SDK
        source: "List<DataSet> upsertDataSetList = List.of(DataSet.newBuilder() \n          .setExternalId(\"10\") \n          .setName(\"generated-\") \n          .setDescription(\"Generated description\") \n          .putMetadata(\"type\", \"sdk-data-generator\") \n          .putMetadata(\"source\", \"sdk-data-generator\") \n          .build()); \n\nList<DataSet> upsertDataSetsResults = \n          client.datasets().upsert(upsertDataSetList); \n\n"
  /datasets/list:
    post:
      tags:
      - Data sets
      summary: Filter data sets
      description: '


        > **Required capabilities:** `datasetsAcl:READ`


        Use advanced filtering options to find data sets.'
      operationId: listDataSets
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DataSetFilterRequest'
      x-capability:
      - datasetsAcl:READ
      responses:
        '200':
          $ref: '#/components/responses/DataSetFilterResponse'
        '400':
          $ref: '#/components/responses/ErrorResponse'
      x-code-samples:
      - lang: JavaScript
        label: JavaScript SDK
        source: 'const dataSets = await client.datasets.list({ filter: { createdTime: { min: new Date(''1 jan 2018''), max: new Date(''1 jan 2019'') }}});'
      - lang: Python
        label: Python SDK
        source: "data_sets_list = client.data_sets.list(limit=5, write_protected=False)\n\nfor data_set in client.data_sets:\n    data_set # do something with the data_set\n\nfor data_set_list in client.data_sets(chunk_size=2500):\n    data_set_list # do something with the list\n"
      - lang: Java
        label: Java SDK
        source: "List<DataSet> listDataSetsResults = new ArrayList<>(); \nclient.datasets() \n          .list(Request.create()) \n          .forEachRemaining(batch -> listDataSetsResults.addAll(batch)); \n\n"
  /datasets/aggregate:
    post:
      tags:
      - Data sets
      summary: Aggregate data sets
      description: '


        > **Required capabilities:** `datasetsAcl:READ`


        Aggregate data sets in the same project. Criteria can be applied to select a subset of data sets.'
      operationId: aggregateDataSets
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DataSetAggregateRequest'
      responses:
        '200':
          $ref: '#/components/responses/DataSetAggregateResponse'
        '400':
          $ref: '#/components/responses/ErrorResponse'
      x-capability:
      - datasetsAcl:READ
      x-code-samples:
      - lang: JavaScript
        label: JavaScript SDK
        source: 'const aggregates = await client.datasets.aggregate({ filter: { writeProtected: true } });

          console.log(''Number of write protected datasets: '', aggregates[0].count)'
      - lang: Python
        label: Python SDK
        source: 'aggregate_protected = client.data_sets.aggregate(filter={"write_protected": True})

          '
      - lang: Java
        label: Java SDK
        source: "Aggregate aggregate = client \n          .datasets() \n          .aggregate(Request.create() \n          .withFilterParameter(\"source\",\"sdk-data-generator\")); \n\n"
  /datasets/byids:
    post:
      tags:
      - Data sets
      summary: Retrieve data sets
      description: '


        > **Required capabilities:** `datasetsAcl:READ`


        Retrieve data sets by IDs or external IDs.'
      operationId: getDataSets
      requestBody:
        description: List of the IDs of the data sets to retrieve. You can retrieve a maximum of 1000 data sets per request. All IDs must be unique.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DataSetIdEitherList'
      x-capability:
      - datasetsAcl:READ
      responses:
        '200':
          $ref: '#/components/responses/DataSetListResponse'
        '400':
          $ref: '#/components/responses/ErrorResponse'
      x-code-samples:
      - lang: JavaScript
        label: JavaScript SDK
        source: 'const dataSets = await client.datasets.retrieve([{id: 123}, {externalId: ''abc''}]);'
      - lang: Python
        label: Python SDK
        source: 'res = client.data_sets.retrieve(id=1)


          res = client.data_sets.retrieve(external_id="1")

          res = client.data_sets.retrieve_multiple(ids=[1, 2, 3])


          res = client.data_sets.retrieve_multiple(external_ids=["abc", "def"], ignore_unknown_ids=True)

          '
      - lang: Java
        label: Java SDK
        source: "List<Item> retrieveByExternalIds = List.of(Item.newBuilder() \n          .setExternalId(\"10\") \n          .build()); \nList<DataSet> retrieveDataSetResults = client.datasets() \n          .retrieve(retrieveByExternalIds);//by list of items \nList<DataSet> retrieveDataSetResults = client.datasets() \n          .retrieve(\"10\", \"20\");//by varargs of String \n\nList<Item> retrieveByInternalIds = List.of(Item.newBuilder() \n          .setId(10) \n          .build()); \nList<DataSet> retrieveDataSetResults = client.datasets() \n          .retrieve(retrieveByInternalIds);//by list of items \nList<DataSet> retrieveDataSetResults = client.datasets() \n          .retrieve(10, 20);//by varargs of Long \n\n"
  /datasets/update:
    post:
      tags:
      - Data sets
      summary: Update data sets.
      operationId: updateDataSets
      requestBody:
        description: All provided IDs and external IDs must be unique. Fields that are not included in the request, are not changed.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DataSetUpdateList'
        required: true
      x-capability:
      - datasetsAcl:WRITE
      responses:
        '200':
          $ref: '#/components/responses/DataSetListResponse'
        '400':
          $ref: '#/components/responses/ErrorResponse'
      x-code-samples:
      - lang: JavaScript
        label: JavaScript SDK
        source: 'const dataSets = await client.datasets.update([{id: 123, update: {description: {set: ''New description''}}}]);'
      - lang: Python
        label: Python SDK
        source: 'data_set = client.data_sets.retrieve(id=1)

          data_set.description = "New description"

          res = client.data_sets.update(data_set)


          from cognite.client.data_classes import DataSetUpdate

          my_update = DataSetUpdate(id=1).description.set("New description").metadata.remove(["key"])

          res = client.data_sets.update(my_update)

          '
      - lang: Java
        label: Java SDK
        source: "List<DataSet> upsertDataSetList = //list of DataSet; \nList<DataSet> upsertDataSetsResults = \n          client.datasets().upsert(upsertDataSetList); \n\n"
      description: '


        > **Required capabilities:** `datasetsAcl:WRITE`

        '
components:
  schemas:
    SetStringField:
      type: object
      title: set
      required:
      - set
      properties:
        set:
          type: string
    CogniteExternalId:
      description: The external ID provided by the client. Must be unique for the resource type.
      type: string
      maxLength: 255
      example: my.known.id
    DataSetAggregate:
      description: Aggregation group of data sets
      type: object
      required:
      - count
      properties:
        count:
          type: integer
          description: Size of the aggregation group
          format: int64
    IgnoreUnknownIdsField:
      type: object
      properties:
        ignoreUnknownIds:
          description: Ignore IDs and external IDs that are not found
          type: boolean
          default: false
    ObjectPatchSetDataSet:
      title: set
      type: object
      required:
      - set
      properties:
        set:
          uniqueItems: true
          type: object
          description: Set the key-value pairs. All existing key-value pairs will be removed.
          additionalProperties:
            type: string
            maxLength: 10240
          x-maxKeyLength: 128
          x-maxTotalSize: 10240
          maxProperties: 256
          example:
            key1: value1
            key2: value2
    DataDataSetAggregate:
      type: object
      required:
      - items
      properties:
        items:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/DataSetAggregate'
    CogniteExternalIdPrefix:
      description: Filter by this (case-sensitive) prefix for the external ID.
      type: string
      maxLength: 255
      example: my.known.prefix
    CogniteInternalId:
      description: A server-generated ID for the object.
      type: integer
      minimum: 1
      maximum: 9007199254740991
      format: int64
    Error:
      type: object
      required:
      - code
      - message
      description: Cognite API error.
      properties:
        code:
          type: integer
          description: HTTP status code.
          format: int32
          example: 401
        message:
          type: string
          description: Error message.
          example: Could not authenticate.
        missing:
          type: array
          description: List of lookup objects that do not match any results.
          items:
            type: object
            additionalProperties: true
        duplicated:
          type: array
          description: List of objects that are not unique.
          items:
            type: object
            additionalProperties: true
    DataSetExternalId:
      type: object
      title: DataSetExternalId
      required:
      - externalId
      properties:
        externalId:
          $ref: '#/components/schemas/CogniteExternalId'
    DataSetFilterRequest:
      allOf:
      - type: object
        properties:
          filter:
            $ref: '#/components/schemas/DataSetFilter'
          limit:
            description: Limits the number of results to return.
            type: integer
            format: int32
            minimum: 1
            maximum: 1000
            default: 100
      - $ref: '#/components/schemas/Cursor'
    ObjectPatchAddRemoveDataSet:
      title: add/remove
      type: object
      properties:
        add:
          uniqueItems: true
          type: object
          description: Add the key-value pairs. Values for existing keys will be overwritten.
          additionalProperties:
            type: string
            maxLength: 10240
          x-maxKeyLength: 128
          x-maxTotalSize: 10240
          maxProperties: 256
          example:
            key1: value1
            key2: value2
        remove:
          uniqueItems: true
          type: array
          description: Remove the key-value pairs with the specified keys.
          example:
          - value1
          - value2
          items:
            type: string
    DataSetChangeById:
      allOf:
      - $ref: '#/components/schemas/DataSetPatch'
      - type: object
        required:
        - id
        properties:
          id:
            $ref: '#/components/schemas/CogniteInternalId'
    DataSetList:
      type: object
      required:
      - items
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/DataSet'
    SetDataSetDescription:
      type: object
      title: set
      required:
      - set
      properties:
        set:
          type: string
          description: Set a new value for the string, or remove the value.
          minLength: 1
          maxLength: 500
    DataSetSpecList:
      type: object
      required:
      - items
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/DataSetSpec'
          minItems: 1
          maxItems: 10
    DataSetSpec:
      type: object
      properties:
        externalId:
          $ref: '#/components/schemas/CogniteExternalId'
        name:
          description: The name of the data set.
          minLength: 1
          maxLength: 50
          type: string
        description:
          description: The description of the data set.
          minLength: 1
          maxLength: 500
          type: string
        metadata:
          $ref: '#/components/schemas/DataSetMetadata'
        writeProtected:
          default: false
          type: boolean
          description: To write data to a write-protected data set, you need to be a member of a group that has the "datasets:owner" action for the data set. To learn more about write-protected data sets, follow this [guide](https://docs.cognite.com/cdf/data_governance/concepts/datasets/#write-protection).
    EpochTimestamp:
      description: The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.
      type: integer
      minimum: 0
      format: int64
      example: 1730204346000
    DataSetUpdate:
      oneOf:
      - $ref: '#/components/schemas/DataSetChangeById'
      - $ref: '#/components/schemas/DataSetChangeByExternalId'
    SinglePatchDataSetDescription:
      title: set
      type: object
      oneOf:
      - $ref: '#/components/schemas/SetDataSetDescription'
      - $ref: '#/components/schemas/RemoveField'
    DataSetListWithCursor:
      type: object
      allOf:
      - $ref: '#/components/schemas/DataSetList'
      - type: object
        properties:
          nextCursor:
            type: string
            description: The cursor to get the next page of results (if available).
    SetDataSetName:
      type: object
      title: set
      required:
      - set
      properties:
        set:
          type: string
          description: Set a new value for the string, or remove the value.
          minLength: 1
          maxLength: 50
    DataSet:
      allOf:
      - $ref: '#/components/schemas/DataSetSpec'
      - type: object
        required:
        - id
        - createdTime
        - lastUpdatedTime
        - writeProtected
        properties:
          id:
            $ref: '#/components/schemas/CogniteInternalId'
          createdTime:
            $ref: '#/components/schemas/EpochTimestamp'
          lastUpdatedTime:
            $ref: '#/components/schemas/EpochTimestamp'
    DataSetIdEither:
      oneOf:
      - $ref: '#/components/schemas/DataSetInternalId'
      - $ref: '#/components/schemas/DataSetExternalId'
    DataSetChangeByExternalId:
      allOf:
      - $ref: '#/components/schemas/DataSetPatch'
      - type: object
        required:
        - externalId
        properties:
          externalId:
            $ref: '#/components/schemas/CogniteExternalId'
    DataSetAggregateRequest:
      description: Aggregation request of data sets. Filters exact field matching or timestamp ranges inclusive min and max.
      allOf:
      - type: object
        properties:
          filter:
            $ref: '#/components/schemas/DataSetFilter'
    SinglePatchDataSetName:
      title: set
      type: object
      oneOf:
      - $ref: '#/components/schemas/SetDataSetName'
      - $ref: '#/components/schemas/RemoveField'
    DataSetMetadata:
      type: object
      description: '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 total size at most 10240.'
      additionalProperties:
        type: string
        maxLength: 10240
      x-maxKeyLength: 128
      x-maxTotalSize: 10240
      maxProperties: 256
    EpochTimestampRange:
      description: Range between two timestamps (inclusive).
      type: object
      properties:
        max:
          description: Maximum timestamp (inclusive). The timestamp is represented as number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.
          type: integer
          minimum: 0
          format: int64
        min:
          description: Minimum timestamp (inclusive). The timestamp is represented as number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.
          type: integer
          minimum: 0
          format: int64
    DataSetIdEitherList:
      type: object
      allOf:
      - type: object
        required:
        - items
        properties:
          items:
            type: array
            minItems: 1
            maxItems: 1000
            uniqueItems: true
            items:
              $ref: '#/components/schemas/DataSetIdEither'
      - $ref: '#/components/schemas/IgnoreUnknownIdsField'
    DataSetPatch:
      type: object
      description: Update applied to single data set
      required:
      - update
      properties:
        update:
          type: object
          properties:
            externalId:
              $ref: '#/components/schemas/SinglePatchString'
            name:
              $ref: '#/components/schemas/SinglePatchDataSetName'
            description:
              $ref: '#/components/schemas/SinglePatchDataSetDescription'
            metadata:
              $ref: '#/components/schemas/ObjectPatchDataSet'
            writeProtected:
              $ref: '#/components/schemas/SinglePatchBoolean'
    RemoveField:
      title: remove
      type: object
      required:
      - setNull
      properties:
        setNull:
          type: boolean
          example: true
    ObjectPatchDataSet:
      type: object
      description: '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-value pairs, of total size at most 10240.'
      oneOf:
      - $ref: '#/components/schemas/ObjectPatchSetDataSet'
      - $ref: '#/components/schemas/ObjectPatchAddRemoveDataSet'
    DataSetFilter:
      description: Filter on data sets with strict matching.
      type: object
      properties:
        metadata:
          $ref: '#/components/schemas/DataSetMetadata'
        createdTime:
          $ref: '#/components/schemas/EpochTimestampRange'
        lastUpdatedTime:
          $ref: '#/components/schemas/EpochTimestampRange'
        externalIdPrefix:
          $ref: '#/components/schemas/CogniteExternalIdPrefix'
        writeProtected:
          type: boolean
    SinglePatchBoolean:
      type: object
      title: set
      required:
      - set
      properties:
        set:
          type: boolean
    DataSetUpdateList:
      type: object
      required:
      - items
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/DataSetUpdate'
    Cursor:
      type: object
      properties:
        cursor:
          type: string
          example: 4zj0Vy2fo0NtNMb229mI9r1V3YG5NBL752kQz1cKtwo
      description: '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 value as the

        `cursor` parameter in the next request.


        Note that the cursor may or may not be encrypted, but either way, it is not intended to be

        decoded. Its internal structure is not a part of the public API, and may change without

        notice. You should treat it as an opaque string and not attempt to craft your own cursors.

        '
    SinglePatchString:
      title: set
      type: object
      oneOf:
      - $ref: '#/components/schemas/SetStringField'
      - $ref: '#/components/schemas/RemoveField'
      description: Set a new value for the string, or remove the value.
    DataSetInternalId:
      type: object
      title: DataSetInternalId
      required:
      - id
      properties:
        id:
          $ref: '#/components/schemas/CogniteInternalId'
  responses:
    DataSetAggregateResponse:
      description: Response with list of data set aggregations
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DataDataSetAggregate'
    DataSetListResponse:
      description: A list of data sets.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DataSetList'
    ErrorResponse:
      description: The response for a failed request.
      content:
        application/json:
          schema:
            type: object
            required:
            - error
            properties:
              error:
                $ref: '#/components/schemas/Error'
    DataSetFilterResponse:
      description: A list of data sets.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DataSetListWithCursor'
  securitySchemes:
    oidc-token:
      type: http
      scheme: bearer
      bearerFormat: OpenID Connect or OAuth2 token
      description: 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 accept OpenID Connect tokens. Use a header key of 'Authorization' with a value of 'Bearer $accesstoken'. The token can be obtained through any flow supported by the identity provider.
    oauth2-client-credentials:
      type: oauth2
      description: 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 accept OpenID Connect tokens. Use a header key of 'Authorization' with a value of 'Bearer $accesstoken'. The token can be obtained through any flow supported by the identity provider.
      flows:
        clientCredentials:
          tokenUrl: https://your-idps.token.url/
          scopes:
            default: https://{cluster}.cognitedata.com/.default
    oauth2-auth-code:
      type: oauth2
      description: 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 accept OpenID Connect tokens. Use a header key of 'Authorization' with a value of 'Bearer $accesstoken'. The token can be obtained through any flow supported by the identity provider.
      flows:
        authorizationCode:
          authorizationUrl: https://your-idps.authorization.url/
          tokenUrl: https://your-idps.token.url/
          scopes:
            default: https://{cluster}.cognitedata.com/.default
    oauth2-open-industrial-data:
      type: oauth2
      description: Auth flow for Open Industrial Data. Get your client secret from https://hub.cognite.com/open-industrial-data-211.
      flows:
        clientCredentials:
          tokenUrl: https://login.microsoftonline.com/48d5043c-cf70-4c49-881c-c638f5796997/oauth2/v2.0/token
          scopes:
            default: https://api.cognitedata.com/.default
    org-oidc-token:
      type: openIdConnect
      openIdConnectUrl: https://auth.cognite.com/.well-known/openid-configuration
      description: '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 obtained by performing an OIDC login flow toward `auth.cognite.com`.

        This is a single URL for all CDF organizations.'
x-tagGroups:
- name: Changelog
  tags:
  - Changelog
- name: Organizations and projects
  tags:
  - Organizations
  - Projects
- name: Identity and access management
  tags:
  - Principals
  - Groups
  - Security categories
  - Sessions
  - Token
  - User profiles
  - Project Deletion Reporting
- name: Data modeling
  tags:
  - Data Modeling
  - Data models
  - Spaces
  - Views
  - Containers
  - Nodes
  - Instances
  - Statistics
  - Streams
  - Records
- name: Asset-centric data model
  tags:
  - Assets
  - Time series
  - Synthetic Time Series
  - Data point subscriptions
  - Events
  - Files
  - Sequences
  - Geospatial
  - Seismic
- name: 3D
  tags:
  - 3D Models
  - 3D Model Revisions
  - 3D Files
  - 3D Asset Mapping
  - 3D Contextualization
  - 3D Jobs
  - 3D Migration
  - 3D Scenes
- name: Contextualization
  tags:
  - Entity matching
  - Entity matching pipelines
  - Engineering diagrams
  - Vision
  - Advanced joins
- name: Cognite AI
  tags:
  - Agents
  - Skills
  - Chat Completions
  - Document AI
  - Models
- name: Documents
  tags:
  - Documents
  - Document preview
- name: Data ingestion
  tags:
  - Raw
  - Extraction Pipelines
  - Extraction Pipelines Runs
  - Extraction Pipelines Config
  - Extractors
- name: Data organization
  tags:
  - Data sets
  - Data domains
  - Data products
  - Rule sets
  - Labels
  - Relationships
  - Annotations
- name: Transformations
  tags:
  - Transformations
  - Transformation Jobs
  - Transformation Schedules
  - Transformation Notifications
  - Query
  - Schema
- name: Functions
  tags:
  - Functions
  - Function c

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