IBM Cloud API Docs

Introduction to common core functionality APIs for Data and AI SaaS products

You can use the common core functionality REST APIs for Data and AI SaaS products to work with assets and their workspaces: projects, deployment spaces, and catalogs. Common core functionality is shared among multiple products, such as watsonx as a Service, Cloud Pak for Data as a Service, and others.

If you are looking for the common core functionality APIs for software products, see here.

For more information, see these resources:

Endpoint URL

To form a complete API endpoint URL for your request, append the documented API method path to the base URL that matches your product instance location:

Authentication

Before you can call a common core API you must first create an IAM bearer token. Each token is valid only for one hour, and after a token expires you must create a new one if you want to continue using the API. The recommended method to retrieve a token programmatically is to create an API key for your IBM Cloud identity and then use the IAM token API to exchange that key for a token.

You can create a token in IBM Cloud or by using the IBM Cloud command line interface (CLI).

To create a token in the IBM Cloud:

  1. Log in to IBM Cloud and select Manage > Access (IAM) > API keys.
  2. Create an API key for your own personal identity, copy the key value, and save it in a secure place. After you leave the page, you will no longer be able to access this value.
  3. With your API key, set up a REST API tool and run the following command to the right

You can read more about managing API keys at Understanding API keys documentation page.

  1. Use the value of the access_token property for your API calls. Set the access_token value as the authorization header parameter for requests to the APIs. The format is Authorization: Bearer <access_token_value_here>. For example: Authorization: Bearer eyJhbGciOiJIUz......sgrKIi8hdFs

To create a token by using the IBM Cloud CLI:

  1. Follow the steps to install the CLI, log in to IBM Cloud, and get the token described here. Remove Bearer from the returned IAM token value in your API calls.

Curl command with API key to retrieve token

curl -X POST 'https://iam.cloud.ibm.com/identity/token'   -H 'Content-Type: application/x-www-form-urlencoded'   -d 'grant_type=urn:ibm:params:oauth:grant-type:apikey&apikey=MY_APIKEY'

Response

{
"access_token": "eyJhbGciOiJIUz......sgrKIi8hdFs",
"refresh_token": "SPrXw5tBE3......KBQ+luWQVY=",
"token_type": "Bearer",
"expires_in": 3600,
"expiration": 1473188353
}

Error handling

Responses with 400-series or 500-series status codes are returned when a request cannot be completed. The body of these responses follows the error model, which contains a code field to identify the problem and a message field to explain how to solve the problem. Each individual endpoint has specific error messages. All responses with 500 or 503 status codes are logged and treated as a critical failure requiring an emergency fix.

Rate Limiting

The following rate limiting headers are supported by some of the common core service APIs:

  1. X-RateLimit-Limit: If rate limiting is active, this header indicates the number of requests permitted per hour;
  2. X-RateLimit-Remaining: If rate limiting is active, this header indicates the number of requests remaining in the current rate limit window;
  3. X-RateLimit-Reset: If rate limiting is active, this header indicates the time at which the current rate limit window resets, as a UNIX timestamp.

Methods

List defined connections

Lists defined connections.

Connections created with shared credentials will return secrets such as database passwords and API keys in clear text. Such secrets are stored encrypted but will be decrypted by the API when retrieved by the caller in order to access the data source defined by the connection. Clear text credentials are allowed because it is understood that the caller has already been explicitly added as a collabaorator in the project or catalog in which the connection is stored and is thus implicitly permitted access to the credentials required to connect to a data source.

Connections created with personal credentials will only display clear text credentials to the same user who provided them.

Use the following parameters to sort the results:

  • entity.name - ?_sort=+entity.name
  • metadata.create_time - ?_sort=-metadata.create_time

Use the following parameters to filter the results:

  • entity.name - ?entity.name=MyConnection
  • entity.datasource_type - ?entity.datasource_type=<asset_id>
  • entity.data_source_definition_asset_id - ?entity.data_source_definition_asset_id=<dsd_asset_id>
  • entity.context - ?entity.context=source
  • entity.properties - ?entity.properties={"name":"value"}
  • entity.flags - ?entity.flags=+personal_credentials
  • metadata.creator_id - ?metadata.creator_id=userid

Filtering is done by specifying the fields to filter on.

To filter on the properties of a connection, the exact values to compare must be provided in the entities.properties field and all values supplied must exactly match a property of a connection.

The entity.flags field specifies the flags a connection can have to be included in the list results. By default, all connections with no flags are returned.

Adding the name of a flag to entity.flags will add the connections with that flag to the list results. The name can be optionally prefixed with a plus sign (+) to indicate that it is being added.

Adding the name of a flag to entity.flags with a minus sign (-) prefix will remove those connections with that flag from the list results. All additions are done before the subtractions.

GET /v2/connections

Request

Custom Headers

  • Boolean indicator if cluster username and access token should be injected into connection properties. It has to be ensured that access token is not revealed unintentionally together with connection properties.

    Default: false

Query Parameters

  • The ID of the catalog to use. catalog_id, project_id, or space_id is required.

  • The ID of the project to use. catalog_id, project_id, or space_id is required.

  • The ID of the space to use. catalog_id, project_id, or space_id is required.

  • true for a project needs assets managed by the /userfs API, i.e. if it has git integration

    Default: false

  • The field to sort the results on, including whether to sort ascending (+) or descending (-), for example, sort=-metadata.create_time

  • The page token indicating where to start paging from.

  • The limit of the number of items to return, for example limit=50. If not specified a default of 100 will be used.

    Possible values: value ≥ 1

    Default: 100

  • The creator of the connection.

  • The name of the connection.

  • The data source type of the connection. To specify multiple data source types, use a comma-separated string, such as entity.datasource_type=<asset_id>,<asset_id>.

  • The data source definition asset id assigned to the connection. To specify multiple data source definition asset ids, use a comma-separated string, such as entity.data_source_definition_asset_id=<dsd_asset_id>,<dsd_asset_id>.

  • The context of the connection. Can be one of "source", "target", or "source,target".

  • The properties of the connection that must match for the connection to be included in the list.

  • A comma separated list of flags that must be present for the connection to be included in the list. If not provided, only connections with no flags will be returned.

  • Whether to return information about source and target interaction properties.

  • Whether to return decrypted secrets for unrestricted connections.

    Default: true

  • Whether to return information about connection and interaction properties.

    Default: true

  • Specify the id or the name of a data source type persona that the connection should present. If the data source type does not support alternate personas, then the connection's data source type is its only persona.

  • The 0-based index of the first result to return, for example, offset=200. If not specified, the default offset of 0 is used.

    Possible values: value ≥ 0

    Default: 0

  •   curl   --url {url}/v2/connections/?project_id={project_id}   --header 'Accept: application/json'   --header 'Authorization: Bearer {bearer_token}

Response

A page from a collection of connections.

Status Code

  • Connections with metadata.

  • You are not authorized to list the defined connections.

  • You are not permitted to perform this action.

  • The service is currently receiving more requests than it can process in a timely fashion. Please retry submitting your request later.

  • An error occurred. The defined connections cannot be listed.

  • A timeout occurred when processing your request. Please retry later.

Example responses
  • {
      "resources": [
        {
          "metadata": {
            "asset_id": "71cd92f7-08f7-48ec-b2ed-d2c6c16093df",
            "asset_type": "connection",
            "asset_category": "USER",
            "create_time": "2025-05-15T09:14:11.000Z",
            "creator_id": "1000331001",
            "project_id": "51b5dfbd-3c40-4c1f-860e-268b84ff0275",
            "resource_key": "lh_0000-0000-0000-0000",
            "usage": {
              "last_access_time": "2025-05-15T09:14:11.370Z",
              "last_accessor_id": "1000331001",
              "access_count": 0
            }
          },
          "entity": {
            "datasource_type": "d22e3e36-5ab3-4361-b418-2dba4b227879",
            "data_source_definition_searchable": "{host}|{port}|0000-0000-0000-0000",
            "name": "wxd_presto",
            "origin_country": "us",
            "owner_id": "1000331001",
            "rov": {
              "mode": 0,
              "member_roles": {
                "1000331001": {
                  "user_iam_id": "1000331001",
                  "roles": [
                    "OWNER"
                  ]
                }
              }
            },
            "properties": {
              "ssl_certificate": "{ssl_certificate}",
              "deployment_type": "software_dev",
              "password": "{password}",
              "instance_id": "0000-0000-0000-0000",
              "port": "{port}",
              "engine_id": "presto-01",
              "host": "{host}",
              "engine_host": "{host}",
              "ssl": "true",
              "engine_port": "{engine_port}",
              "username": "{username}"
            },
            "interaction_properties": {
              "source": [
                {
                  "name": "table_name",
                  "type": "string",
                  "label": "Table name",
                  "description": "The name of the table to read from",
                  "descriptionHasLink": false,
                  "required": true,
                  "masked": false,
                  "hidden": false,
                  "readonly": false,
                  "uiOnly": false,
                  "multiline": false,
                  "multichoice": false,
                  "displayGroup": "generalSource",
                  "displayOrdinal": 60,
                  "user_defined": false,
                  "user_defined_for_external": false
                }
              ],
              "target": [
                {
                  "name": "table_name",
                  "type": "string",
                  "label": "Table name",
                  "description": "The name of the table to write to",
                  "descriptionHasLink": false,
                  "required": true,
                  "masked": false,
                  "hidden": false,
                  "readonly": false,
                  "uiOnly": false,
                  "multiline": false,
                  "multichoice": false,
                  "displayGroup": "generalTarget",
                  "displayOrdinal": 30,
                  "user_defined": false,
                  "user_defined_for_external": false
                }
              ]
            }
          }
        }
      ],
      "first": {
        "href": "{url}/v2/connections?project_id=51b5dfbd-3c40-4c1f-860e-268b84ff0275&userfs=false&limit=100"
      },
      "total_count": 1
    }

Define connection

Defines a connection.

By default, a connection is created with shared credentials. Though credentials' secrets are stored encrypted, all credentials including secrets will be visible in clear text to API users who retrieve the connection and who are collaborators of the project or catalog in which a connection with shared credentials has been created.

Alternatively, a connection can be created with personal credentials by using the personal_credentials flag. The credentials' secrets will be visible only to the user who created the connection.

POST /v2/connections

Request

Custom Headers

  • The indicator whether shared credentials disablement and vault credentials enforcement guards should be disabled for creation and updates

    Default: false

Query Parameters

  • The ID of the catalog to use. catalog_id, project_id, or space_id is required.

  • The ID of the project to use. catalog_id, project_id, or space_id is required.

  • The ID of the space to use. catalog_id, project_id, or space_id is required.

  • true for a project needs assets managed by the /userfs API, i.e. if it has git integration

    Default: false

  • Whether to test the connection before saving it. By default an attempt to establish a connection will be made, and the connection will not be saved if the connection cannot be established.

    Default: true

  • Whether to persist assets or changes on assets. If set to false, it makes the service to perform all the actions on the way, execute testing, inject properties (like satellite properties or vault properties), if applicable, and then return the object as it would look like if persisted + with all the usual additioanl elements of response properties returned via Java API (like interaction_properties), but metadata record itself that gets filled with properties from the response from CAMS service is not filled, so it only contains those properties that are set directly from the entity taken from payload.

    Default: true

The definition of the connection.

  •   curl --request POST   --url '{url}/v2/connections?test=true&project_id={project_id}'   --header 'Accept: application/json'   --header 'Authorization: Bearer {bearer_token}'   --header 'Content-Type: application/json'   --data '{"datasource_type":"d22e3e36-5ab3-4361-b418-2dba4b227879",
    "properties":{"ssl":"true","deployment_type":"software_dev",
    "host":"{host}","port":"{port}",
    "instance_id":"0000-0000-0000-0000",
    "username":"{username}","password":"{password}",
    "engine_host":"{host}","engine_id":"presto-01","engine_port":"{engine_port}",
    "ssl_certificate":"{ssl_certificate}"},
    "flags":[],"name":"wxd_presto","origin_country":"us"}'

Response

A connection.

Status Code

  • The connection was created.

  • The connection test failed. See the error message for details.

  • You are not authorized to define a connection.

  • You are not permitted to perform this action.

  • The service is currently receiving more requests than it can process in a timely fashion. Please retry submitting your request later.

  • An error occurred. A connection was not created.

  • A timeout occurred when processing your request. Please retry later.

Example responses
  • {
      "metadata": {
        "asset_id": "d096f50b-1eb7-455d-9948-64717b851279",
        "asset_type": "connection",
        "asset_category": "USER",
        "create_time": "2025-05-16T11:22:05.000Z",
        "creator_id": "1000331001",
        "project_id": "51b5dfbd-3c40-4c1f-860e-268b84ff0275",
        "resource_key": "lh_0000-0000-0000-0000",
        "usage": {
          "last_access_time": "2025-05-16T11:22:05.597Z",
          "last_accessor_id": "1000331001",
          "access_count": 0
        }
      },
      "entity": {
        "datasource_type": "d22e3e36-5ab3-4361-b418-2dba4b227879",
        "data_source_definition_searchable": "{host}|{port}|0000-0000-0000-0000",
        "derived_properties": {
          "data_source_definition_id": "lakehouse",
          "data_source_identity_properties": [
            {
              "name": "host",
              "value": "{host}"
            },
            {
              "name": "port",
              "value": "{port}"
            },
            {
              "name": "instance_id",
              "value": "0000-0000-0000-0000"
            }
          ],
          "data_source_identity_mapping": {
            "instance_id": "physical_collection",
            "port": "port",
            "host": "host"
          }
        },
        "name": "wxd_presto2",
        "origin_country": "us",
        "owner_id": "1000331001",
        "rov": {
          "mode": 0,
          "member_roles": {
            "1000331001": {
              "user_iam_id": "1000331001",
              "roles": [
                "OWNER"
              ]
            }
          }
        },
        "properties": {
          "ssl_certificate": "{ssl_certificate}",
          "deployment_type": "software_dev",
          "password": "password",
          "instance_id": "0000-0000-0000-0000",
          "port": "{port}",
          "engine_id": "presto-01",
          "host": "{host}",
          "engine_host": "{host}",
          "ssl": "true",
          "engine_port": "{engine_port}",
          "username": "ibmlhadmin"
        },
        "interaction_properties": {
          "source": [
            {
              "name": "table_name",
              "type": "string",
              "label": "Table name",
              "description": "The name of the table to read from",
              "descriptionHasLink": false,
              "required": true,
              "masked": false,
              "hidden": false,
              "readonly": false,
              "uiOnly": false,
              "multiline": false,
              "multichoice": false,
              "displayGroup": "generalSource",
              "displayOrdinal": 60,
              "user_defined": false,
              "user_defined_for_external": false
            }
          ],
          "target": [
            {
              "name": "table_name",
              "type": "string",
              "label": "Table name",
              "description": "The name of the table to write to",
              "descriptionHasLink": false,
              "required": true,
              "masked": false,
              "hidden": false,
              "readonly": false,
              "uiOnly": false,
              "multiline": false,
              "multichoice": false,
              "displayGroup": "generalTarget",
              "displayOrdinal": 30,
              "user_defined": false,
              "user_defined_for_external": false
            }
          ]
        }
      }
    }

Get connection

Gets details of a specific connection definition.

Connections created with shared credentials will return secrets such as database passwords and API keys in clear text. Such secrets are stored encrypted but will be decrypted by the API when retrieved by the caller in order to access the data source defined by the connection. Clear text credentials are allowed because it is understood that the caller has already been explicitly added as a collabaorator in the project or catalog in which the connection is stored and is thus implicitly permitted access to the credentials required to connect to a data source.

Connections created with personal credentials will only display clear text credentials to the same user who provided them.

GET /v2/connections/{connection_id}

Request

Custom Headers

  • Boolean indicator if cluster username and access token should be injected into connection properties. It has to be ensured that access token is not revealed unintentionally together with connection properties.

    Default: false

Path Parameters

  • The ID of the connection.

Query Parameters

  • The ID of the catalog to use. catalog_id, project_id, or space_id is required.

  • The ID of the project to use. catalog_id, project_id, or space_id is required.

  • The ID of the space to use. catalog_id, project_id, or space_id is required.

  • true for a project needs assets managed by the /userfs API, i.e. if it has git integration

    Default: false

  • Specify the product the data source type must support to be returned. The available products are 'ai_factsheet', 'autoai', 'catalog', 'cde', 'cpd', 'dashboardsonprem', 'datarefinery', 'datastage', 'datastage_scapi', 'decision_optimization', 'deployments', 'dph', 'dqr', 'dv', 'dvaas', 'dvaas_ga', 'dvonprem', 'federated_learning', 'governance', 'igc', 'instructlab', 'manta', 'manta_legacy', 'masking_flow', 'mde', 'mdi', 'notebook', 'orchestration_pipelines', 'replication', 'rstudio', 'spss_modeler', 'streamsets', 'udp' and 'wxbia'. If no entity.product is specified, no filtering is applied. To specify multiple products, use a comma-separated string, such as entity.product=catalog,datastage.

  • Whether to return information about source and target interaction properties.

  • Whether to return decrypted secrets for unrestricted connections.

    Default: true

  • The ID of the function which if specified, then the credentials for function are returned/stored rather than personal or shared credentials.

  • Specify the id or the name of a data source type persona that the connection should present. If the data source type does not support alternate personas, then the connection's data source type is its only persona.

  •   curl   --url {url}/v2/connections/{connection_id}?project_id={project_id}   --header 'Accept: application/json'   --header 'Authorization: Bearer {bearer_token}

Response

A connection.

Status Code

  • The connection object.

  • You are not authorized to get details about the connection.

  • You are not permitted to perform this action.

  • The connection cannot be found.

  • The service is currently receiving more requests than it can process in a timely fashion. Please retry submitting your request later.

  • An error occurred. The connection definition details cannot be retrieved.

  • A timeout occurred when processing your request. Please retry later.

Example responses
  • {
      "metadata": {
        "asset_id": "71cd92f7-08f7-48ec-b2ed-d2c6c16093df",
        "asset_type": "connection",
        "asset_category": "USER",
        "create_time": "2025-05-15T09:14:11.000Z",
        "creator_id": "1000331001",
        "project_id": "51b5dfbd-3c40-4c1f-860e-268b84ff0275",
        "resource_key": "lh_0000-0000-0000-0000",
        "usage": {
          "last_access_time": "2025-05-15T09:14:11.370Z",
          "last_accessor_id": "1000331001",
          "access_count": 0
        }
      },
      "entity": {
        "datasource_type": "d22e3e36-5ab3-4361-b418-2dba4b227879",
        "data_source_definition_searchable": "{host}|{port}|0000-0000-0000-0000",
        "name": "wxd_presto",
        "origin_country": "us",
        "owner_id": "1000331001",
        "rov": {
          "mode": 0,
          "member_roles": {
            "1000331001": {
              "user_iam_id": "1000331001",
              "roles": [
                "OWNER"
              ]
            }
          }
        },
        "properties": {
          "ssl_certificate": "{ssl_certficate}",
          "deployment_type": "software_dev",
          "password": "{password}",
          "instance_id": "0000-0000-0000-0000",
          "port": "{port}",
          "engine_id": "presto-01",
          "host": {
            "host": null
          },
          "engine_host": {
            "host": null
          },
          "ssl": "true",
          "engine_port": "{engine_port}",
          "username": "{username}"
        },
        "interaction_properties": {
          "source": [
            {
              "name": "read_mode",
              "type": "enum",
              "label": "Read method",
              "description": "The method for reading records from the table",
              "descriptionHasLink": false,
              "required": false,
              "masked": false,
              "hidden": false,
              "readonly": false,
              "uiOnly": false,
              "multiline": false,
              "multichoice": false,
              "default_value": "general",
              "values": [
                {
                  "value": "general",
                  "label": "General"
                },
                {
                  "value": "select",
                  "label": "Select statement"
                }
              ],
              "displayGroup": "generalSource",
              "displayOrdinal": 5,
              "user_defined": false,
              "user_defined_for_external": false
            }
          ],
          "target": [
            {
              "name": "table_action",
              "type": "enum",
              "label": "Table action",
              "description": "The action to take on the target table to handle the new data set",
              "descriptionHasLink": false,
              "required": false,
              "masked": false,
              "hidden": false,
              "readonly": false,
              "uiOnly": false,
              "multiline": false,
              "multichoice": false,
              "default_value": "create",
              "values": [
                {
                  "value": "append",
                  "label": "Append"
                },
                {
                  "value": "create",
                  "label": "Create"
                },
                {
                  "value": "replace",
                  "label": "Replace"
                },
                {
                  "value": "truncate",
                  "label": "Truncate"
                }
              ],
              "displayGroup": "generalTarget",
              "displayOrdinal": 40,
              "user_defined": false,
              "user_defined_for_external": false
            }
          ]
        }
      }
    }

Delete connection

Deletes a connection definition. This call does not check whether the connection is used by activities, data sets or other assets. The caller must check this before deleting a connection.

DELETE /v2/connections/{connection_id}

Request

Path Parameters

  • The ID of the connection.

Query Parameters

  • The ID of the catalog to use. catalog_id, project_id, or space_id is required.

  • The ID of the project to use. catalog_id, project_id, or space_id is required.

  • The ID of the space to use. catalog_id, project_id, or space_id is required.

  • true for a project needs assets managed by the /userfs API, i.e. if it has git integration

    Default: false

  • curl --request DELETE   --url '{url}/v2/connections/{connection_id}?test=true&project_id={project_id}'   --header 'Accept: application/json'   --header 'Authorization: Bearer {bearer_token}'   --header 'Content-Type: application/json'

Response

Status Code

  • The connection was deleted.

  • You are not authorized to delete a connection.

  • You are not permitted to perform this action.

  • The connection cannot be found.

  • The service is currently receiving more requests than it can process in a timely fashion. Please retry submitting your request later.

  • An error occurred. The connection was not deleted.

Example responses
  • {
      "trace": "c1q5eufjd8n2bzrk2p3l1ji4i",
      "errors": [
        {
          "code": "not_found",
          "message": "A connection with the specified connection ID [{connection_id}] does not exist.",
          "more_info": "Correct the ID and resubmit the request.",
          "extra": {
            "environment_name": "icp4data",
            "http_status": 404,
            "id": "CDICO9006E",
            "source_cluster": null,
            "source_component": "wdp-connect-connection",
            "timestamp": "2025-05-19T08:25:00.207Z"
          }
        }
      ]
    }

Update connection

Updates the definition of a connection.

PATCH /v2/connections/{connection_id}

Request

Custom Headers

  • The indicator whether shared credentials disablement and vault credentials enforcement guards should be disabled for creation and updates

    Default: false

Path Parameters

  • The ID of the connection.

Query Parameters

  • The ID of the catalog to use. catalog_id, project_id, or space_id is required.

  • The ID of the project to use. catalog_id, project_id, or space_id is required.

  • The ID of the space to use. catalog_id, project_id, or space_id is required.

  • true for a project needs assets managed by the /userfs API, i.e. if it has git integration

    Default: false

  • Whether to test the connection before saving it. By default an attempt to establish a connection will be made, and the connection will not be saved if the connection cannot be established.

    Default: true

  • Whether to persist assets or changes on assets. If set to false, it makes the service to perform all the actions on the way, execute testing, inject properties (like satellite properties or vault properties), if applicable, and then return the object as it would look like if persisted + with all the usual additioanl elements of response properties returned via Java API (like interaction_properties), but metadata record itself that gets filled with properties from the response from CAMS service is not filled, so it only contains those properties that are set directly from the entity taken from payload.

    Default: true

  • The ID of the function which if specified, then the credentials for function are returned/stored rather than personal or shared credentials.

Fields to update within the connection.

  •   curl -X 'PATCH'   '{url}/v2/connections/{connection_id}?test=true&persist=true&project_id={project_id}&userfs=false'   -H 'accept: application/json;charset=utf-8'   -H 'Skip-Enforcement: false'   -H 'Authorization: Bearer {bearer_token}'   -H 'Content-Type: application/json-patch+json;charset=utf-8'   -d '[{"op":"replace","path":"/name","value":"wxd_presto2"},{"op":"add","path":"/properties/instance_name","value":"lakehouse"}]'

Response

The connection definition.

Status Code

  • The updated connection definition object.

  • The connection test failed. See the error message for details.

  • You are not authorized to update the connection definition.

  • You are not permitted to perform this action.

  • The connection cannot be found.

  • The service is currently receiving more requests than it can process in a timely fashion. Please retry submitting your request later.

  • An error occurred. The connection definition was not updated.

  • A timeout occurred when processing your request. Please retry later.

Example responses
  • {
      "datasource_type": "d22e3e36-5ab3-4361-b418-2dba4b227879",
      "name": "wxd_presto2",
      "origin_country": "us",
      "owner_id": "1000331001",
      "rov": {
        "mode": 0,
        "member_roles": {
          "1000331001": {
            "user_iam_id": "1000331001",
            "roles": [
              "OWNER"
            ]
          }
        }
      },
      "properties": {
        "ssl_certificate": "{ssl_certificate}",
        "password": "{password}",
        "instance_id": "0000-0000-0000-0000",
        "instance_name": "lakehouse",
        "port": "{port}",
        "engine_id": "presto-01",
        "host": {
          "host": null
        },
        "engine_host": {
          "host": null
        },
        "ssl": "true",
        "engine_port": "{engine_port}",
        "username": "{username}"
      },
      "interaction_properties": {
        "source": [
          {
            "name": "catalog_name",
            "type": "string",
            "label": "Catalog name",
            "description": "The name of the catalog that contains the schema to read from. It is required when a fully qualified table name has not been provided.",
            "required": false,
            "masked": false,
            "hidden": false,
            "readonly": false,
            "uiOnly": false,
            "multiline": false,
            "multichoice": false,
            "displayGroup": "generalSource",
            "displayOrdinal": 40,
            "user_defined": false
          }
        ],
        "target": [
          {
            "name": "catalog_name",
            "type": "string",
            "label": "Catalog name",
            "description": "The name of the catalog that contains the schema to write to. It is required when a fully qualified table name has not been provided.",
            "required": false,
            "masked": false,
            "hidden": true,
            "readonly": false,
            "uiOnly": false,
            "multiline": false,
            "multichoice": false,
            "displayGroup": "generalTarget",
            "displayOrdinal": 2147483647,
            "user_defined": false
          }
        ]
      }
    }

Discover assets

Discovers assets from the data source accessed via a connection description.

POST /v2/connections/assets

Request

Custom Headers

  • Specify whether to return the asset's data in parsed form (application/json) or as raw bytes. This only applies to sources that produce data as a file, document or stream of bytes. To return bytes specify application/octet-stream.

Query Parameters

  • Path of the asset.

    Example: iceberg_data%2Ficeberg_schema

  • The limit of the number of items to return, for example limit=50. If not specified a default of 100 will be used.

    Possible values: value ≥ 1

    Default: 100

  • The 0-based index of the first result to return, for example, offset=200. If not specified, the default offset of 0 is used.

    Possible values: value ≥ 0

    Default: 0

  • Specify whether to return the asset's metadata, the asset's data, interaction properties, connection properties, or data source type. If not specified, metadata is used by default. This parameter only applies when requesting details about a data set. To specify multiple fetch values, use a comma-separated string, such as fetch=data,metadata,interaction,connection,datasource_type.

  • Specify whether to return additional asset-specific details. If not specified, these details are not returned.

  • Specify whether assets are discovered for the purpose of reading (source) or writing (target). If not specified, source is used by default.

    Allowable values: [source,target]

  • A JSON object containing a set of properties to configure aspects of the asset browsing.

  • A JSON object containing a set of properties to define filtering of the assets to be returned.

The connection definition.

  • curl -X 'POST'   'https://{url}/v2/connections/assets?path={path_to_asset}&limit=100&offset=0'   -H 'accept: application/json;charset=utf-8'   -H 'Authorization: Bearer {bearer_token}'   -H 'Content-Type: application/json;charset=utf-8'   -d '{
        "datasource_type": "d22e3e36-5ab3-4361-b418-2dba4b227879",
        "name": "wxd_presto2",
        "origin_country": "us",
        "owner_id": "1000331001",
        "rov": {
          "mode": 0,
          "member_roles": {
            "1000331001": {
              "user_iam_id": "1000331001",
              "roles": [
                "OWNER"
              ]
            }
          }
        },
        "properties": {
          "ssl_certificate": "{ssl_certificate}",
          "password": "{passwprd}",
          "instance_id": "0000-0000-0000-0000",
          "instance_name": "lakehouse",
          "port": "{port}",
          "engine_id": "presto-01",
          "host": "{host}",
          "engine_host": "{engine_host}",
          "ssl": "true",
          "engine_port": "{engine_port}",
          "username": "{username}"
        },
        "interaction_properties": {
          "source": [
            {
              "name": "table_name",
              "type": "string",
              "label": "Table name",
              "description": "The name of the table to read from",
              "required": true,
              "masked": false,
              "hidden": false,
              "readonly": false,
              "uiOnly": false,
              "multiline": false,
              "multichoice": false,
              "displayGroup": "generalSource",
              "displayOrdinal": 60,
              "user_defined": false
            }
          ],
          "target": [
            {
              "name": "table_name",
              "type": "string",
              "label": "Table name",
              "description": "The name of the table to write to",
              "required": true,
              "masked": false,
              "hidden": true,
              "readonly": false,
              "uiOnly": false,
              "multiline": false,
              "multichoice": false,
              "displayGroup": "generalTarget",
              "displayOrdinal": 2147483647,
              "user_defined": false
            }
          ]
        }
      }'

Response

A page from a collection of discovered assets.

Status Code

  • The discovered assets.

  • You are not authorized to discover assets.

  • You are not permitted to perform this action.

  • The service is currently receiving more requests than it can process in a timely fashion. Please retry submitting your request later.

  • An error occurred. No assets were found.

  • A timeout occurred when processing your request. Please retry later.

Example responses
  • {
      "path": "iceberg_data/iceberg_schema",
      "asset_types": [
        {
          "type": "table",
          "dataset": true,
          "dataset_container": false
        }
      ],
      "assets": [
        {
          "id": "elt_src_set6",
          "type": "table",
          "name": "elt_src_set6",
          "path": "/iceberg_data/iceberg_schema/elt_src_set6"
        },
        {
          "id": "reptile",
          "type": "table",
          "name": "reptile",
          "path": "/iceberg_data/iceberg_schema/reptile"
        },
        {
          "id": "sample_view",
          "type": "table",
          "name": "sample_view",
          "path": "/iceberg_data/iceberg_schema/sample_view"
        },
        {
          "id": "t004_action_get_record_count_s3_dev_mac_1747389044258",
          "type": "table",
          "name": "t004_action_get_record_count_s3_dev_mac_1747389044258",
          "path": "/iceberg_data/iceberg_schema/t004_action_get_record_count_s3_dev_mac_1747389044258"
        },
        {
          "id": "test_before_after_sql_dev1",
          "type": "table",
          "name": "test_before_after_sql_dev1",
          "path": "/iceberg_data/iceberg_schema/test_before_after_sql_dev1"
        }
      ]
    }

Discover assets

Discovers assets from the data source accessed via the connection.

GET /v2/connections/{connection_id}/assets

Request

Custom Headers

  • Specify whether to return the asset's data in parsed form (application/json) or as raw bytes. This only applies to sources that produce data as a file, document or stream of bytes. To return bytes specify application/octet-stream.

Path Parameters

  • The ID of the connection.

Query Parameters

  • Path of the asset.

    Example: iceberg_data%2Ficeberg_schema

  • The ID of the catalog to use. catalog_id, project_id, or space_id is required.

  • The ID of the project to use. catalog_id, project_id, or space_id is required.

  • The ID of the space to use. catalog_id, project_id, or space_id is required.

  • true for a project needs assets managed by the /userfs API, i.e. if it has git integration

    Default: false

  • The ID of the data asset.

  • The ID of the catalog that contains the data asset.

  • The ID of the project that contains the data asset.

  • The ID of the space that contains the data asset.

  • The limit of the number of items to return, for example limit=50. If not specified a default of 100 will be used.

    Possible values: value ≥ 1

    Default: 100

  • The 0-based index of the first result to return, for example, offset=200. If not specified, the default offset of 0 is used.

    Possible values: value ≥ 0

    Default: 0

  • Specify whether to return the asset's metadata, the asset's data, interaction properties, connection properties, or data source type. If not specified, metadata is used by default. This parameter only applies when requesting details about a data set. To specify multiple fetch values, use a comma-separated string, such as fetch=data,metadata,interaction,connection,datasource_type.

  • Specify whether to return additional asset-specific details. If not specified, these details are not returned.

  • Specify whether assets are discovered for the purpose of reading (source) or writing (target). If not specified, source is used by default.

    Allowable values: [source,target]

  • A JSON object containing a set of properties to configure aspects of the asset browsing.

  • A JSON object containing a set of properties to define filtering of the assets to be returned.

  • curl -X 'GET'   '{url}/v2/connections/{connection_id}/assets?path={path_to_asset}&project_id={project_id}&userfs=false&limit=100&offset=0'   -H 'accept: application/json;charset=utf-8'   -H 'Authorization: Bearer {bearer_token}'

Response

A page from a collection of discovered assets.

Status Code

  • The discovered assets.

  • You are not authorized to discover assets in the data source accessed through the connection.

  • You are not permitted to perform this action.

  • The connection cannot be found.

  • The service is currently receiving more requests than it can process in a timely fashion. Please retry submitting your request later.

  • An error occurred. No assets were discovered in the data source.

  • A timeout occurred when processing your request. Please retry later.

Example responses
  • {
      "path": "iceberg_data/iceberg_schema",
      "asset_types": [
        {
          "type": "table",
          "dataset": true,
          "dataset_container": false
        }
      ],
      "assets": [
        {
          "id": "elt_src_set6",
          "type": "table",
          "name": "elt_src_set6",
          "path": "/iceberg_data/iceberg_schema/elt_src_set6"
        },
        {
          "id": "reptile",
          "type": "table",
          "name": "reptile",
          "path": "/iceberg_data/iceberg_schema/reptile"
        },
        {
          "id": "sample_view",
          "type": "table",
          "name": "sample_view",
          "path": "/iceberg_data/iceberg_schema/sample_view"
        },
        {
          "id": "t004_action_get_record_count_s3_dev_mac_1747389044258",
          "type": "table",
          "name": "t004_action_get_record_count_s3_dev_mac_1747389044258",
          "path": "/iceberg_data/iceberg_schema/t004_action_get_record_count_s3_dev_mac_1747389044258"
        },
        {
          "id": "test_before_after_sql_dev1",
          "type": "table",
          "name": "test_before_after_sql_dev1",
          "path": "/iceberg_data/iceberg_schema/test_before_after_sql_dev1"
        }
      ]
    }
  • {
      "trace": "2o19zmke6jfdnti89az0t1sgn",
      "errors": [
        {
          "code": "not_found",
          "message": "The asset with id 79269454-1d51-49e4-aed8-f1739dd5e52a could not be found.",
          "extra": {
            "environment_name": "icp4data",
            "http_status": 404,
            "id": "CDICW9031E",
            "source_cluster": "NULL",
            "source_component": "wdp-connect-connection",
            "timestamp": "2025-05-20T11:38:44.429Z"
          }
        }
      ]
    }

Discover data asset

Discover a data asset.

GET /v2/connections/assets/{data_asset_id}

Request

Custom Headers

  • Specify whether to return the asset's data in parsed form (application/json) or as raw bytes. This only applies to sources that produce data as a file, document or stream of bytes. To return bytes specify application/octet-stream.

Path Parameters

  • The ID of the data asset.

Query Parameters

  • The ID of the catalog to use. catalog_id, project_id, or space_id is required.

  • The ID of the project to use. catalog_id, project_id, or space_id is required.

  • The ID of the space to use. catalog_id, project_id, or space_id is required.

  • true for a project needs assets managed by the /userfs API, i.e. if it has git integration

    Default: false

  • The limit of the number of items to return, for example limit=50. If not specified a default of 100 will be used.

    Possible values: value ≥ 1

    Default: 100

  • The 0-based index of the first result to return, for example, offset=200. If not specified, the default offset of 0 is used.

    Possible values: value ≥ 0

    Default: 0

  • Specify whether to return the asset's metadata, the asset's data, interaction properties, connection properties, or data source type. If not specified, metadata is used by default. This parameter only applies when requesting details about a data set. To specify multiple fetch values, use a comma-separated string, such as fetch=data,metadata,interaction,connection,datasource_type.

  • Specify whether to return additional asset-specific details. If not specified, these details are not returned.

  • Specify whether assets are discovered for the purpose of reading (source) or writing (target). If not specified, source is used by default.

    Allowable values: [source,target]

  • A JSON object containing a set of properties to configure aspects of the asset browsing.

  • A JSON object containing a set of properties to define filtering of the assets to be returned.

  • Path of the asset.

  • curl --request GET   --url '{url}/v2/connections/assets/{asset_id}?project_id={project_id}&userfs=false&limit=100&offset=0'   --header 'Authorization: Bearer {bearer_token}'   --header 'Content-Type: application/json'   --header 'accept: application/json;charset=utf-8'

Response

A page from a collection of discovered assets.

Status Code

  • The discovered asset.

  • You are not authorized to discover the asset.

  • You are not permitted to perform this action.

  • The asset cannot be found.

  • The service is currently receiving more requests than it can process in a timely fashion. Please retry submitting your request later.

  • An error occurred. No assets were discovered in the data source.

  • A timeout occurred when processing your request. Please retry later.

Example responses
  • {
      "connections_discovered_asset_collection": {
        "summary": "Connections Discovered Asset Collection",
        "value": {
          "path": "data_asset/Book1.csv",
          "fields": [
            {
              "name": "aaa",
              "columnProperties": {},
              "type": {
                "type": "varchar",
                "length": 1024,
                "scale": 0,
                "nullable": true,
                "signed": false
              }
            },
            {
              "name": " bbb",
              "columnProperties": {},
              "type": {
                "type": "varchar",
                "length": 1024,
                "scale": 0,
                "nullable": true,
                "signed": false
              }
            },
            {
              "name": " ccc",
              "columnProperties": {},
              "type": {
                "type": "varchar",
                "length": 1024,
                "scale": 0,
                "nullable": true,
                "signed": false
              }
            }
          ],
          "first": {
            "href": "{url}/v2/connections/assets/e4adc79b-be7f-4c42-a48f-d0203942b0eb?project_id=04213ccd-523d-4122-a101-6e4d78fd2af8&userfs=false&offset=0&limit=100"
          },
          "prev": {
            "href": "{url}/v2/connections/assets?offset=0&limit=100&path=data_asset%2FBook1.csv"
          },
          "next": {
            "href": "{url}/v2/connections/assets?offset=100&limit=100&path=data_asset%2FBook1.csv"
          },
          "total_count": 1
        }
      }
    }

List actions

Lists all supported actions for the connection.

GET /v2/connections/{connection_id}/actions

Request

Custom Headers

  • The user's preferred locale identifier.

    Default: en-US

Path Parameters

  • The ID of the connection.

Query Parameters

  • The ID of the catalog to use. catalog_id, project_id, or space_id is required.

  • The ID of the project to use. catalog_id, project_id, or space_id is required.

  • The ID of the space to use. catalog_id, project_id, or space_id is required.

  • true for a project needs assets managed by the /userfs API, i.e. if it has git integration

    Default: false

  • curl -X 'GET'   'https://{url}/v2/connections/{connection_id}/actions?project_id={project_id}&userfs=false'   -H 'accept: application/json;charset=utf-8'   -H 'Accept-Language: en-US'   -H 'Authorization: Bearer {bearer_token}'

Response

Connection actions.

Status Code

  • The actions supported for the connection.

  • You are not authorized to list the actions for the connection.

  • You are not permitted to perform this action.

  • The connection cannot be found.

  • The service is currently receiving more requests than it can process in a timely fashion. Please retry submitting your request later.

  • An error occurred. The actions for the connection cannot be listed.

  • A timeout occurred when processing your request. Please retry later.

No Sample Response

This method does not specify any sample responses.

Perform action

Performs an action on the data source accessed using the connection.

PUT /v2/connections/{connection_id}/actions/{action_name}

Request

Path Parameters

  • The ID of the connection.

  • The name of the action to be performed. This list is expanded over time. The current actions are:

    • get_datasource_info - to get Data source info of a datasource.
    • get_dsd_details - to obtain Data Source Definition Asset details from a connector.
    • get_oauth2_tokens - to get refresh and authorization tokens for sources that support OAuth2.
    • get_record_count - to get the number of records available for the specified asset.
    • get_approx_record_count - to get the approximate number of records available for the specified asset.
    • get_signed_url - to get a signed URL for accessing a datasource.
    • test - to check if a connection can be established to the datasource.
    • validate - to validate the connection properties without establishing a connection.

    Allowable values: [get_datasource_info,get_dsd_details,get_oauth2_tokens,get_record_count,get_approx_record_count,get_signed_url,test,validate]

Query Parameters

  • The ID of the catalog to use. catalog_id, project_id, or space_id is required.

  • The ID of the project to use. catalog_id, project_id, or space_id is required.

  • The ID of the space to use. catalog_id, project_id, or space_id is required.

  • true for a project needs assets managed by the /userfs API, i.e. if it has git integration

    Default: false

The perform action request configuration.

  • curl -X 'PUT'   '{url}/v2/connections/{connection_id}/actions/validate?project_id={project_id}&userfs=false'   -H 'accept: application/json;charset=utf-8'   -H 'Authorization: Bearer {bearer_token}'   -H 'Content-Type: application/json;charset=utf-8'   -d '{
      "engine_host": "{engine_host}",
      "host": "{host}"
    }'

Response

Results of a connection perform action request.

Status Code

  • Any output produced by the action.

  • The perform action request is invalid.

  • You are not authorized to perform an action on a data source accessed through the connection.

  • You are not permitted to perform this action.

  • The connection cannot be found.

  • The service is currently receiving more requests than it can process in a timely fashion. Please retry submitting your request later.

  • An error occurred. No action was performed on the data source.

  • A timeout occurred when processing your request. Please retry later.

Example responses
  • {
      "connection_action_response": {
        "summary": "Connection action response",
        "value": {
          "resource_key": "lh_0000-0000-0000-0000"
        }
      }
    }

Download a file

Download a file

GET /v2/connections/files/{file_name}

Request

Path Parameters

  • The name of file to download

Query Parameters

  • The hash of file to download

  • curl -X 'GET'   'https://{url}/v2/connections/files/{file_name}?hash={file_hash}'   -H 'accept: application/octet-stream'

Response

Status Code

  • The file object.

  • You are not authorized to get content of the file.

  • You are not permitted to perform this action.

  • The file cannot be found.

  • The service is currently receiving more requests than it can process in a timely fashion. Please retry submitting your request later.

  • An error occurred. The driver jar cannot be retrieved.

  • A timeout occurred when processing your request. Please retry later.

Example responses

Upload a file

Upload a file and get back a signed handle in 'Location' header with a hash

POST /v2/connections/files/{file_name}

Request

Path Parameters

  • The name of file to upload

  • curl -X 'POST'   '{url}/v2/connections/files/{file_name}'   -H 'accept: */*'   -H 'Authorization: Bearer {bearer_token}'   -H 'Content-Type: application/octet-stream'   --data-binary '@{file_path}'

Response

Status Code

  • The file object.

  • You are not authorized to get content of the file.

  • You are not permitted to perform this action.

  • The file cannot be found.

  • The service is currently receiving more requests than it can process in a timely fashion. Please retry submitting your request later.

  • An error occurred. The driver jar cannot be retrieved.

  • A timeout occurred when processing your request. Please retry later.

No Sample Response

This method does not specify any sample responses.

Delete a file

Delete a file

DELETE /v2/connections/files/{file_name}

Request

Path Parameters

  • The name of file to delete

Query Parameters

  • The hash of file to delete

  • curl -X 'DELETE'   '{url}/v2/connections/files/{file_name}?hash={file_hash}'   -H 'accept: */*'   -H 'Authorization: Bearer {bearer_token}'

Response

Status Code

  • The file was deleted.

  • You are not authorized to get content of the file.

  • You are not permitted to perform this action.

  • The file cannot be found.

  • The service is currently receiving more requests than it can process in a timely fashion. Please retry submitting your request later.

  • An error occurred. The driver jar cannot be retrieved.

  • A timeout occurred when processing your request. Please retry later.

No Sample Response

This method does not specify any sample responses.

List files

List files available in mounted directory

GET /v2/connections/files

Request

Query Parameters

  • The limit of the number of items to return, for example limit=50. If not specified a default of 100 will be used.

    Possible values: value ≥ 1

    Default: 100

  • The 0-based index of the first result to return, for example, offset=200. If not specified, the default offset of 0 is used.

    Possible values: value ≥ 0

    Default: 0

  • curl --request GET   --url '{url}/v2/connections/files?limit=100&offset=0'   --header 'Accept: application/json'   --header 'Authorization: Bearer {bearer_token}'

Response

A page from a collection of uploaded files.

Status Code

  • List of available files

  • You are not authorized to get the list of files.

  • You are not permitted to perform this action.

  • The file cannot be found.

  • The service is currently receiving more requests than it can process in a timely fashion. Please retry submitting your request later.

  • An error occurred. The driver jar cannot be retrieved.

  • A timeout occurred when processing your request. Please retry later.

Example responses
  • {
      "connection_action_response": {
        "summary": "Connection action response",
        "value": {
          "resources": [
            {
              "createdAt": "2025-05-22T09:11:58.733917839Z",
              "url": "/v2/connections/files/book1_csv?hash=e3dkcGFlczI1Nn14UEthdFBTM1VDbEh4OEM2MTFCcE9JNEtRZzlOQUdraXVxcHNYVER1WWpMK0ZPR09nMkJYQVlWQ0FjMVZ4blZJZVJYYW9QaEF0a08xYjJteUNqOXdZK2x4MXdyK2ZKYmY5L0h6RzM2R0E4ZkFoVlk0YzMvOXNqZWhzNnpFRzJQZDQ5TkV1RXZGMk10c21BemNKTTdOYUpMblBwaXpjdk40dzJMblV2bVl1T2c9&digest=zMwdUQJxJhUG8EOMvHzIsghMTs4UWhRKa5fFZWNnhSYx_5f53e4cbx81b6x46f7xa712x67756378a441",
              "hash": "e3dkcGFlczI1Nn14UEthdFBTM1VDbEh4OEM2MTFCcE9JNEtRZzlOQUdraXVxcHNYVER1WWpMK0ZPR09nMkJYQVlWQ0FjMVZ4blZJZVJYYW9QaEF0a08xYjJteUNqOXdZK2x4MXdyK2ZKYmY5L0h6RzM2R0E4ZkFoVlk0YzMvOXNqZWhzNnpFRzJQZDQ5TkV1RXZGMk10c21BemNKTTdOYUpMblBwaXpjdk40dzJMblV2bVl1T2c9",
              "digest": "zMwdUQJxJhUG8EOMvHzIsghMTs4UWhRKa5fFZWNnhSYx_5f53e4cbx81b6x46f7xa712x67756378a441",
              "fileName": "book1_csv"
            },
            {
              "createdAt": "2025-05-23T11:15:30.373931581Z",
              "url": "/v2/connections/files/book1_csv_2?hash=e3dkcGFlczI1Nn1kWTdadkswRXczN1dZbEtwUTRYYjRPbkhWVE9taVZZVzdxcndTSU1NMWpKWUEydlNRTGswV1lmSkZCd2FHRGNweFRCcmZobUNuMnBDRW8wWEpEamJ5YmpvM0FXVzhRY2RwRUk1OHlCYXN1b1h4aUI4aFlxcms3OUZsUmtGWHdGWXhJR0VnN2lmQVgxcG5oQmVkek14QlVGZVBVUkpLUkNIU2FVVUdTUVIydDA9&digest=zMwdUQJxJhUG8EOMvHzIsghMTs4UWhRKa5fFZWNnhSYx_259d2dddxc2d4x4b15xa3d9x1329f9ac583d",
              "hash": "e3dkcGFlczI1Nn1kWTdadkswRXczN1dZbEtwUTRYYjRPbkhWVE9taVZZVzdxcndTSU1NMWpKWUEydlNRTGswV1lmSkZCd2FHRGNweFRCcmZobUNuMnBDRW8wWEpEamJ5YmpvM0FXVzhRY2RwRUk1OHlCYXN1b1h4aUI4aFlxcms3OUZsUmtGWHdGWXhJR0VnN2lmQVgxcG5oQmVkek14QlVGZVBVUkpLUkNIU2FVVUdTUVIydDA9",
              "digest": "zMwdUQJxJhUG8EOMvHzIsghMTs4UWhRKa5fFZWNnhSYx_259d2dddxc2d4x4b15xa3d9x1329f9ac583d",
              "fileName": "book1_csv_2"
            },
            {
              "createdAt": "2025-05-23T11:15:18.714000849Z",
              "url": "/v2/connections/files/book1_csv_2?hash=e3dkcGFlczI1Nn1UQ0VPaEtXcnA3cElqMUxyZEVmS1N1TVF6TWRIMVFTWXc0V2Q4ME10K1BWNkFTMzRrdXVLc3hmSEt1eVVwU3BXL0FWaXRCWi9NWVB0Z1J3T091dDVTdnpQRDNjMWpoVEtQMUFTTFpob3JjdkEyRTQ4U1pQOTNMU1g3clFBSHJuaDhOZExuR0lZUWVuNjczK2k1TEE2ZnB1ZGF0VGNaOGhHNnVLNDBLSk1ybTA9&digest=zMwdUQJxJhUG8EOMvHzIsghMTs4UWhRKa5fFZWNnhSYx_6971721cxf318x4dabx963ax0a7be614328e",
              "hash": "e3dkcGFlczI1Nn1UQ0VPaEtXcnA3cElqMUxyZEVmS1N1TVF6TWRIMVFTWXc0V2Q4ME10K1BWNkFTMzRrdXVLc3hmSEt1eVVwU3BXL0FWaXRCWi9NWVB0Z1J3T091dDVTdnpQRDNjMWpoVEtQMUFTTFpob3JjdkEyRTQ4U1pQOTNMU1g3clFBSHJuaDhOZExuR0lZUWVuNjczK2k1TEE2ZnB1ZGF0VGNaOGhHNnVLNDBLSk1ybTA9",
              "digest": "zMwdUQJxJhUG8EOMvHzIsghMTs4UWhRKa5fFZWNnhSYx_6971721cxf318x4dabx963ax0a7be614328e",
              "fileName": "book1_csv_2"
            },
            {
              "createdAt": "2025-05-22T09:17:09.542080302Z",
              "url": "/v2/connections/files/book1_csv_2?hash=e3dkcGFlczI1Nn1aRzY2bS9yb09IbENsVWREQnc0cFg2cno2R0dweWEvdkFSaGFjMm9HZjNJOWlrQnVqY0h6WFErdW9jNG9zR0MxMGhEbmpnNmZZUkxCVjVrUUZiY0tIYnpINk1wTkRJZS9jT1pYV09jdDhCQmZEU0FIQVRYY25Pd3VqbUNpOXY2UzNsbkpjMGd2QlhoWmFBVDlrcnB2Sks2dDdjbGVkQjBBY2laRWZEcHNBUXM9&digest=zMwdUQJxJhUG8EOMvHzIsghMTs4UWhRKa5fFZWNnhSYx_3d65737cx20d3x470axbf50x3677179bebf6",
              "hash": "e3dkcGFlczI1Nn1aRzY2bS9yb09IbENsVWREQnc0cFg2cno2R0dweWEvdkFSaGFjMm9HZjNJOWlrQnVqY0h6WFErdW9jNG9zR0MxMGhEbmpnNmZZUkxCVjVrUUZiY0tIYnpINk1wTkRJZS9jT1pYV09jdDhCQmZEU0FIQVRYY25Pd3VqbUNpOXY2UzNsbkpjMGd2QlhoWmFBVDlrcnB2Sks2dDdjbGVkQjBBY2laRWZEcHNBUXM9",
              "digest": "zMwdUQJxJhUG8EOMvHzIsghMTs4UWhRKa5fFZWNnhSYx_3d65737cx20d3x470axbf50x3677179bebf6",
              "fileName": "book1_csv_2"
            }
          ],
          "offset": 0,
          "total_count": 4
        }
      }
    }

Migrate files

Migrates files from old locations to new one

PUT /v2/connections/files

Request

Query Parameters

  • Indicator, if only list files to be migrated.

  • Indicator, if migrate connections from catalogs.

  • Indicator, if migrate connections from projects.

  • Indicator, if migrate connections from spaces.

Response

A page from a collection of migrated connections.

Status Code

  • List of newly uploaded files

  • You are not authorized to migrate files.

  • You are not permitted to perform this action.

  • The service is currently receiving more requests than it can process in a timely fashion. Please retry submitting your request later.

  • An error occurred. The driver jar cannot be retrieved.

  • A timeout occurred when processing your request. Please retry later.

No Sample Response

This method does not specify any sample responses.

List defined types of data sources

Gets all defined types of data sources.

The following fields are available for use with the sort parameter:

  • entity.label - The name of the data source type in a readable form.
  • entity.type - The major type of the data source type.
GET /v2/datasource_types

Request

Custom Headers

  • The user's preferred locale identifier.

    Default: en-US

Query Parameters

  • The field to sort the results on, including whether to sort ascending (+) or descending (-), for example, sort=-metadata.create_time

  • The 0-based index of the first result to return, for example, offset=200. If not specified, the default offset of 0 is used.

    Possible values: value ≥ 0

    Default: 0

  • The limit of the number of items to return, for example limit=50. If not specified a default of 100 will be used.

    Possible values: value ≥ 1

    Default: 100

  • Whether to return information about connection properties.

  • Whether to return information about source and target interaction properties.

  • Whether to return information about discovery capabilities.

  • Whether to return information about supported actions.

  • Specify the environment the data source types must support to be included in the returned list. The available environments are 'private', 'public' 'spark', 'streams', 'java', 'local' and 'external'. If no entity.environment is specified, the default for service's deploy environment is used. To specify multiple environments, use a comma-separated string, such as entity.environment=private,public.

  • Specify the perspective the data source types must support to be included in the returned list. The available perspectives are 'cpd', 'dph', 'wx'. If no entity.perspective is specified, no filtering is applied. To specify multiple perspectives, use a comma-separated string, such as entity.perspective=cpd,wx.

  • Specify the product the data source type must support to be returned. The available products are 'ai_factsheet', 'autoai', 'catalog', 'cde', 'cpd', 'dashboardsonprem', 'datarefinery', 'datastage', 'datastage_scapi', 'decision_optimization', 'deployments', 'dph', 'dqr', 'dv', 'dvaas', 'dvaas_ga', 'dvonprem', 'federated_learning', 'governance', 'igc', 'instructlab', 'manta', 'manta_legacy', 'masking_flow', 'mde', 'mdi', 'notebook', 'orchestration_pipelines', 'replication', 'rstudio', 'spss_modeler', 'streamsets', 'udp' and 'wxbia'. If no entity.product is specified, no filtering is applied. To specify multiple products, use a comma-separated string, such as entity.product=catalog,datastage.

  • Scope of ui-only product selector property. Applies to output under common_properties key. Genreated ui contains additional checkbox to switch between first of the requested products and the rest. If only a single one is given it switches between that product and remaining products supported by the data source.

    Allowable values: [global,context]

  • Whether to generate extra conditions in common properties format that will make them behave in a transitive manner under default configuration options of Elyra i.e. when a condition is part of a chain it will enable/disable everything down the chain rather than just hiding the control. Support for this option has been removed. Option itself was not removed to preserve binary compatibility but it no longer has any effect.

    Default: false

  • Whether to filter the list of available datasource types and return only those that have their dataSourceDefinitionId parameter set and its value is the same as the value of the datasource type id. That means that returned are only datasource types which should have proper deep enforcement in Data Privacy Service supported and are the canonical types (not the connectors that use the same engine, but have a different flavor).

    Default: false

  • Whether to show data source definition asset feature metadata properties or not.

    Default: true

  • curl -X 'GET'   '{url}/v2/datasource_types?offset=0&limit=100&generate_transitive_conditions=false&show_data_source_definitions_only=false&show_data_source_definition_section=true'   -H 'accept: application/json;charset=utf-8'   -H 'Accept-Language: en-US'   -H 'Authorization: Bearer {bearer_token}'

Response

A page from a collection of data source types.

Status Code

  • Collection of data source types.

  • You are not authorized to list the defined types of data sources.

  • You are not permitted to perform this action.

  • The service is currently receiving more requests than it can process in a timely fashion. Please retry submitting your request later.

  • An error occurred. No data source types were retrieved.

  • A timeout occurred when processing your request. Please retry later.

Example responses
  • {
      "resources": [
        {
          "metadata": {
            "asset_id": "029e5d1c-ba73-4b09-b742-14c3a39b6cf9",
            "asset_type": "datasource_type",
            "creator_id": "IBM"
          },
          "entity": {
            "name": "informix",
            "label": "IBM Informix",
            "description": "IBM Informix is a database that contains relational, object-relational, or dimensional data. You can use the Informix connector to access data from an on-prem Informix database server or from IBM Informix on Cloud.",
            "type": "database",
            "allowed_as_source": true,
            "allowed_as_target": true,
            "allowed_for_discovery_only": false,
            "allowed_as_source_lookup": true,
            "data_shape": "rectangular",
            "auto_discovery": false,
            "secure_gateway": "optional",
            "fips_compliance": "none",
            "tags": [
              "IBM"
            ],
            "supported_environments": [
              "cloud",
              "java",
              "local",
              "private",
              "spark"
            ],
            "supported_plans": [],
            "supported_products": [
              "catalog",
              "cpd",
              "dashboards",
              "dashboardsonprem",
              "datarefinery",
              "datastage",
              "datastage_scapi",
              "dv",
              "dvaas_ga",
              "mde",
              "mdi",
              "ml",
              "studio"
            ],
            "status": "active",
            "extensible": false
          }
        },
        {
          "metadata": {
            "asset_id": "048ed1bf-516c-46f0-ae90-fa3349d8bc1c",
            "asset_type": "datasource_type",
            "creator_id": "IBM"
          },
          "entity": {
            "name": "postgresql-ibmcloud",
            "label": "IBM Cloud Databases for PostgreSQL",
            "description": "IBM Cloud Databases for PostgreSQL is an open-source object-relational database that is highly customizable. It's a feature-rich enterprise database with JSON support. For the PostgreSQL connector that is not on IBM Cloud, select the PostgreSQL connector.",
            "type": "database",
            "allowed_as_source": true,
            "allowed_as_target": true,
            "allowed_for_discovery_only": false,
            "allowed_as_source_lookup": true,
            "data_shape": "rectangular",
            "auto_discovery": true,
            "secure_gateway": "not_applicable",
            "tags": [
              "IBM"
            ],
            "supported_environments": [
              "cloud",
              "java",
              "local",
              "private",
              "spark"
            ],
            "supported_plans": [],
            "supported_products": [
              "catalog",
              "cde",
              "cdeonprem",
              "cpd",
              "dashboards",
              "dashboardsonprem",
              "datarefinery",
              "datastage",
              "datastage_scapi",
              "dv",
              "dvaas_ga",
              "manta",
              "mdi",
              "ml",
              "studio"
            ],
            "status": "active",
            "extensible": false
          }
        },
        {
          "metadata": {
            "asset_id": "05b7f0ea-6ae4-45e2-a455-cc280f110825",
            "asset_type": "datasource_type",
            "creator_id": "IBM"
          },
          "entity": {
            "name": "googlecloudstorage",
            "label": "Google Cloud Storage",
            "description": "Google Cloud Storage is an online file storage web service for storing and accessing data on Google Cloud Platform Infrastructure.",
            "type": "file",
            "allowed_as_source": true,
            "allowed_as_target": true,
            "allowed_for_discovery_only": false,
            "allowed_as_source_lookup": false,
            "data_shape": "rectangular",
            "auto_discovery": false,
            "secure_gateway": "not_applicable",
            "supported_environments": [
              "cloud",
              "java",
              "local",
              "private",
              "spark"
            ],
            "supported_plans": [],
            "supported_products": [
              "catalog",
              "cpd",
              "datarefinery",
              "datastage",
              "datastage_scapi",
              "mdi",
              "ml",
              "studio"
            ],
            "status": "active",
            "extensible": false
          }
        }
      ],
      "first": {
        "href": "{url}/v2/datasource_types?limit=100"
      },
      "last": {
        "href": "{url}/v2/datasource_types?offset=0&limit=100"
      },
      "offset": 0,
      "total_count": 3
    }

Define data source type

Defines a data source type.

POST /v2/datasource_types

Request

The definition of the data source type.

  • curl -X 'POST'   '{url}/v2/datasource_types'   -H 'accept: application/json;charset=utf-8'   -H 'Authorization: Bearer {bearer_token}'   -H 'Content-Type: application/json;charset=utf-8'   -d '{
      "base_datasource_type": "e59b1c36-6f30-4879-9f74-7e81dde4cca6",
      "name": "new_custom_datasource",
      "label": "Custom JDBC datasource",
      "description": "Custom datasource for test purposes.",
      "allowed_as_source": true,
      "allowed_as_target": true,
      "status": "active",
      "origin_country": "us",
      "owner_id": "1000331001",
      "rov": {
        "mode": 0,
        "member_roles": {
          "1000331001": {
            "user_iam_id": "1000331001",
            "roles": [
              "OWNER"
            ]
          }
        }
      },
      "properties": {
          "row_limit_support": "none",
          "password": "{password}",
          "jdbc_url": "{jdbc_url}",
          "jdbc_driver": "{jdbc_driver}",
          "username": "TM_CC_USER_1"
        },
      "property_definitions": [
          {
            "name": "string",
            "type": "boolean",
            "label": "string",
            "description": "string",
            "placeholder": "string",
            "required": true,
            "masked": true,
            "multiline": true,
            "hidden": true,
            "default_value": "string",
            "values": [
              {
                "value": "string",
                "label": "string",
                "supported_environments": [
                  "private"
                ],
                "supported_products": [
                  "catalog",
                  "studio"
                ]
              }
            ],
            "group": "string"
          }
        ],
      "source_system": {
        "name": "_java._heap_size",
        "type": "integer",
        "label": "Heap size",
        "description": "Specify the maximum Java Virtual Machine heap size in megabytes.",
        "descriptionHasLink": false,
        "required": false,
        "masked": false,
        "hidden": false,
        "readonly": false,
        "uiOnly": false,
        "multiline": false,
        "multichoice": false,
        "default_value": "512",
        "displayGroup": "other",
        "displayOrdinal": 2147483647,
        "supported_products": [
          "datastage_scapi"
        ],
        "user_defined": false,
        "user_defined_for_external": false
      }
    }'

Response

A collection of custom data source types.

Status Code

  • The data source type was created.

  • The data source type definition is not valid. See the error message for details.

  • You are not authorized to define a data source type.

  • You are not permitted to perform this action.

  • The service is currently receiving more requests than it can process in a timely fashion. Please retry submitting your request later.

  • An error occurred. A data source type was not created.

  • A timeout occurred when processing your request. Please retry later.

Example responses
  • {
      "datasource_types": [
        {
          "metadata": {
            "asset_id": "2a2466dd-c444-4f19-8bb3-68f870fc963d",
            "asset_type": "datasource_type",
            "asset_category": "SYSTEM",
            "catalog_id": "efbf8bd5-cff2-4811-9566-637a49f4d1eb",
            "create_time": "2025-05-29T10:41:50.000Z",
            "creator_id": "1000331001",
            "owner_id": "1000331001",
            "source_system": {
              "created": 0,
              "last_modified": 0
            },
            "usage": {
              "last_access_time": "2025-05-29T10:41:50.680Z",
              "last_accessor_id": "1000331001",
              "access_count": 0
            }
          },
          "entity": {
            "base_datasource_type": "e59b1c36-6f30-4879-9f74-7e81dde4cca6",
            "name": "new_custom_datasource",
            "label": "Custom JDBC datasource",
            "description": "Custom datasource for test purposes.",
            "allowed_as_source": true,
            "allowed_as_target": true,
            "properties": {
              "row_limit_support": "none",
              "password": "{password}",
              "jdbc_driver": {
                "jdbc_driver": null
              },
              "jdbc_url": {
                "jdbc_url": null
              },
              "username": "TM_CC_USER_1"
            },
            "property_definitions": [
              {
                "name": "string",
                "type": "boolean",
                "label": "string",
                "description": "string",
                "placeholder": "string",
                "required": true,
                "masked": true,
                "multiline": true,
                "hidden": true,
                "default_value": "string",
                "values": [
                  {
                    "value": "string",
                    "label": "string",
                    "supported_environments": [
                      "private"
                    ],
                    "supported_products": [
                      "catalog",
                      "studio"
                    ]
                  }
                ],
                "group": "string"
              }
            ],
            "status": "active",
            "origin_country": "us",
            "owner_id": "1000331001",
            "rov": {
              "mode": 0,
              "member_roles": {
                "1000331001": {
                  "user_iam_id": "1000331001",
                  "roles": [
                    "OWNER"
                  ]
                }
              }
            }
          }
        }
      ]
    }

Get details for type of data source

Get details for type of data source.

GET /v2/datasource_types/{datasource_type}

Request

Custom Headers

  • The user's preferred locale identifier.

    Default: en-US

Path Parameters

  • The data source type.

Query Parameters

  • Whether to return information about connection properties.

  • Whether to return information about source and target interaction properties.

  • Whether to return information about discovery capabilities.

  • Whether to return information about supported actions.

  • Specify the environment the data source types must support to be included in the returned list. The available environments are 'private', 'public' 'spark', 'streams', 'java', 'local' and 'external'. If no entity.environment is specified, the default for service's deploy environment is used. To specify multiple environments, use a comma-separated string, such as entity.environment=private,public.

  • Specify the perspective the data source types must support to be included in the returned list. The available perspectives are 'cpd', 'dph', 'wx'. If no entity.perspective is specified, no filtering is applied. To specify multiple perspectives, use a comma-separated string, such as entity.perspective=cpd,wx.

  • Specify the product the data source type must support to be returned. The available products are 'ai_factsheet', 'autoai', 'catalog', 'cde', 'cpd', 'dashboardsonprem', 'datarefinery', 'datastage', 'datastage_scapi', 'decision_optimization', 'deployments', 'dph', 'dqr', 'dv', 'dvaas', 'dvaas_ga', 'dvonprem', 'federated_learning', 'governance', 'igc', 'instructlab', 'manta', 'manta_legacy', 'masking_flow', 'mde', 'mdi', 'notebook', 'orchestration_pipelines', 'replication', 'rstudio', 'spss_modeler', 'streamsets', 'udp' and 'wxbia'. If no entity.product is specified, no filtering is applied. To specify multiple products, use a comma-separated string, such as entity.product=catalog,datastage.

  • Scope of ui-only product selector property. Applies to output under common_properties key. Genreated ui contains additional checkbox to switch between first of the requested products and the rest. If only a single one is given it switches between that product and remaining products supported by the data source.

    Allowable values: [global,context]

  • Whether to generate extra conditions in common properties format that will make them behave in a transitive manner under default configuration options of Elyra i.e. when a condition is part of a chain it will enable/disable everything down the chain rather than just hiding the control. Support for this option has been removed. Option itself was not removed to preserve binary compatibility but it no longer has any effect.

    Default: false

  • Whether to show data source definition asset feature metadata properties or not.

    Default: true

  • curl -X 'GET'   '{url}/v2/datasource_types/{datasource_type_id}?generate_transitive_conditions=false&show_data_source_definition_section=true'   -H 'accept: application/json;charset=utf-8'   -H 'Accept-Language: en-US'   -H 'Authorization: Bearer {bearer_token}'

Response

The definition of a data source type.

Status Code

  • A data source type definition.

  • You are not authorized to retrieve the type details of the data source.

  • You are not permitted to perform this action.

  • The data source type details cannot be found.

  • The service is currently receiving more requests than it can process in a timely fashion. Please retry submitting your request later.

  • An error occurred. No data source type details were retrieved.

  • A timeout occurred when processing your request. Please retry later.

Example responses
  • {
      "metadata": {
        "asset_id": "029e5d1c-ba73-4b09-b742-14c3a39b6cf9",
        "asset_type": "datasource_type",
        "creator_id": "IBM"
      },
      "entity": {
        "name": "informix",
        "label": "IBM Informix",
        "description": "IBM Informix is a database that contains relational, object-relational, or dimensional data. You can use the Informix connector to access data from an on-prem Informix database server or from IBM Informix on Cloud.",
        "type": "database",
        "allowed_as_source": true,
        "allowed_as_target": true,
        "allowed_for_discovery_only": false,
        "allowed_as_source_lookup": true,
        "data_shape": "rectangular",
        "auto_discovery": false,
        "secure_gateway": "optional",
        "fips_compliance": "140-2",
        "tags": [
          "IBM"
        ],
        "supported_environments": [
          "cloud",
          "java",
          "local",
          "private",
          "spark"
        ],
        "supported_plans": [],
        "supported_products": [
          "catalog",
          "cpd",
          "dashboards",
          "dashboardsonprem",
          "datarefinery",
          "datastage",
          "datastage_scapi",
          "dv",
          "dvaas_ga",
          "mde",
          "mdi",
          "ml",
          "studio"
        ],
        "status": "active",
        "extensible": false
      }
    }

Delete data source type

Deletes a data source type definition. This call does not check whether the data source type is used by connections or other assets. The caller must check this before deleting a data source type.

DELETE /v2/datasource_types/{datasource_type}

Request

Path Parameters

  • The data source type.

  • curl -X 'DELETE'   '{url}/v2/datasource_types/{datasource_type}'   -H 'accept: */*'   -H 'Authorization: Bearer {bearer_token}'

Response

Status Code

  • The data source type was deleted.

  • You are not authorized to delete a data source type.

  • You are not permitted to perform this action.

  • The data source type cannot be found.

  • The service is currently receiving more requests than it can process in a timely fashion. Please retry submitting your request later.

  • An error occurred. The connection was not deleted.

No Sample Response

This method does not specify any sample responses.

Update datasource type

Updates the definition of a datasource type.

PATCH /v2/datasource_types/{datasource_type}

Request

Path Parameters

  • The data source type.

Fields to update within the data source type.

  • curl -X 'PATCH'   '{url}/v2/datasource_types/{data_source_type}'   -H 'accept: application/json;charset=utf-8'   -H 'Authorization: Bearer {bearer_token}'   -H 'Content-Type: application/json-patch+json;charset=utf-8'   -d '[
      {
        "op": "replace",
        "path": "/name",
        "from": "custom_datasource",
        "value": "new_name_for_custom_datasource"
      }
    ]'

Response

The definition of a custom data source type.

Status Code

  • The updated data source type definition object.

  • The data source type patch request is not valid. See the error message for details.

  • You are not authorized to update the data source type definition.

  • You are not permitted to perform this action.

  • The data source type cannot be found.

  • The service is currently receiving more requests than it can process in a timely fashion. Please retry submitting your request later.

  • An error occurred. The data source type definition was not updated.

  • A timeout occurred when processing your request. Please retry later.

Example responses
  • {
      "base_datasource_type": "e59b1c36-6f30-4879-9f74-7e81dde4cca6",
      "name": "new_name_for_custom_datasource",
      "label": "Custom datasource",
      "description": "Custom datasource.",
      "allowed_as_source": true,
      "allowed_as_target": true,
      "properties": {
        "row_limit_support": "none",
        "password": "{password}",
        "jdbc_driver": {
          "jdbc_driver": null
        },
        "jdbc_url": {
          "jdbc_url": null
        },
        "username": "TM_CC_USER_1"
      },
      "property_definitions": [
        {
          "name": "string",
          "type": "boolean",
          "label": "string",
          "description": "string",
          "placeholder": "string",
          "required": true,
          "masked": true,
          "multiline": true,
          "hidden": true,
          "default_value": "string",
          "values": [
            {
              "value": "string",
              "label": "string",
              "supported_environments": [
                "private"
              ],
              "supported_products": [
                "catalog",
                "studio"
              ]
            }
          ],
          "group": "string"
        }
      ],
      "status": "active",
      "origin_country": "us",
      "owner_id": "1000331001",
      "rov": {
        "mode": 0,
        "member_roles": {
          "1000331001": {
            "user_iam_id": "1000331001",
            "roles": [
              "OWNER"
            ]
          }
        }
      }
    }

List projects

Returns a list of projects filtered by the specified query parameters. By default, only projects that the authenticated user is a member of are returned. In IBM Cloud Pak for Data (CPD), all projects in the cluster are returned (regardless of project membership) if the authenticated user is assigned either the "Manage projects" or "Monitor project workloads" CPD permission. In IBM Cloud Pak for Data (CPDaaS), all projects associated with an IBM Cloud Account are returned (regardless of project membership) if the authenticated user is added to the IBM Cloud Account and assigned the IAM "Manager" role.

GET /v2/projects

Request

Custom Headers

  • A CPDaaS specific flag indicating whether to fetch IAM permissions for the authenticated user as part of the request. Used to determine superuser access via the "manage_project" permission.

    Default: false

Query Parameters

  • The BSS Account ID.

    Possible values: Value must match regular expression ^[0-9a-f-]{3,36}$

    Example: 0821fa9f9ebcc7b7c9a0d6e9bfa72aa4

  • The project type.

    Allowable values: [cpd,wx,wca,dpx,wxbi]

  • A project member to use to filter the query results.

    Possible values: 1 ≤ length ≤ 100

    Example: zapp.brannigan@ibm.com

  • A list of comma-separated project roles to use to filter the query results. Must be used in conjunction with the "member" query parameter.

    Allowable values: [admin,editor,viewer]

  • A list of comma-separated tags to use to filter the query results. If multiple tags are specified, the query results will be filtered to show projects matching any of the tags. (e.g. tag1 OR tag2 OR... tagN).

    Example: development,test,production

  • A full or partial project name to use to filter the query results. This query parameter must be used in conjunction with the 'bss_account_id' query parameter. Use the 'match' query parameter to control they type of text matching performed. Project names are not unique and should not be used in place of project IDs.

    Possible values: 1 ≤ length ≤ 100

    Example: Sentiment Analysis

  • The type of text matching to perform. This query parameter must be used in conjunction with the 'name' query parameter. The 'exact' value will match projects if the specified text matches the exact project name. The 'keyword' value will match projects if the specified text matches any keyword parsed from the project name.

    Allowable values: [exact,keyword]

    Default: exact

  • A list of comma-separated project IDs to use to filter the query results. This query parameter only works in conjunction with the 'member' query parameter.

    Example: d122ffba-de9e-4c67-89c4-0091f1610076,deb5b1d8-5fd4-486c-92ef-12e90959dbf1

  • A list of comma-separated project metadata sections to include in the query results.

    Allowable values: [name,fields,members,tags,settings,everything,nothing]

    Default: ["fields"]

  • The limit used to specify the maximum number of projects returned in the query results. Used for pagination in conjunction with the "bookmark" query parameter.

    Possible values: 0 ≤ value ≤ 100

    Default: 10

  • The bookmark is an opaque key returned in the query results set that serves as a reference to the next page of query results. Specify the bookmark on subsquent query requests to retrieve the next page of query results. Used for pagination in conjunction with the "limit" query parameter.

    Possible values: Value must match regular expression ^[0-9A-Za-z_-]{1,1000}$

  • Deprecated. Use of this query parameter exhibits poor performance characteristics. Use the more efficient "bookmark" query parameter instead. The offset to use to define the starting index of projects to return in the query results. Used for pagination in conjunction with the "limit" query parameter.

    Possible values: value ≥ 0

    Default: 0

  • curl -X 'GET' '{api_domain}/v2/projects?bss_account_id={bss_account_id}&include=fields&limit=10' -H 'Accept: application/json' -H 'Authorization: Bearer {bearer_auth_token}'
    

Response

A list of projects.

Status Code

  • OK

  • Unauthorized

  • Forbidden

  • Too Many Requests

Example responses
  • {
      "total_results": 10,
      "bookmark": "{bookmark}",
      "resources": [
        {
          "metadata": {
            "guid": "{project_id}",
            "url": "/v2/projects/{project_id}",
            "created_at": "2024-11-01T13:21:07.773Z",
            "updated_at": "2024-11-01T13:21:11.520Z"
          },
          "entity": {
            "name": "Project Name",
            "description": "A project description.",
            "type": "cpd",
            "generator": "cpdaas-portal-projects",
            "public": false,
            "creator": "zapp.brannigan@ibm.com",
            "storage": {
              "type": "bmcos_object_storage",
              "properties": {
                "bucket_name": "{bucket_name}",
                "bucket_region": "us-south",
                "endpoint_url": "https://s3.us-west.cloud-object-storage.test.appdomain.cloud"
              },
              "guid": "{storage_id}"
            },
            "scope": {
              "bss_account_id": "{bss_account_id}",
              "saml_instance_name": "IBM w3id",
              "enforce_members": true
            }
          }
        }
      ]
    }
  • {
      "code": "401",
      "error": "Unauthorized",
      "reason": "Unable to verify token via IAM Auth server.",
      "message": "Authentication failed."
    }
  • {
      "code": "403",
      "error": "Forbidden",
      "reason": "Permission Denied: Authenticated user is not a member of the project: zapp.brannigan@ibm.com.",
      "message": "The target operation is strictly forbidden due to schema constraints."
    }
  • {
      "code": "429",
      "error": "Too Many Requests",
      "reason": "The number of requests has exceeded the rate limit. Requests: 61. Limit: 60. Category: query. Subject: zapp.brannigan@ibm.com (IBMid-55000353XF).",
      "message": "The client has sent too many requests in a given amount of time."
    }

Get project total

Returns the total number of projects associated with the authenticated user in a BSS account. In IBM Cloud Pak for Data (CPDaaS), specifying the BSS account ID is required. In IBM Cloud Pak for Data (CPD), specifying the BSS account ID is optional. Default is "999". The maximum total number of projects returned will be capped at 10,000 projects (for database performance reasons).

GET /v2/projects/total

Request

Custom Headers

  • A CPDaaS specific flag indicating whether to fetch IAM permissions for the authenticated user as part of the request. Used to determine superuser access via the "manage_project" permission.

    Default: false

Query Parameters

  • The BSS Account ID.

    Possible values: Value must match regular expression ^[0-9a-f-]{3,36}$

    Example: 0821fa9f9ebcc7b7c9a0d6e9bfa72aa4

  • The project type.

    Allowable values: [cpd,wx,wca,dpx,wxbi]

  • A project member to use to filter the query results.

    Possible values: 1 ≤ length ≤ 100

    Example: zapp.brannigan@ibm.com

  • A list of comma-separated tags to use to filter the query results. If multiple tags are specified, the query results will be filtered to show projects matching any of the tags. (e.g. tag1 OR tag2 OR... tagN).

    Example: development,test,production

  • curl -X 'GET' '{api_domain}/v2/projects/total?bss_account_id={bss_account_id}' -H 'Accept: application/json' -H 'Authorization: Bearer {bearer_auth_token}'
    

Response

The project total.

Status Code

  • OK

  • Bad Request

  • Unauthorized

  • Forbidden

  • Too Many Requests

Example responses
  • {
      "total": 10
    }
  • {
      "code": "400",
      "error": "Bad Request",
      "reason": "Entity body.name contains invalid characters.",
      "message": "The server cannot or will not process the request due to an apparent client error."
    }
  • {
      "code": "401",
      "error": "Unauthorized",
      "reason": "Unable to verify token via IAM Auth server.",
      "message": "Authentication failed."
    }
  • {
      "code": "403",
      "error": "Forbidden",
      "reason": "Permission Denied: Authenticated user is not a member of the project: zapp.brannigan@ibm.com.",
      "message": "The target operation is strictly forbidden due to schema constraints."
    }
  • {
      "code": "429",
      "error": "Too Many Requests",
      "reason": "The number of requests has exceeded the rate limit. Requests: 601. Limit: 600. Category: read. Subject: zapp.brannigan@ibm.com (IBMid-55000353XF).",
      "message": "The client has sent too many requests in a given amount of time."
    }

Get project

Returns the metadata for a target project specified by ID.

GET /v2/projects/{project_id}

Request

Path Parameters

  • The project ID.

    Possible values: Value must match regular expression ^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$

    Example: 46a19524-bfbf-4810-a1f0-b131f12bc773

Query Parameters

  • A list of comma-separated project metadata sections to include in the query results.

    Allowable values: [name,fields,members,tags,settings,integrations,storage,credentials,everything,nothing]

    Default: ["fields"]

  • curl -X 'GET' '{api_domain}/v2/projects/{project_id}?include=fields' -H 'Accept: application/json' -H 'Authorization: Bearer {bearer_auth_token}'
    

Response

A project object.

Status Code

  • OK

  • No Content

  • Bad Request

  • Unauthorized

  • Forbidden

  • Not Found

  • Too Many Requests

Example responses
  • {
      "metadata": {
        "guid": "{project_id}",
        "url": "/v2/projects/{project_id}",
        "created_at": "2024-11-01T13:21:07.773Z",
        "updated_at": "2024-11-01T13:21:11.520Z"
      },
      "entity": {
        "name": "Project Name",
        "generator": "cpdaas-portal-projects",
        "description": "A project description.",
        "public": false,
        "storage": {
          "type": "bmcos_object_storage",
          "properties": {
            "bucket_name": "{bucket_name}",
            "bucket_region": "us-south",
            "credentials": {
              "admin": {
                "api_key": "{api_key}",
                "service_id": "{service_id}",
                "access_key_id": "{access_key_id}",
                "secret_access_key": "{secret_access_key}"
              },
              "editor": {
                "api_key": "{api_key}",
                "service_id": "{service_id}",
                "access_key_id": "{access_key_id}",
                "secret_access_key": "{secret_access_key}",
                "resource_key_crn": "{resource_key_crn}"
              },
              "viewer": {
                "api_key": "{api_key}",
                "service_id": "{service_id}",
                "access_key_id": "{access_key_id}",
                "secret_access_key": "{secret_access_key}",
                "resource_key_crn": "{resource_key_crn}"
              }
            },
            "endpoint_url": "https://s3.us-west.cloud-object-storage.test.appdomain.cloud"
          },
          "guid": "{storage_id}"
        },
        "scope": {
          "bss_account_id": "{bss_account_id}",
          "saml_instance_name": "IBM w3id",
          "enforce_members": true
        },
        "type": "cpd",
        "creator": "zapp.brannigan@ibm.com",
        "creator_iam_id": "IBMid-55000353XF",
        "catalog": {
          "public": false,
          "guid": "{catalog_id}"
        }
      }
    }
  • {
      "code": "400",
      "error": "Bad Request",
      "reason": "Entity body.name contains invalid characters.",
      "message": "The server cannot or will not process the request due to an apparent client error."
    }
  • {
      "code": "401",
      "error": "Unauthorized",
      "reason": "Unable to verify token via IAM Auth server.",
      "message": "Authentication failed."
    }
  • {
      "code": "403",
      "error": "Forbidden",
      "reason": "Permission Denied: Authenticated user is not a member of the project: zapp.brannigan@ibm.com.",
      "message": "The target operation is strictly forbidden due to schema constraints."
    }
  • {
      "code": "404",
      "error": "Not Found",
      "reason": "Failed to retrieve project: 47f11f98-1fc2-4478-ba38-d037094e761f.",
      "message": "The requested resource could not be found."
    }
  • {
      "code": "429",
      "error": "Too Many Requests",
      "reason": "The number of requests has exceeded the rate limit. Requests: 601. Limit: 600. Category: read. Subject: zapp.brannigan@ibm.com (IBMid-55000353XF).",
      "message": "The client has sent too many requests in a given amount of time."
    }

Update project

Partially updates the project with only a subset of properties.

PATCH /v2/projects/{project_id}

Request

Path Parameters

  • The project ID.

    Possible values: Value must match regular expression ^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$

    Example: 46a19524-bfbf-4810-a1f0-b131f12bc773

The request body for updating an existing project.

  • curl -X 'PATCH' '{api_domain}/v2/projects/{project_id}' -H 'Accept: application/json' -H 'Authorization: Bearer {bearer_auth_token}' -H 'Content-Type: application/json' -d '{
    "name": "Project Name",
    "description": "A project description.",
    "compute": [
    {
    "type": "code-assistant",
    "guid": "{code_assistant_instance_id}",
    "crn": "{code_assistant_instance_crn}",
    "name": "IBM watsonx Code Assistant",
    "label": "code-assistant",
    "credentials": {}
    }
    ]
    }'
    

Response

A project object.

Status Code

  • OK

  • Bad Request

  • Unauthorized

  • Forbidden

  • Not Found

  • Too Many Requests

Example responses
  • {
      "metadata": {
        "guid": "{project_id}",
        "url": "/v2/projects/{project_id}",
        "created_at": "2024-11-01T13:21:07.773Z",
        "updated_at": "2024-11-01T13:21:11.520Z"
      },
      "entity": {
        "name": "Project Name",
        "generator": "cpdaas-portal-projects",
        "description": "A project description.",
        "public": false,
        "storage": {
          "type": "bmcos_object_storage",
          "properties": {
            "bucket_name": "{bucket_name}",
            "bucket_region": "us-south",
            "credentials": {
              "admin": {
                "api_key": "{api_key}",
                "service_id": "{service_id}",
                "access_key_id": "{access_key_id}",
                "secret_access_key": "{secret_access_key}"
              },
              "editor": {
                "api_key": "{api_key}",
                "service_id": "{service_id}",
                "access_key_id": "{access_key_id}",
                "secret_access_key": "{secret_access_key}",
                "resource_key_crn": "{resource_key_crn}"
              },
              "viewer": {
                "api_key": "{api_key}",
                "service_id": "{service_id}",
                "access_key_id": "{access_key_id}",
                "secret_access_key": "{secret_access_key}",
                "resource_key_crn": "{resource_key_crn}"
              }
            },
            "endpoint_url": "https://s3.us-west.cloud-object-storage.test.appdomain.cloud"
          },
          "guid": "{storage_id}"
        },
        "scope": {
          "bss_account_id": "{bss_account_id}",
          "saml_instance_name": "IBM w3id",
          "enforce_members": true
        },
        "type": "cpd",
        "creator": "zapp.brannigan@ibm.com",
        "creator_iam_id": "IBMid-55000353XF",
        "catalog": {
          "public": false,
          "guid": "{catalog_id}"
        }
      }
    }
  • {
      "code": "400",
      "error": "Bad Request",
      "reason": "Entity body.name contains invalid characters.",
      "message": "The server cannot or will not process the request due to an apparent client error."
    }
  • {
      "code": "401",
      "error": "Unauthorized",
      "reason": "Unable to verify token via IAM Auth server.",
      "message": "Authentication failed."
    }
  • {
      "code": "403",
      "error": "Forbidden",
      "reason": "Permission Denied: Authenticated user is not a member of the project: zapp.brannigan@ibm.com.",
      "message": "The target operation is strictly forbidden due to schema constraints."
    }
  • {
      "code": "404",
      "error": "Not Found",
      "reason": "Failed to retrieve project: 47f11f98-1fc2-4478-ba38-d037094e761f.",
      "message": "The requested resource could not be found."
    }
  • {
      "code": "429",
      "error": "Too Many Requests",
      "reason": "The number of requests has exceeded the rate limit. Requests: 451. Limit: 450. Category: write. Subject: zapp.brannigan@ibm.com (IBMid-55000353XF).",
      "message": "The client has sent too many requests in a given amount of time."
    }

List members

Returns the list of project members.

GET /v2/projects/{project_id}/members

Request

Path Parameters

  • The project ID.

    Possible values: Value must match regular expression ^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$

    Example: 46a19524-bfbf-4810-a1f0-b131f12bc773

Query Parameters

  • A list of comma-separated project roles to use to filter the query results.

    Allowable values: [admin,editor,viewer]

  • A list of comma-separated usernames corresponding to project members that are used to filter the query results.

    Possible values: 1 ≤ length ≤ 100

  • curl -X 'GET' '{api_domain}/v2/projects/{project_id}/members' -H 'Accept: application/json' -H 'Authorization: Bearer {bearer_auth_token}'
    

Response

A list of project members.

Status Code

  • OK

  • Bad Request

  • Unauthorized

  • Forbidden

  • Not Found

  • Too Many Requests

Example responses
  • {
      "members": [
        {
          "user_name": "zapp.brannigan@ibm.com",
          "role": "admin",
          "state": "ACTIVE",
          "type": "user",
          "id": "IBMid-55000353XF"
        }
      ]
    }
  • {
      "code": "400",
      "error": "Bad Request",
      "reason": "Entity body.name contains invalid characters.",
      "message": "The server cannot or will not process the request due to an apparent client error."
    }
  • {
      "code": "401",
      "error": "Unauthorized",
      "reason": "Unable to verify token via IAM Auth server.",
      "message": "Authentication failed."
    }
  • {
      "code": "403",
      "error": "Forbidden",
      "reason": "Permission Denied: Authenticated user is not a member of the project: zapp.brannigan@ibm.com.",
      "message": "The target operation is strictly forbidden due to schema constraints."
    }
  • {
      "code": "404",
      "error": "Not Found",
      "reason": "Failed to retrieve project: 47f11f98-1fc2-4478-ba38-d037094e761f.",
      "message": "The requested resource could not be found."
    }
  • {
      "code": "429",
      "error": "Too Many Requests",
      "reason": "The number of requests has exceeded the rate limit. Requests: 601. Limit: 600. Category: read. Subject: zapp.brannigan@ibm.com (IBMid-55000353XF).",
      "message": "The client has sent too many requests in a given amount of time."
    }

Create members

Adds new project members with the provided roles. A project must always have at least one admin.

POST /v2/projects/{project_id}/members

Request

Custom Headers

  • A CPDaaS specific flag indicating whether to fetch IAM permissions for the authenticated user as part of the request. Used to determine superuser access via the "manage_project" permission.

    Default: false

Path Parameters

  • The project ID.

    Possible values: Value must match regular expression ^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$

    Example: 46a19524-bfbf-4810-a1f0-b131f12bc773

A list of project members.

  • curl -X 'POST' '{api_domain}/v2/projects/{project_id}/members' -H 'Accept: application/json' -H 'cpdaas-include-permissions: false' -H 'Authorization: Bearer {bearer_auth_token}' -H 'Content-Type: application/json' -d '{
    "members": [
    {
    "user_name": "zapp.brannigan@ibm.com",
    "id": "IBMid-55000353XF",
    "role": "admin",
    "state": "ACTIVE",
    "type": "user"
    }
    ]
    }'
    

Response

A list of project members.

Status Code

  • OK

  • Bad Request

  • Unauthorized

  • Forbidden

  • Not Found

  • Too Many Requests

Example responses
  • {
      "members": [
        {
          "user_name": "zapp.brannigan@ibm.com",
          "role": "admin",
          "state": "ACTIVE",
          "type": "user",
          "id": "IBMid-55000353XF"
        }
      ]
    }
  • {
      "code": "400",
      "error": "Bad Request",
      "reason": "Entity body.name contains invalid characters.",
      "message": "The server cannot or will not process the request due to an apparent client error."
    }
  • {
      "code": "401",
      "error": "Unauthorized",
      "reason": "Unable to verify token via IAM Auth server.",
      "message": "Authentication failed."
    }
  • {
      "code": "403",
      "error": "Forbidden",
      "reason": "Permission Denied: Authenticated user is not a member of the project: zapp.brannigan@ibm.com.",
      "message": "The target operation is strictly forbidden due to schema constraints."
    }
  • {
      "code": "404",
      "error": "Not Found",
      "reason": "Failed to retrieve project: 47f11f98-1fc2-4478-ba38-d037094e761f.",
      "message": "The requested resource could not be found."
    }
  • {
      "code": "429",
      "error": "Too Many Requests",
      "reason": "The number of requests has exceeded the rate limit. Requests: 451. Limit: 450. Category: write. Subject: zapp.brannigan@ibm.com (IBMid-55000353XF).",
      "message": "The client has sent too many requests in a given amount of time."
    }

Delete members

Deletes members from the project that match the provided usernames.

DELETE /v2/projects/{project_id}/members

Request

Path Parameters

  • The project ID.

    Possible values: Value must match regular expression ^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$

    Example: 46a19524-bfbf-4810-a1f0-b131f12bc773

Query Parameters

  • A list of comma-separated usernames corresponding to project members to remove from the project.

    Possible values: 1 ≤ length ≤ 100

  • curl -X 'DELETE' '{api_domain}/v2/projects/{project_id}/members?user_names=zapp.brannigan%40ibm.com' -H 'Accept: */*' -H 'Authorization: Bearer {bearer_auth_token}'
    

Response

Status Code

  • No Content

  • Bad Request

  • Unauthorized

  • Forbidden

  • Not Found

  • Too Many Requests

Example responses
  • {
      "code": "400",
      "error": "Bad Request",
      "reason": "Entity body.name contains invalid characters.",
      "message": "The server cannot or will not process the request due to an apparent client error."
    }
  • {
      "code": "401",
      "error": "Unauthorized",
      "reason": "Unable to verify token via IAM Auth server.",
      "message": "Authentication failed."
    }
  • {
      "code": "403",
      "error": "Forbidden",
      "reason": "Permission Denied: Authenticated user is not a member of the project: zapp.brannigan@ibm.com.",
      "message": "The target operation is strictly forbidden due to schema constraints."
    }
  • {
      "code": "404",
      "error": "Not Found",
      "reason": "Failed to retrieve project: 47f11f98-1fc2-4478-ba38-d037094e761f.",
      "message": "The requested resource could not be found."
    }
  • {
      "code": "429",
      "error": "Too Many Requests",
      "reason": "The number of requests has exceeded the rate limit. Requests: 451. Limit: 450. Category: write. Subject: zapp.brannigan@ibm.com (IBMid-55000353XF).",
      "message": "The client has sent too many requests in a given amount of time."
    }

Update members

Change project member roles in a batch.

PATCH /v2/projects/{project_id}/members

Request

Custom Headers

  • A CPDaaS specific flag indicating whether to fetch IAM permissions for the authenticated user as part of the request. Used to determine superuser access via the "manage_project" permission.

    Default: false

Path Parameters

  • The project ID.

    Possible values: Value must match regular expression ^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$

    Example: 46a19524-bfbf-4810-a1f0-b131f12bc773

The request body for updating project members.

  • curl -X 'PATCH' '{api_domain}/v2/projects/{project_id}/members' -H 'Accept: application/json' -H 'cpdaas-include-permissions: false' -H 'Authorization: Bearer {bearer_auth_token}' -H 'Content-Type: application/json' -d '{
    "members": [
    {
    "user_name": "zapp.brannigan@ibm.com",
    "id": "IBMid-55000353XF",
    "role": "editor"
    }
    ]
    }'
    

Response

A list of project members.

Status Code

  • OK

  • Bad Request

  • Unauthorized

  • Forbidden

  • Not Found

  • Too Many Requests

Example responses
  • {
      "members": [
        {
          "user_name": "zapp.brannigan@ibm.com",
          "role": "admin",
          "state": "ACTIVE",
          "type": "user",
          "id": "IBMid-55000353XF"
        }
      ]
    }
  • {
      "code": "400",
      "error": "Bad Request",
      "reason": "Entity body.name contains invalid characters.",
      "message": "The server cannot or will not process the request due to an apparent client error."
    }
  • {
      "code": "401",
      "error": "Unauthorized",
      "reason": "Unable to verify token via IAM Auth server.",
      "message": "Authentication failed."
    }
  • {
      "code": "403",
      "error": "Forbidden",
      "reason": "Permission Denied: Authenticated user is not a member of the project: zapp.brannigan@ibm.com.",
      "message": "The target operation is strictly forbidden due to schema constraints."
    }
  • {
      "code": "404",
      "error": "Not Found",
      "reason": "Failed to retrieve project: 47f11f98-1fc2-4478-ba38-d037094e761f.",
      "message": "The requested resource could not be found."
    }
  • {
      "code": "429",
      "error": "Too Many Requests",
      "reason": "The number of requests has exceeded the rate limit. Requests: 451. Limit: 450. Category: write. Subject: zapp.brannigan@ibm.com (IBMid-55000353XF).",
      "message": "The client has sent too many requests in a given amount of time."
    }

Get member

Returns the project member with the specified 'user_name' if any.

GET /v2/projects/{project_id}/members/{user_name}

Request

Path Parameters

  • The project ID.

    Possible values: Value must match regular expression ^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$

    Example: 46a19524-bfbf-4810-a1f0-b131f12bc773

  • The username of the project member.

    Possible values: 1 ≤ length ≤ 100

    Example: zapp.brannigan@ibm.com

Query Parameters

  • A flag indicating whether to return a derived project member based on resolving user groups.

    Default: true

  • curl -X 'GET' '{api_domain}/v2/projects/{project_id}/members/zapp.brannigan%40ibm.com?resolve_groups=true' -H 'Accept: application/json' -H 'Authorization: Bearer {bearer_auth_token}'
    

Response

A project member.

Status Code

  • OK

  • Bad Request

  • Unauthorized

  • Forbidden

  • Not Found

  • Too Many Requests

Example responses
  • {
      "id": "IBMid-55000353XF",
      "state": "ACTIVE",
      "type": "user",
      "user_name": "zapp.brannigan@ibm.com",
      "role": "admin"
    }
  • {
      "code": "400",
      "error": "Bad Request",
      "reason": "Entity body.name contains invalid characters.",
      "message": "The server cannot or will not process the request due to an apparent client error."
    }
  • {
      "code": "401",
      "error": "Unauthorized",
      "reason": "Unable to verify token via IAM Auth server.",
      "message": "Authentication failed."
    }
  • {
      "code": "403",
      "error": "Forbidden",
      "reason": "Permission Denied: Authenticated user is not a member of the project: zapp.brannigan@ibm.com.",
      "message": "The target operation is strictly forbidden due to schema constraints."
    }
  • {
      "code": "404",
      "error": "Not Found",
      "reason": "Failed to retrieve project: 47f11f98-1fc2-4478-ba38-d037094e761f.",
      "message": "The requested resource could not be found."
    }
  • {
      "code": "429",
      "error": "Too Many Requests",
      "reason": "The number of requests has exceeded the rate limit. Requests: 601. Limit: 600. Category: read. Subject: zapp.brannigan@ibm.com (IBMid-55000353XF).",
      "message": "The client has sent too many requests in a given amount of time."
    }

Delete member

Deletes a member with a given user name from a project with the given username.

DELETE /v2/projects/{project_id}/members/{user_name}

Request

Path Parameters

  • The project ID.

    Possible values: Value must match regular expression ^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$

    Example: 46a19524-bfbf-4810-a1f0-b131f12bc773

  • The username of the project member.

    Possible values: 1 ≤ length ≤ 100

    Example: zapp.brannigan@ibm.com

  • curl -X 'DELETE' '{api_domain}/v2/projects/{project_id}/members/zapp.brannigan%40ibm.com' -H 'Accept: */*' -H 'Authorization: Bearer {bearer_auth_token}'
    

Response

Status Code

  • No Content

  • Bad Request

  • Unauthorized

  • Forbidden

  • Not Found

  • Too Many Requests

Example responses
  • {
      "code": "400",
      "error": "Bad Request",
      "reason": "Entity body.name contains invalid characters.",
      "message": "The server cannot or will not process the request due to an apparent client error."
    }
  • {
      "code": "401",
      "error": "Unauthorized",
      "reason": "Unable to verify token via IAM Auth server.",
      "message": "Authentication failed."
    }
  • {
      "code": "403",
      "error": "Forbidden",
      "reason": "Permission Denied: Authenticated user is not a member of the project: zapp.brannigan@ibm.com.",
      "message": "The target operation is strictly forbidden due to schema constraints."
    }
  • {
      "code": "404",
      "error": "Not Found",
      "reason": "Failed to retrieve project: 47f11f98-1fc2-4478-ba38-d037094e761f.",
      "message": "The requested resource could not be found."
    }
  • {
      "code": "429",
      "error": "Too Many Requests",
      "reason": "The number of requests has exceeded the rate limit. Requests: 451. Limit: 450. Category: write. Subject: zapp.brannigan@ibm.com (IBMid-55000353XF).",
      "message": "The client has sent too many requests in a given amount of time."
    }

Update project storage properties

Update the storage properties associated with the target project specified by ID.

PATCH /v2/projects/{project_id}/storage/properties

Request

Path Parameters

  • The project ID.

    Possible values: Value must match regular expression ^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$

    Example: 46a19524-bfbf-4810-a1f0-b131f12bc773

The request body for updating project storage properties. Only the properties of the "bmcos_object_storage" and "local_git_storage" storage types can be updated. Only project members with the "admin" role are authorized to perform this update operation.

  • curl -X 'PATCH' '{api_domain}/v2/projects/{project_id}/storage/properties' -H 'Accept: application/json' -H 'Authorization: Bearer {bearer_auth_token}' -H 'Content-Type: application/json' -d '{
    "credentials": {
    "admin": {
    "api_key": "{api_key}",
    "service_id": "{service_id}",
    "access_key_id": "{access_key_id}",
    "secret_access_key": "{secret_access_key}"
    },
    "editor": {
    "api_key": "{api_key}",
    "service_id": "{service_id}",
    "access_key_id": "{access_key_id}",
    "secret_access_key": "{secret_access_key}",
    "resource_key_crn": "{resource_key_crn}"
    },
    "viewer": {
    "api_key": "{api_key}",
    "service_id": "{service_id}",
    "access_key_id": "{access_key_id}",
    "secret_access_key": "{secret_access_key}",
    "resource_key_crn": "{resource_key_crn}"
    }
    }
    }'
    

Response

The JSON response from updating Cloud Object Storage (COS) properties.

Status Code

  • OK

  • Bad Request

  • Unauthorized

  • Forbidden

  • Not Found

  • Too Many Requests

Example responses
  • {
      "credentials": {
        "admin": {
          "api_key": "{api_key}",
          "service_id": "{service_id}",
          "access_key_id": "{access_key_id}",
          "secret_access_key": "{secret_access_key}"
        },
        "editor": {
          "api_key": "{api_key}",
          "service_id": "{service_id}",
          "access_key_id": "{access_key_id}",
          "secret_access_key": "{secret_access_key}",
          "resource_key_crn": "{resource_key_crn}"
        },
        "viewer": {
          "api_key": "{api_key}",
          "service_id": "{service_id}",
          "access_key_id": "{access_key_id}",
          "secret_access_key": "{secret_access_key}",
          "resource_key_crn": "{resource_key_crn}"
        }
      },
      "credentials_updated_at": "2025-07-15T20:59:47.421Z"
    }
  • {
      "code": "400",
      "error": "Bad Request",
      "reason": "Entity body.name contains invalid characters.",
      "message": "The server cannot or will not process the request due to an apparent client error."
    }
  • {
      "code": "401",
      "error": "Unauthorized",
      "reason": "Unable to verify token via IAM Auth server.",
      "message": "Authentication failed."
    }
  • {
      "code": "403",
      "error": "Forbidden",
      "reason": "Permission Denied: Authenticated user is not a member of the project: zapp.brannigan@ibm.com.",
      "message": "The target operation is strictly forbidden due to schema constraints."
    }
  • {
      "code": "404",
      "error": "Not Found",
      "reason": "Failed to retrieve project: 47f11f98-1fc2-4478-ba38-d037094e761f.",
      "message": "The requested resource could not be found."
    }
  • {
      "code": "429",
      "error": "Too Many Requests",
      "reason": "The number of requests has exceeded the rate limit. Requests: 451. Limit: 450. Category: write. Subject: zapp.brannigan@ibm.com (IBMid-55000353XF).",
      "message": "The client has sent too many requests in a given amount of time."
    }

List tags

Returns the list of project tags.

GET /v2/projects/{project_id}/tags

Request

Path Parameters

  • The project ID.

    Possible values: Value must match regular expression ^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$

    Example: 46a19524-bfbf-4810-a1f0-b131f12bc773

  • curl -X 'GET' '{api_domain}/v2/projects/{project_id}/tags' -H 'Accept: application/json' -H 'Authorization: Bearer {bearer_auth_token}'
    

Response

A list of tags associated with the project.

Status Code

  • OK

  • Bad Request

  • Unauthorized

  • Forbidden

  • Not Found

  • Too Many Requests

Example responses
  • [
      "development",
      "production",
      "test"
    ]
  • {
      "code": "400",
      "error": "Bad Request",
      "reason": "Entity body.name contains invalid characters.",
      "message": "The server cannot or will not process the request due to an apparent client error."
    }
  • {
      "code": "401",
      "error": "Unauthorized",
      "reason": "Unable to verify token via IAM Auth server.",
      "message": "Authentication failed."
    }
  • {
      "code": "403",
      "error": "Forbidden",
      "reason": "Permission Denied: Authenticated user is not a member of the project: zapp.brannigan@ibm.com.",
      "message": "The target operation is strictly forbidden due to schema constraints."
    }
  • {
      "code": "404",
      "error": "Not Found",
      "reason": "Failed to retrieve project: 47f11f98-1fc2-4478-ba38-d037094e761f.",
      "message": "The requested resource could not be found."
    }
  • {
      "code": "429",
      "error": "Too Many Requests",
      "reason": "The number of requests has exceeded the rate limit. Requests: 601. Limit: 600. Category: read. Subject: zapp.brannigan@ibm.com (IBMid-55000353XF).",
      "message": "The client has sent too many requests in a given amount of time."
    }

Create tags

Adds new tags to a project.

POST /v2/projects/{project_id}/tags

Request

Path Parameters

  • The project ID.

    Possible values: Value must match regular expression ^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$

    Example: 46a19524-bfbf-4810-a1f0-b131f12bc773

A tag associated with the project. The tag cannot contain a comma (,). The tag cannot contain any of the following characters unless escaped by character entities - left angle bracket (<)(<), right angle bracket (>)(>), single-quote (')('), double quote (")("), ampersand (&)(&).

  • curl -X 'POST' '{api_domain}/v2/projects/{project_id}/tags' -H 'Accept: application/json' -H 'Authorization: Bearer {bearer_auth_token}' -H 'Content-Type: application/json' -d '[
    "development",
    "test",
    "production"
    ]'
    

Response

A list of tags associated with the project.

Status Code

  • Created

  • Bad Request

  • Unauthorized

  • Forbidden

  • Not Found

  • Unprocessable Entity

  • Too Many Requests

Example responses
  • [
      "development",
      "production",
      "test"
    ]
  • {
      "code": "400",
      "error": "Bad Request",
      "reason": "Entity body.name contains invalid characters.",
      "message": "The server cannot or will not process the request due to an apparent client error."
    }
  • {
      "code": "401",
      "error": "Unauthorized",
      "reason": "Unable to verify token via IAM Auth server.",
      "message": "Authentication failed."
    }
  • {
      "code": "403",
      "error": "Forbidden",
      "reason": "Permission Denied: Authenticated user is not a member of the project: zapp.brannigan@ibm.com.",
      "message": "The target operation is strictly forbidden due to schema constraints."
    }
  • {
      "code": "404",
      "error": "Not Found",
      "reason": "Failed to retrieve project: 47f11f98-1fc2-4478-ba38-d037094e761f.",
      "message": "The requested resource could not be found."
    }
  • {
      "code": "422",
      "error": "Unprocessable Entity",
      "reason": "The number of projects created by the authenticated user exceeds the designated limit. Projects created by user (101) > Projects per user limit (100).",
      "message": "The request was well-formed but was unable to be followed due to semantic errors.",
      "id": "WSCPA0001E"
    }
  • {
      "code": "429",
      "error": "Too Many Requests",
      "reason": "The number of requests has exceeded the rate limit. Requests: 451. Limit: 450. Category: write. Subject: zapp.brannigan@ibm.com (IBMid-55000353XF).",
      "message": "The client has sent too many requests in a given amount of time."
    }

Delete tags

Delete existing tags in a project. If no 'tag_names' are specified, then delete all existing tags in a project.

DELETE /v2/projects/{project_id}/tags

Request

Path Parameters

  • The project ID.

    Possible values: Value must match regular expression ^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$

    Example: 46a19524-bfbf-4810-a1f0-b131f12bc773

Query Parameters

  • A list of comma-separated tags to use to filter the query results. If multiple tags are specified, the query results will be filtered to show projects matching any of the tags. (e.g. tag1 OR tag2 OR... tagN).

    Example: development,test,production

  • curl -X 'DELETE' '{api_domain}/v2/projects/{project_id}/tags?tag_names=development' -H 'Accept: */*' -H 'Authorization: Bearer {bearer_auth_token}'
    

Response

Status Code

  • No Content

  • Bad Request

  • Unauthorized

  • Forbidden

  • Not Found

  • Too Many Requests

Example responses
  • {
      "code": "400",
      "error": "Bad Request",
      "reason": "Entity body.name contains invalid characters.",
      "message": "The server cannot or will not process the request due to an apparent client error."
    }
  • {
      "code": "401",
      "error": "Unauthorized",
      "reason": "Unable to verify token via IAM Auth server.",
      "message": "Authentication failed."
    }
  • {
      "code": "403",
      "error": "Forbidden",
      "reason": "Permission Denied: Authenticated user is not a member of the project: zapp.brannigan@ibm.com.",
      "message": "The target operation is strictly forbidden due to schema constraints."
    }
  • {
      "code": "404",
      "error": "Not Found",
      "reason": "Failed to retrieve project: 47f11f98-1fc2-4478-ba38-d037094e761f.",
      "message": "The requested resource could not be found."
    }
  • {
      "code": "429",
      "error": "Too Many Requests",
      "reason": "The number of requests has exceeded the rate limit. Requests: 451. Limit: 450. Category: write. Subject: zapp.brannigan@ibm.com (IBMid-55000353XF).",
      "message": "The client has sent too many requests in a given amount of time."
    }

Update tags

Adds new tags and removes existing tags from a project via a single bulk update operation.

PATCH /v2/projects/{project_id}/tags

Request

Path Parameters

  • The project ID.

    Possible values: Value must match regular expression ^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$

    Example: 46a19524-bfbf-4810-a1f0-b131f12bc773

An operation to add or remove project tags.

Examples:
[
  {
    "op": "add",
    "tags": [
      "development",
      "test"
    ]
  },
  {
    "op": "remove",
    "tags": [
      "production"
    ]
  }
]
  • curl -X 'PATCH' '{api_domain}/v2/projects/{project_id}/tags' -H 'Accept: application/json' -H 'Authorization: Bearer {bearer_auth_token}' -H 'Content-Type: application/json' -d '[
    {
    "op": "add",
    "tags": [
    "development",
    "test"
    ]
    },
    {
    "op": "remove",
    "tags": [
    "production"
    ]
    }
    ]'
    

Response

A list of tags associated with the project.

Status Code

  • OK

  • Bad Request

  • Unauthorized

  • Forbidden

  • Not Found

  • Unprocessable Entity

  • Too Many Requests

Example responses
  • [
      "development",
      "test"
    ]
  • {
      "code": "400",
      "error": "Bad Request",
      "reason": "Entity body.name contains invalid characters.",
      "message": "The server cannot or will not process the request due to an apparent client error."
    }
  • {
      "code": "401",
      "error": "Unauthorized",
      "reason": "Unable to verify token via IAM Auth server.",
      "message": "Authentication failed."
    }
  • {
      "code": "403",
      "error": "Forbidden",
      "reason": "Permission Denied: Authenticated user is not a member of the project: zapp.brannigan@ibm.com.",
      "message": "The target operation is strictly forbidden due to schema constraints."
    }
  • {
      "code": "404",
      "error": "Not Found",
      "reason": "Failed to retrieve project: 47f11f98-1fc2-4478-ba38-d037094e761f.",
      "message": "The requested resource could not be found."
    }
  • {
      "code": "422",
      "error": "Unprocessable Entity",
      "reason": "The number of projects created by the authenticated user exceeds the designated limit. Projects created by user (101) > Projects per user limit (100).",
      "message": "The request was well-formed but was unable to be followed due to semantic errors.",
      "id": "WSCPA0001E"
    }
  • {
      "code": "429",
      "error": "Too Many Requests",
      "reason": "The number of requests has exceeded the rate limit. Requests: 451. Limit: 450. Category: write. Subject: zapp.brannigan@ibm.com (IBMid-55000353XF).",
      "message": "The client has sent too many requests in a given amount of time."
    }

Create tag

Add a new tag to a project.

POST /v2/projects/{project_id}/tags/{tag_name}

Request

Path Parameters

  • The project ID.

    Possible values: Value must match regular expression ^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$

    Example: 46a19524-bfbf-4810-a1f0-b131f12bc773

  • The tag name.

    Possible values: 1 ≤ length ≤ 30, Value must match regular expression ^[^,]+$

    Example: development

  • curl -X 'POST' '{api_domain}/v2/projects/{project_id}/tags/development' -H 'Accept: application/json' -H 'Authorization: Bearer {bearer_auth_token}' -H 'Content-Type: application/json' -d '{}'
    

Response

A list of tags associated with the project.

Status Code

  • Created

  • Bad Request

  • Unauthorized

  • Forbidden

  • Not Found

  • Unprocessable Entity

  • Too Many Requests

Example responses
  • [
      "development"
    ]
  • {
      "code": "400",
      "error": "Bad Request",
      "reason": "Entity body.name contains invalid characters.",
      "message": "The server cannot or will not process the request due to an apparent client error."
    }
  • {
      "code": "401",
      "error": "Unauthorized",
      "reason": "Unable to verify token via IAM Auth server.",
      "message": "Authentication failed."
    }
  • {
      "code": "403",
      "error": "Forbidden",
      "reason": "Permission Denied: Authenticated user is not a member of the project: zapp.brannigan@ibm.com.",
      "message": "The target operation is strictly forbidden due to schema constraints."
    }
  • {
      "code": "404",
      "error": "Not Found",
      "reason": "Failed to retrieve project: 47f11f98-1fc2-4478-ba38-d037094e761f.",
      "message": "The requested resource could not be found."
    }
  • {
      "code": "422",
      "error": "Unprocessable Entity",
      "reason": "The number of projects created by the authenticated user exceeds the designated limit. Projects created by user (101) > Projects per user limit (100).",
      "message": "The request was well-formed but was unable to be followed due to semantic errors.",
      "id": "WSCPA0001E"
    }
  • {
      "code": "429",
      "error": "Too Many Requests",
      "reason": "The number of requests has exceeded the rate limit. Requests: 451. Limit: 450. Category: write. Subject: zapp.brannigan@ibm.com (IBMid-55000353XF).",
      "message": "The client has sent too many requests in a given amount of time."
    }

Delete tag

Delete an existing tag in a project.

DELETE /v2/projects/{project_id}/tags/{tag_name}

Request

Path Parameters

  • The project ID.

    Possible values: Value must match regular expression ^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$

    Example: 46a19524-bfbf-4810-a1f0-b131f12bc773

  • The tag name.

    Possible values: 1 ≤ length ≤ 30, Value must match regular expression ^[^,]+$

    Example: development

  • curl -X 'DELETE' '{api_domain}/v2/projects/{project_id}/tags/development' -H 'Accept: */*' -H 'Authorization: Bearer {bearer_auth_token}'
    

Response

Status Code

  • No Content

  • Bad Request

  • Unauthorized

  • Forbidden

  • Not Found

  • Too Many Requests

Example responses
  • {
      "code": "400",
      "error": "Bad Request",
      "reason": "Entity body.name contains invalid characters.",
      "message": "The server cannot or will not process the request due to an apparent client error."
    }
  • {
      "code": "401",
      "error": "Unauthorized",
      "reason": "Unable to verify token via IAM Auth server.",
      "message": "Authentication failed."
    }
  • {
      "code": "403",
      "error": "Forbidden",
      "reason": "Permission Denied: Authenticated user is not a member of the project: zapp.brannigan@ibm.com.",
      "message": "The target operation is strictly forbidden due to schema constraints."
    }
  • {
      "code": "404",
      "error": "Not Found",
      "reason": "Failed to retrieve project: 47f11f98-1fc2-4478-ba38-d037094e761f.",
      "message": "The requested resource could not be found."
    }
  • {
      "code": "429",
      "error": "Too Many Requests",
      "reason": "The number of requests has exceeded the rate limit. Requests: 451. Limit: 450. Category: write. Subject: zapp.brannigan@ibm.com (IBMid-55000353XF).",
      "message": "The client has sent too many requests in a given amount of time."
    }

Get audit events settings

Get audit events settings.

GET /v2/projects/{project_id}/settings/audit_events

Request

Path Parameters

  • The project ID.

    Possible values: Value must match regular expression ^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$

    Example: 46a19524-bfbf-4810-a1f0-b131f12bc773

  • curl -X 'GET' '{api_domain}/v2/projects/{project_id}/settings/audit_events' -H 'Accept: application/json' -H 'Authorization: Bearer {bearer_auth_token}'
    

Response

The audit events settings group.

Status Code

  • OK

  • Bad Request

  • Unauthorized

  • Forbidden

  • Not Found

  • Too Many Requests

Example responses
  • {
      "enabled": false
    }
  • {
      "code": "400",
      "error": "Bad Request",
      "reason": "Entity body.name contains invalid characters.",
      "message": "The server cannot or will not process the request due to an apparent client error."
    }
  • {
      "code": "401",
      "error": "Unauthorized",
      "reason": "Unable to verify token via IAM Auth server.",
      "message": "Authentication failed."
    }
  • {
      "code": "403",
      "error": "Forbidden",
      "reason": "Permission Denied: Authenticated user is not a member of the project: zapp.brannigan@ibm.com.",
      "message": "The target operation is strictly forbidden due to schema constraints."
    }
  • {
      "code": "404",
      "error": "Not Found",
      "reason": "Failed to retrieve project: 47f11f98-1fc2-4478-ba38-d037094e761f.",
      "message": "The requested resource could not be found."
    }
  • {
      "code": "429",
      "error": "Too Many Requests",
      "reason": "The number of requests has exceeded the rate limit. Requests: 601. Limit: 600. Category: read. Subject: zapp.brannigan@ibm.com (IBMid-55000353XF).",
      "message": "The client has sent too many requests in a given amount of time."
    }

Update audit events settings

Update audit events settings.

PUT /v2/projects/{project_id}/settings/audit_events

Request

Path Parameters

  • The project ID.

    Possible values: Value must match regular expression ^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$

    Example: 46a19524-bfbf-4810-a1f0-b131f12bc773

The audit events settings group.

  • curl -X 'PUT' '{api_domain}/v2/projects/{project_id}/settings/audit_events' -H 'Accept: application/json' -H 'Authorization: Bearer {bearer_auth_token}' -H 'Content-Type: application/json' -d '{
    "enabled": false
    }'
    

Response

The audit events settings group.

Status Code

  • OK

  • Bad Request

  • Unauthorized

  • Forbidden

  • Not Found

  • Too Many Requests

Example responses
  • {
      "enabled": false
    }
  • {
      "code": "400",
      "error": "Bad Request",
      "reason": "Entity body.name contains invalid characters.",
      "message": "The server cannot or will not process the request due to an apparent client error."
    }
  • {
      "code": "401",
      "error": "Unauthorized",
      "reason": "Unable to verify token via IAM Auth server.",
      "message": "Authentication failed."
    }
  • {
      "code": "403",
      "error": "Forbidden",
      "reason": "Permission Denied: Authenticated user is not a member of the project: zapp.brannigan@ibm.com.",
      "message": "The target operation is strictly forbidden due to schema constraints."
    }
  • {
      "code": "404",
      "error": "Not Found",
      "reason": "Failed to retrieve project: 47f11f98-1fc2-4478-ba38-d037094e761f.",
      "message": "The requested resource could not be found."
    }
  • {
      "code": "429",
      "error": "Too Many Requests",
      "reason": "The number of requests has exceeded the rate limit. Requests: 451. Limit: 450. Category: write. Subject: zapp.brannigan@ibm.com (IBMid-55000353XF).",
      "message": "The client has sent too many requests in a given amount of time."
    }

Get access restrictions settings

Get access restrictions settings.

GET /v2/projects/{project_id}/settings/access_restrictions

Request

Path Parameters

  • The project ID.

    Possible values: Value must match regular expression ^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$

    Example: 46a19524-bfbf-4810-a1f0-b131f12bc773

  • curl -X 'GET' '{api_domain}/v2/projects/{project_id}/settings/access_restrictions' -H 'Accept: application/json' -H 'Authorization: Bearer {bearer_auth_token}'
    

Response

The access restrictions settings group.

Status Code

  • OK

  • Bad Request

  • Unauthorized

  • Forbidden

  • Not Found

  • Too Many Requests

Example responses
  • {
      "data": false,
      "data_permissions": {
        "editor": false
      },
      "reporting": {
        "authorized": false
      }
    }
  • {
      "code": "400",
      "error": "Bad Request",
      "reason": "Entity body.name contains invalid characters.",
      "message": "The server cannot or will not process the request due to an apparent client error."
    }
  • {
      "code": "401",
      "error": "Unauthorized",
      "reason": "Unable to verify token via IAM Auth server.",
      "message": "Authentication failed."
    }
  • {
      "code": "403",
      "error": "Forbidden",
      "reason": "Permission Denied: Authenticated user is not a member of the project: zapp.brannigan@ibm.com.",
      "message": "The target operation is strictly forbidden due to schema constraints."
    }
  • {
      "code": "404",
      "error": "Not Found",
      "reason": "Failed to retrieve project: 47f11f98-1fc2-4478-ba38-d037094e761f.",
      "message": "The requested resource could not be found."
    }
  • {
      "code": "429",
      "error": "Too Many Requests",
      "reason": "The number of requests has exceeded the rate limit. Requests: 601. Limit: 600. Category: read. Subject: zapp.brannigan@ibm.com (IBMid-55000353XF).",
      "message": "The client has sent too many requests in a given amount of time."
    }

Update access restrictions settings

Update access restrictions settings.

PUT /v2/projects/{project_id}/settings/access_restrictions

Request

Path Parameters

  • The project ID.

    Possible values: Value must match regular expression ^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$

    Example: 46a19524-bfbf-4810-a1f0-b131f12bc773

The access restrictions settings group.

  • curl -X 'PUT' '{api_domain}/v2/projects/{project_id}/settings/access_restrictions' -H 'Accept: application/json' -H 'Authorization: Bearer {bearer_auth_token}' -H 'Content-Type: application/json' -d '{
    "data": false,
    "data_permissions": {
    "editor": false
    },
    "reporting": {
    "authorized": false
    }
    }'
    

Response

The access restrictions settings group.

Status Code

  • OK

  • Bad Request

  • Unauthorized

  • Forbidden

  • Not Found

  • Too Many Requests

Example responses
  • {
      "data": false,
      "data_permissions": {
        "editor": false
      },
      "reporting": {
        "authorized": false
      }
    }
  • {
      "code": "400",
      "error": "Bad Request",
      "reason": "Entity body.name contains invalid characters.",
      "message": "The server cannot or will not process the request due to an apparent client error."
    }
  • {
      "code": "401",
      "error": "Unauthorized",
      "reason": "Unable to verify token via IAM Auth server.",
      "message": "Authentication failed."
    }
  • {
      "code": "403",
      "error": "Forbidden",
      "reason": "Permission Denied: Authenticated user is not a member of the project: zapp.brannigan@ibm.com.",
      "message": "The target operation is strictly forbidden due to schema constraints."
    }
  • {
      "code": "404",
      "error": "Not Found",
      "reason": "Failed to retrieve project: 47f11f98-1fc2-4478-ba38-d037094e761f.",
      "message": "The requested resource could not be found."
    }
  • {
      "code": "429",
      "error": "Too Many Requests",
      "reason": "The number of requests has exceeded the rate limit. Requests: 451. Limit: 450. Category: write. Subject: zapp.brannigan@ibm.com (IBMid-55000353XF).",
      "message": "The client has sent too many requests in a given amount of time."
    }

Get folders settings

Get folders settings.

GET /v2/projects/{project_id}/settings/folders

Request

Path Parameters

  • The project ID.

    Possible values: Value must match regular expression ^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$

    Example: 46a19524-bfbf-4810-a1f0-b131f12bc773

  • curl -X 'GET' '{api_domain}/v2/projects/{project_id}/settings/folders' -H 'Accept: application/json' -H 'Authorization: Bearer {bearer_auth_token}'
    

Response

The folders settings group.

Status Code

  • OK

  • Bad Request

  • Unauthorized

  • Forbidden

  • Not Found

  • Too Many Requests

Example responses
  • {
      "enabled": false
    }
  • {
      "code": "400",
      "error": "Bad Request",
      "reason": "Entity body.name contains invalid characters.",
      "message": "The server cannot or will not process the request due to an apparent client error."
    }
  • {
      "code": "401",
      "error": "Unauthorized",
      "reason": "Unable to verify token via IAM Auth server.",
      "message": "Authentication failed."
    }
  • {
      "code": "403",
      "error": "Forbidden",
      "reason": "Permission Denied: Authenticated user is not a member of the project: zapp.brannigan@ibm.com.",
      "message": "The target operation is strictly forbidden due to schema constraints."
    }
  • {
      "code": "404",
      "error": "Not Found",
      "reason": "Failed to retrieve project: 47f11f98-1fc2-4478-ba38-d037094e761f.",
      "message": "The requested resource could not be found."
    }
  • {
      "code": "429",
      "error": "Too Many Requests",
      "reason": "The number of requests has exceeded the rate limit. Requests: 601. Limit: 600. Category: read. Subject: zapp.brannigan@ibm.com (IBMid-55000353XF).",
      "message": "The client has sent too many requests in a given amount of time."
    }

Update folders settings

Update folders settings.

PUT /v2/projects/{project_id}/settings/folders

Request

Path Parameters

  • The project ID.

    Possible values: Value must match regular expression ^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$

    Example: 46a19524-bfbf-4810-a1f0-b131f12bc773

The folders settings group.

  • curl -X 'PUT' '{api_domain}/v2/projects/{project_id}/settings/folders' -H 'Accept: application/json' -H 'Authorization: Bearer {bearer_auth_token}' -H 'Content-Type: application/json' -d '{
    "enabled": false
    }'
    

Response

The folders settings group.

Status Code

  • OK

  • Bad Request

  • Unauthorized

  • Forbidden

  • Not Found

  • Too Many Requests

Example responses
  • {
      "enabled": false
    }
  • {
      "code": "400",
      "error": "Bad Request",
      "reason": "Entity body.name contains invalid characters.",
      "message": "The server cannot or will not process the request due to an apparent client error."
    }
  • {
      "code": "401",
      "error": "Unauthorized",
      "reason": "Unable to verify token via IAM Auth server.",
      "message": "Authentication failed."
    }
  • {
      "code": "403",
      "error": "Forbidden",
      "reason": "Permission Denied: Authenticated user is not a member of the project: zapp.brannigan@ibm.com.",
      "message": "The target operation is strictly forbidden due to schema constraints."
    }
  • {
      "code": "404",
      "error": "Not Found",
      "reason": "Failed to retrieve project: 47f11f98-1fc2-4478-ba38-d037094e761f.",
      "message": "The requested resource could not be found."
    }
  • {
      "code": "429",
      "error": "Too Many Requests",
      "reason": "The number of requests has exceeded the rate limit. Requests: 451. Limit: 450. Category: write. Subject: zapp.brannigan@ibm.com (IBMid-55000353XF).",
      "message": "The client has sent too many requests in a given amount of time."
    }

Get JupyterLab integration

Get JupyterLab integration.

GET /v2/projects/{project_id}/integrations/jupyterlab

Request

Path Parameters

  • The project ID.

    Possible values: Value must match regular expression ^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$

    Example: 46a19524-bfbf-4810-a1f0-b131f12bc773

  • curl -X 'GET' '{api_domain}/v2/projects/{project_id}/integrations/jupyterlab' -H 'Accept: application/json' -H 'Authorization: Bearer {bearer_auth_token}'
    

Response

The JupyterLab feature integration.

Status Code

  • OK

  • Bad Request

  • Unauthorized

  • Forbidden

  • Not Found

  • Too Many Requests

Example responses
  • {
      "guid": "{integration_id}"
    }
  • {
      "code": "400",
      "error": "Bad Request",
      "reason": "Entity body.name contains invalid characters.",
      "message": "The server cannot or will not process the request due to an apparent client error."
    }
  • {
      "code": "401",
      "error": "Unauthorized",
      "reason": "Unable to verify token via IAM Auth server.",
      "message": "Authentication failed."
    }
  • {
      "code": "403",
      "error": "Forbidden",
      "reason": "Permission Denied: Authenticated user is not a member of the project: zapp.brannigan@ibm.com.",
      "message": "The target operation is strictly forbidden due to schema constraints."
    }
  • {
      "code": "404",
      "error": "Not Found",
      "reason": "Failed to retrieve project: 47f11f98-1fc2-4478-ba38-d037094e761f.",
      "message": "The requested resource could not be found."
    }
  • {
      "code": "429",
      "error": "Too Many Requests",
      "reason": "The number of requests has exceeded the rate limit. Requests: 601. Limit: 600. Category: read. Subject: zapp.brannigan@ibm.com (IBMid-55000353XF).",
      "message": "The client has sent too many requests in a given amount of time."
    }

Update JupyterLab integration

Update JupyterLab integration.

PUT /v2/projects/{project_id}/integrations/jupyterlab

Request

Path Parameters

  • The project ID.

    Possible values: Value must match regular expression ^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$

    Example: 46a19524-bfbf-4810-a1f0-b131f12bc773

The JupyterLab feature integration.

  • curl -X 'PUT' '{api_domain}/v2/projects/{project_id}/integrations/jupyterlab' -H 'Accept: application/json' -H 'Authorization: Bearer {bearer_auth_token}' -H 'Content-Type: application/json' -d '{
    "guid": "{integration_id}"
    }'
    

Response

The JupyterLab feature integration.

Status Code

  • OK

  • Bad Request

  • Unauthorized

  • Forbidden

  • Not Found

  • Too Many Requests

Example responses
  • {
      "guid": "{integration_id}"
    }
  • {
      "code": "400",
      "error": "Bad Request",
      "reason": "Entity body.name contains invalid characters.",
      "message": "The server cannot or will not process the request due to an apparent client error."
    }
  • {
      "code": "401",
      "error": "Unauthorized",
      "reason": "Unable to verify token via IAM Auth server.",
      "message": "Authentication failed."
    }
  • {
      "code": "403",
      "error": "Forbidden",
      "reason": "Permission Denied: Authenticated user is not a member of the project: zapp.brannigan@ibm.com.",
      "message": "The target operation is strictly forbidden due to schema constraints."
    }
  • {
      "code": "404",
      "error": "Not Found",
      "reason": "Failed to retrieve project: 47f11f98-1fc2-4478-ba38-d037094e761f.",
      "message": "The requested resource could not be found."
    }
  • {
      "code": "429",
      "error": "Too Many Requests",
      "reason": "The number of requests has exceeded the rate limit. Requests: 451. Limit: 450. Category: write. Subject: zapp.brannigan@ibm.com (IBMid-55000353XF).",
      "message": "The client has sent too many requests in a given amount of time."
    }

Delete JupyterLab integration

Delete JupyterLab integration.

DELETE /v2/projects/{project_id}/integrations/jupyterlab

Request

Path Parameters

  • The project ID.

    Possible values: Value must match regular expression ^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$

    Example: 46a19524-bfbf-4810-a1f0-b131f12bc773

  • curl -X 'DELETE' '{api_domain}/v2/projects/{project_id}/integrations/jupyterlab' -H 'Accept: */*' -H 'Authorization: Bearer {bearer_auth_token}'
    

Response

Status Code

  • No Content

  • Bad Request

  • Unauthorized

  • Forbidden

  • Not Found

  • Too Many Requests

Example responses
  • {
      "code": "400",
      "error": "Bad Request",
      "reason": "Entity body.name contains invalid characters.",
      "message": "The server cannot or will not process the request due to an apparent client error."
    }
  • {
      "code": "401",
      "error": "Unauthorized",
      "reason": "Unable to verify token via IAM Auth server.",
      "message": "Authentication failed."
    }
  • {
      "code": "403",
      "error": "Forbidden",
      "reason": "Permission Denied: Authenticated user is not a member of the project: zapp.brannigan@ibm.com.",
      "message": "The target operation is strictly forbidden due to schema constraints."
    }
  • {
      "code": "404",
      "error": "Not Found",
      "reason": "Failed to retrieve project: 47f11f98-1fc2-4478-ba38-d037094e761f.",
      "message": "The requested resource could not be found."
    }
  • {
      "code": "429",
      "error": "Too Many Requests",
      "reason": "The number of requests has exceeded the rate limit. Requests: 451. Limit: 450. Category: write. Subject: zapp.brannigan@ibm.com (IBMid-55000353XF).",
      "message": "The client has sent too many requests in a given amount of time."
    }

List tokens

List tenant access tokens issued (created) for the project (tenant).

GET /v2/projects/{project_id}/tokens

Request

Path Parameters

  • The project ID.

    Possible values: Value must match regular expression ^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$

    Example: 46a19524-bfbf-4810-a1f0-b131f12bc773

  • curl -X 'GET' '{api_domain}/v2/projects/{project_id}/tokens' -H 'Accept: application/json' -H 'Authorization: Bearer {bearer_auth_token}'
    

Response

A list of project tenant access tokens.

Status Code

  • OK

  • Bad Request

  • Unauthorized

  • Forbidden

  • Not Found

  • Too Many Requests

Example responses
  • {
      "tokens": [
        {
          "guid": "{token_id}",
          "name": "Tenant Access Token Name",
          "scopes": [
            {
              "audience": "project",
              "guid": "{project_id}",
              "role": "viewer"
            }
          ],
          "creator": {
            "username": "zapp.brannigan@ibm.com",
            "id": "IBMid-55000353XF"
          },
          "created_at": "2024-11-05T18:31:07.091Z",
          "last_used_at": "2024-11-05T18:31:07.091Z",
          "schema_version": "2.0.0",
          "token": "{tenant_access_token}"
        }
      ]
    }
  • {
      "code": "400",
      "error": "Bad Request",
      "reason": "Entity body.name contains invalid characters.",
      "message": "The server cannot or will not process the request due to an apparent client error."
    }
  • {
      "code": "401",
      "error": "Unauthorized",
      "reason": "Unable to verify token via IAM Auth server.",
      "message": "Authentication failed."
    }
  • {
      "code": "403",
      "error": "Forbidden",
      "reason": "Permission Denied: Authenticated user is not a member of the project: zapp.brannigan@ibm.com.",
      "message": "The target operation is strictly forbidden due to schema constraints."
    }
  • {
      "code": "404",
      "error": "Not Found",
      "reason": "Failed to retrieve project: 47f11f98-1fc2-4478-ba38-d037094e761f.",
      "message": "The requested resource could not be found."
    }
  • {
      "code": "429",
      "error": "Too Many Requests",
      "reason": "The number of requests has exceeded the rate limit. Requests: 601. Limit: 600. Category: read. Subject: zapp.brannigan@ibm.com (IBMid-55000353XF).",
      "message": "The client has sent too many requests in a given amount of time."
    }

Create token

Issues (creates) a new tenant access token for the project (tenant).

POST /v2/projects/{project_id}/tokens

Request

Path Parameters

  • The project ID.

    Possible values: Value must match regular expression ^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$

    Example: 46a19524-bfbf-4810-a1f0-b131f12bc773

The request body for creating a new project tenant access token.

  • curl -X 'POST' '{api_domain}/v2/projects/{project_id}/tokens' -H 'Accept: application/json' -H 'Authorization: Bearer {bearer_auth_token}' -H 'Content-Type: application/json' -d '{
    "name": "Tenant Access Token Name",
    "scopes": [
    {
    "audience": "project",
    "guid": "{project_id}",
    "role": "viewer"
    }
    ]
    }'
    

Response

A project tenant access token.

Status Code

  • Created

  • Bad Request

  • Unauthorized

  • Forbidden

  • Not Found

  • Too Many Requests

Example responses
  • {
      "guid": "{token_id}",
      "name": "Tenant Access Token Name",
      "scopes": [
        {
          "audience": "project",
          "guid": "{project_id}",
          "role": "viewer"
        }
      ],
      "creator": {
        "username": "zapp.brannigan@ibm.com",
        "id": "IBMid-55000353XF"
      },
      "created_at": "2025-07-16T12:54:12.121Z",
      "last_used_at": "2025-07-16T12:54:12.121Z",
      "schema_version": "2.0.0",
      "token": "{tenant_access_token}"
    }
  • {
      "code": "400",
      "error": "Bad Request",
      "reason": "Entity body.name contains invalid characters.",
      "message": "The server cannot or will not process the request due to an apparent client error."
    }
  • {
      "code": "401",
      "error": "Unauthorized",
      "reason": "Unable to verify token via IAM Auth server.",
      "message": "Authentication failed."
    }
  • {
      "code": "403",
      "error": "Forbidden",
      "reason": "Permission Denied: Authenticated user is not a member of the project: zapp.brannigan@ibm.com.",
      "message": "The target operation is strictly forbidden due to schema constraints."
    }
  • {
      "code": "404",
      "error": "Not Found",
      "reason": "Failed to retrieve project: 47f11f98-1fc2-4478-ba38-d037094e761f.",
      "message": "The requested resource could not be found."
    }
  • {
      "code": "429",
      "error": "Too Many Requests",
      "reason": "The number of requests has exceeded the rate limit. Requests: 451. Limit: 450. Category: write. Subject: zapp.brannigan@ibm.com (IBMid-55000353XF).",
      "message": "The client has sent too many requests in a given amount of time."
    }

Revoke all tokens

Revokes (deletes) all tenant access tokens previously issued (created) for the project (tenant).

DELETE /v2/projects/{project_id}/tokens

Request

Path Parameters

  • The project ID.

    Possible values: Value must match regular expression ^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$

    Example: 46a19524-bfbf-4810-a1f0-b131f12bc773

  • curl -X 'DELETE' '{api_domain}/v2/projects/{project_id}/tokens' -H 'Accept: */*' -H 'Authorization: Bearer {bearer_auth_token}'
    

Response

Status Code

  • No Content

  • Bad Request

  • Unauthorized

  • Forbidden

  • Not Found

  • Too Many Requests

Example responses
  • {
      "code": "400",
      "error": "Bad Request",
      "reason": "Entity body.name contains invalid characters.",
      "message": "The server cannot or will not process the request due to an apparent client error."
    }
  • {
      "code": "401",
      "error": "Unauthorized",
      "reason": "Unable to verify token via IAM Auth server.",
      "message": "Authentication failed."
    }
  • {
      "code": "403",
      "error": "Forbidden",
      "reason": "Permission Denied: Authenticated user is not a member of the project: zapp.brannigan@ibm.com.",
      "message": "The target operation is strictly forbidden due to schema constraints."
    }
  • {
      "code": "404",
      "error": "Not Found",
      "reason": "Failed to retrieve project: 47f11f98-1fc2-4478-ba38-d037094e761f.",
      "message": "The requested resource could not be found."
    }
  • {
      "code": "429",
      "error": "Too Many Requests",
      "reason": "The number of requests has exceeded the rate limit. Requests: 451. Limit: 450. Category: write. Subject: zapp.brannigan@ibm.com (IBMid-55000353XF).",
      "message": "The client has sent too many requests in a given amount of time."
    }

Get token

Returns the metadata for a tenant access token specified by ID.

GET /v2/projects/{project_id}/tokens/{token_id}

Request

Path Parameters

  • The project ID.

    Possible values: Value must match regular expression ^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$

    Example: 46a19524-bfbf-4810-a1f0-b131f12bc773

  • The token ID.

    Possible values: Value must match regular expression ^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$

    Example: 7ce920a2-9086-4d78-9166-10ee6fdda581

  • curl -X 'GET' '{api_domain}/v2/projects/{project_id}/tokens/{token_id}' -H 'Accept: application/json' -H 'Authorization: Bearer {bearer_auth_token}'
    

Response

A project tenant access token.

Status Code

  • OK

  • Bad Request

  • Unauthorized

  • Forbidden

  • Not Found

  • Too Many Requests

Example responses
  • {
      "guid": "{token_id}",
      "name": "Tenant Access Token Name",
      "scopes": [
        {
          "audience": "project",
          "guid": "{project_id}",
          "role": "viewer"
        }
      ],
      "creator": {
        "username": "zapp.brannigan@ibm.com",
        "id": "IBMid-55000353XF"
      },
      "created_at": "2025-07-16T12:54:12.121Z",
      "last_used_at": "2025-07-16T12:54:12.121Z",
      "schema_version": "2.0.0",
      "token": "{tenant_access_token}"
    }
  • {
      "code": "400",
      "error": "Bad Request",
      "reason": "Entity body.name contains invalid characters.",
      "message": "The server cannot or will not process the request due to an apparent client error."
    }
  • {
      "code": "401",
      "error": "Unauthorized",
      "reason": "Unable to verify token via IAM Auth server.",
      "message": "Authentication failed."
    }
  • {
      "code": "403",
      "error": "Forbidden",
      "reason": "Permission Denied: Authenticated user is not a member of the project: zapp.brannigan@ibm.com.",
      "message": "The target operation is strictly forbidden due to schema constraints."
    }
  • {
      "code": "404",
      "error": "Not Found",
      "reason": "Failed to retrieve project: 47f11f98-1fc2-4478-ba38-d037094e761f.",
      "message": "The requested resource could not be found."
    }
  • {
      "code": "429",
      "error": "Too Many Requests",
      "reason": "The number of requests has exceeded the rate limit. Requests: 451. Limit: 450. Category: write. Subject: zapp.brannigan@ibm.com (IBMid-55000353XF).",
      "message": "The client has sent too many requests in a given amount of time."
    }

Revoke token

Revokes (deletes) a single tenant access token previously issued (created) for the project (tenant).

DELETE /v2/projects/{project_id}/tokens/{token_id}

Request

Path Parameters

  • The project ID.

    Possible values: Value must match regular expression ^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$

    Example: 46a19524-bfbf-4810-a1f0-b131f12bc773

  • The token ID.

    Possible values: Value must match regular expression ^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$

    Example: 7ce920a2-9086-4d78-9166-10ee6fdda581

  • curl -X 'DELETE' '{api_domain}/v2/projects/{project_id}/tokens/{token_id}' -H 'Accept: */*' -H 'Authorization: Bearer {bearer_auth_token}'
    

Response

Status Code

  • No Content

  • Bad Request

  • Unauthorized

  • Forbidden

  • Not Found

  • Too Many Requests

Example responses
  • {
      "code": "400",
      "error": "Bad Request",
      "reason": "Entity body.name contains invalid characters.",
      "message": "The server cannot or will not process the request due to an apparent client error."
    }
  • {
      "code": "401",
      "error": "Unauthorized",
      "reason": "Unable to verify token via IAM Auth server.",
      "message": "Authentication failed."
    }
  • {
      "code": "403",
      "error": "Forbidden",
      "reason": "Permission Denied: Authenticated user is not a member of the project: zapp.brannigan@ibm.com.",
      "message": "The target operation is strictly forbidden due to schema constraints."
    }
  • {
      "code": "404",
      "error": "Not Found",
      "reason": "Failed to retrieve project: 47f11f98-1fc2-4478-ba38-d037094e761f.",
      "message": "The requested resource could not be found."
    }
  • {
      "code": "429",
      "error": "Too Many Requests",
      "reason": "The number of requests has exceeded the rate limit. Requests: 451. Limit: 450. Category: write. Subject: zapp.brannigan@ibm.com (IBMid-55000353XF).",
      "message": "The client has sent too many requests in a given amount of time."
    }

Introspect token

Validates a tenant access token specified via the Authorization HTTP header.

GET /v2/projects/tokens/introspect

Request

No Request Parameters

This method does not accept any request parameters.

  • curl -X 'GET' '{api_domain}/v2/projects/{project_id}/tokens/introspect' -H 'Accept: application/json' -H 'Authorization: Bearer {tenant_access_token}'
    

Response

A project tenant access token.

Status Code

  • OK

  • Bad Request

  • Unauthorized

  • Too Many Requests

Example responses
  • {
      "guid": "{token_id}",
      "name": "Tenant Access Token Name",
      "scopes": [
        {
          "audience": "project",
          "guid": "{project_id}",
          "role": "viewer"
        }
      ],
      "creator": {
        "username": "zapp.brannigan@ibm.com",
        "id": "IBMid-55000353XF"
      },
      "created_at": "2025-07-16T12:54:12.121Z",
      "last_used_at": "2025-07-16T12:54:12.121Z",
      "schema_version": "2.0.0",
      "token": "{tenant_access_token}"
    }
  • {
      "code": "400",
      "error": "Bad Request",
      "reason": "Entity body.name contains invalid characters.",
      "message": "The server cannot or will not process the request due to an apparent client error."
    }
  • {
      "code": "401",
      "error": "Unauthorized",
      "reason": "Unable to verify token via IAM Auth server.",
      "message": "Authentication failed."
    }
  • {
      "code": "429",
      "error": "Too Many Requests",
      "reason": "The number of requests has exceeded the rate limit. Requests: 601. Limit: 600. Category: read. Subject: zapp.brannigan@ibm.com (IBMid-55000353XF).",
      "message": "The client has sent too many requests in a given amount of time."
    }

Create project as a transaction

Creates a new project with the provided parameters, including all the storage and credentials in a single transaction. This endpoint will create a new COS bucket using generated unique name, all credentials, asset container and call all the required atomic APIs to fully configure a new project. Attempts to use the duplicate project names will result in an error. NOTE: when creating projects programmatically, always use this endpoint, not /v2/projects.


This endpoint can also be used to create a project from an exported watsonx.ai Studio .zip file. In this case, a new transaction is initiated to create assets under the project. A Transaction ID along with a URL is returned as a response of this API. As this transaction can take time, you can view the current status of the transaction using the returned URL.
NOTE: This feature is only available in the private cloud.

POST /transactional/v2/projects

Request

Custom Headers

  • Allowable values: [application/json,multipart/form-data]

Query Parameters

  • If enabled, the transaction fails if the project name is not unique.

    Default: true

Project metadata required to create a project.

  • curl -X 'POST'   '{api_domain}/v2/projects'   -H 'Accept: application/json'   -H 'Authorization: Bearer {bearer_auth_token}'   -H 'Content-Type: application/json'   -d '{
        "name": "Project Name",
        "description": "A project description.",
        "type": "cpd",
        "generator": "Transactional-API_Swagger_Docs",
        "storage": {
          "type": "assetfiles"
        },
        "catalog": {
          "public": false
        },
        "enforce_members": true,
        "settings": {
          "access_restrictions": {
            "data": false,
            "reporting": {
              "authorized": false
            }
          },
          "audit_events": {
            "enabled": false
          }
        }
      }'
    

Response

Description of create transactional project API response body.

Status Code

  • Created

  • Accepted

  • Bad Request

  • Unauthorized

  • Forbidden

  • Not Found

  • Internal Server Error

Example responses
  • {
      "location": "/v2/projects/b2549f22-7565-4193-9434-9b77e15757cc"
    }
  • {
      "location": "/v2/projects/b2549f22-7565-4193-9434-9b77e15757cc",
      "transaction_detail": {
        "id": "dcff12a9-3f9e-4d10-b4c4-f121f681d81b",
        "links": {
          "self": "/transactional/v2/projects/b2549f22-7565-4193-9434-9b77e15757cc/transactions/dcff12a9-3f9e-4d10-b4c4-f121f681d81b"
        }
      }
    }
  • {
      "code": "400",
      "error": "Bad Request",
      "reason": "Error fetching projects. Status code: 400",
      "message": "The server cannot or will not process the request due to an apparent client error (e.g. malformed request syntax).",
      "description": "[400] Bad Request: Error fetching projects. Status code: 400. The server cannot or will not process the request due to an apparent client error (e.g. malformed request syntax)."
    }
  • {
      "code": "401",
      "error": "Unauthorized",
      "reason": "Unable to verify token via IAM Auth server.",
      "message": "Authentication failed.",
      "description": "[401] Unauthorized: Authentication failed."
    }
  • {
      "code": "403",
      "error": "Forbidden",
      "reason": "Invalid bearer token: Access token is invalid.",
      "message": "The target operation is strictly forbidden due to schema constraints.",
      "description": "[403] Forbidden: Invalid bearer token: Access token is invalid. The target operation is strictly forbidden due to schema constraints."
    }
  • {
      "code": "404",
      "error": "Not Found",
      "reason": "Transaction 09f5e19b-5a30-428d-95f4-ff93590f3c071 is not associated with project 522d3ffe-0787-4bee-a616-dc12a19c9a76",
      "message": "Resource requested by the client was not found.",
      "description": "[404] Not Found: Transaction 09f5e19b-5a30-428d-95f4-ff93590f3c071 is not associated with project 522d3ffe-0787-4bee-a616-dc12a19c9a76. Resource requested by the client was not found."
    }
  • {
      "code": "500",
      "error": "Internal Server Error",
      "reason": "Error creating project: 522d3ffe-0787-4bee-a616-dc12a19c9a76",
      "message": "The API encountered an unexpected condition which prevented it from fulfilling the request.",
      "description": "[500] Internal Server Error: Error creating project: 522d3ffe-0787-4bee-a616-dc12a19c9a76."
    }

Delete project as a transaction

Deletes a project with a given ID, deletes COS bucket and all the files in it, all credentials and asset container in the order reverse from the project creation transaction. When deleting projects programmatically, always use this endpoint, not /v2/projects/{project_id}.

DELETE /transactional/v2/projects/{project_id}

Request

Path Parameters

  • The ID of the project to be deleted.

    Example: 6ee2c24f-d0a9-4e30-b0fc-5ae36a66c1a8

  • curl -X 'DELETE'   '{api_domain}/transactional/v2/projects/{project_id}'   -H 'Accept: */*'   -H 'Authorization: Bearer {bearer_auth_token}'
    

Response

Status Code

  • No Content

  • Bad Request

  • Unauthorized

  • Forbidden

  • Not Found

  • Internal Server Error

Example responses
  • {
      "code": "400",
      "error": "Bad Request",
      "reason": "Error fetching projects. Status code: 400",
      "message": "The server cannot or will not process the request due to an apparent client error (e.g. malformed request syntax).",
      "description": "[400] Bad Request: Error fetching projects. Status code: 400. The server cannot or will not process the request due to an apparent client error (e.g. malformed request syntax)."
    }
  • {
      "code": "401",
      "error": "Unauthorized",
      "reason": "Unable to verify token via IAM Auth server.",
      "message": "Authentication failed.",
      "description": "[401] Unauthorized: Authentication failed."
    }
  • {
      "code": "403",
      "error": "Forbidden",
      "reason": "Invalid bearer token: Access token is invalid.",
      "message": "The target operation is strictly forbidden due to schema constraints.",
      "description": "[403] Forbidden: Invalid bearer token: Access token is invalid. The target operation is strictly forbidden due to schema constraints."
    }
  • {
      "code": "404",
      "error": "Not Found",
      "reason": "Transaction 09f5e19b-5a30-428d-95f4-ff93590f3c071 is not associated with project 522d3ffe-0787-4bee-a616-dc12a19c9a76",
      "message": "Resource requested by the client was not found.",
      "description": "[404] Not Found: Transaction 09f5e19b-5a30-428d-95f4-ff93590f3c071 is not associated with project 522d3ffe-0787-4bee-a616-dc12a19c9a76. Resource requested by the client was not found."
    }
  • {
      "code": "500",
      "error": "Internal Server Error",
      "reason": "Error creating project: 522d3ffe-0787-4bee-a616-dc12a19c9a76",
      "message": "The API encountered an unexpected condition which prevented it from fulfilling the request.",
      "description": "[500] Internal Server Error: Error creating project: 522d3ffe-0787-4bee-a616-dc12a19c9a76."
    }

Get status of import transaction

Status of import transaction created using create project as a transaction API

GET /transactional/v2/projects/{project_id}/transactions/{transaction_id}

Request

Path Parameters

  • The ID of the project on which transaction was created.

    Example: 6ee2c24f-d0a9-4e30-b0fc-5ae36a66c1a8

  • The transaction ID provided by create project as a transaction endpoint.

    Example: dcff12a9-3f9e-4d10-b4c4-f121f681d81b

  • curl -X 'GET'   '{api_domain}/transactional/v2/projects/{project_id}/transactions/{transaction_id}'   -H 'Accept: application/json'   -H 'Authorization: Bearer {bearer_auth_token}'
    

Response

Description of import transactional status API response.

Status Code

  • OK

  • Bad Request

  • Unauthorized

  • Forbidden

  • Not Found

  • Internal Server Error

Example responses
  • {
      "code": "400",
      "error": "Bad Request",
      "reason": "Error fetching projects. Status code: 400",
      "message": "The server cannot or will not process the request due to an apparent client error (e.g. malformed request syntax).",
      "description": "[400] Bad Request: Error fetching projects. Status code: 400. The server cannot or will not process the request due to an apparent client error (e.g. malformed request syntax)."
    }
  • {
      "code": "401",
      "error": "Unauthorized",
      "reason": "Unable to verify token via IAM Auth server.",
      "message": "Authentication failed.",
      "description": "[401] Unauthorized: Authentication failed."
    }
  • {
      "code": "403",
      "error": "Forbidden",
      "reason": "Invalid bearer token: Access token is invalid.",
      "message": "The target operation is strictly forbidden due to schema constraints.",
      "description": "[403] Forbidden: Invalid bearer token: Access token is invalid. The target operation is strictly forbidden due to schema constraints."
    }
  • {
      "code": "404",
      "error": "Not Found",
      "reason": "Transaction 09f5e19b-5a30-428d-95f4-ff93590f3c071 is not associated with project 522d3ffe-0787-4bee-a616-dc12a19c9a76",
      "message": "Resource requested by the client was not found.",
      "description": "[404] Not Found: Transaction 09f5e19b-5a30-428d-95f4-ff93590f3c071 is not associated with project 522d3ffe-0787-4bee-a616-dc12a19c9a76. Resource requested by the client was not found."
    }
  • {
      "code": "500",
      "error": "Internal Server Error",
      "reason": "Error creating project: 522d3ffe-0787-4bee-a616-dc12a19c9a76",
      "message": "The API encountered an unexpected condition which prevented it from fulfilling the request.",
      "description": "[500] Internal Server Error: Error creating project: 522d3ffe-0787-4bee-a616-dc12a19c9a76."
    }

Create a new space

Creates a new space to scope other assets. Authorized user must have the following roles (see https://cloud.ibm.com/docs/cloud-object-storage?topic=cloud-object-storage-iams)

  • Platform management role: Administrator
  • Service access role: Manager

On Public Cloud user is required to provide Cloud Object Storage instance details in the 'storage' property. On private CPD installations the default storage is used instead.

POST /v2/spaces

Request

Input payload for the space.

  • curl '{host}/v2/spaces' --header 'Authorization: Bearer {token}' --header 'Content-Type: application/json'  --data '{
        "name":  "test"
    }'

Response

Status Code

  • Accepted

  • Bad request

  • Unauthorized

  • Forbidden, an authentication error including trying to access a forbidden space.

  • Resource not found

  • Internal Server Error

Example responses
  • {
      "entity": {
        "compute": [
          {
            "crn": "crn:v1:cpd:private:pm-20:private:a/cpduser:99999999-9999-9999-9999-999999999999::",
            "guid": "99999999-9999-9999-9999-999999999999",
            "name": "Watson Machine Learning",
            "type": "machine_learning"
          }
        ],
        "members": [
          {
            "id": "1000331001",
            "role": "admin",
            "state": "active",
            "type": "user"
          }
        ],
        "name": "test",
        "scope": {
          "bss_account_id": "cpdaccount"
        },
        "settings": {
          "folders": {
            "enabled": false
          }
        },
        "stage": {
          "production": false
        },
        "status": {
          "state": "preparing"
        },
        "type": "cpd"
      },
      "metadata": {
        "created_at": "2025-05-28T12:18:06.179Z",
        "creator_id": "1000331001",
        "id": "2531bf6d-d63c-4e33-a141-5142d52d9d50",
        "url": "/v2/spaces/2531bf6d-d63c-4e33-a141-5142d52d9d50"
      }
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }

Retrieve the spaces

Retrieves the space list.

GET /v2/spaces

Request

Query Parameters

  • Token representing first resource.

  • The number of resources returned. Default value is 100. Max value is 200.

  • Include details about total number of resources. This flag is not supported on CPD 3.0.1.

  • Comma-separated list of ids to be returned. This flag is not supported on CPD 3.0.1.

  • A list of comma-separated, user-defined tags to use to filter the query results.

  • A list of comma-separated space sections to include in the query results. Example: '?include=members'.

    Available fields:

    • members (returns up to 100 members)
    • nothing (does not return space entity and metadata)
  • Filters the result list to only include spaces where the user with a matching user id is a member.

  • Must be used in conjunction with the member query parameter. Filters the result set to include only spaces where the specified member has one of the roles specified.

    Values:

    • admin
    • editor
    • viewer
  • Filtering by bss_account_id is allowed only for accredited services.

  • Filters the result list to only include space with specified name.

    Example: name=QA

  • Filters the result list to only include spaces which name contains specified case-insensitive substring

    Example: sub_name=substring

  • Filters the result list to only include spaces with specified compute.crn.

    Example: compute.crn=crn:v1:staging:public:pm-20-devops:us-south:a/eb484b0080c04ee0b0889afd679273bd:a8f87602-b71a-4085-95d2-3027873352b3::

  • Filters the result list to only include space with specified type

    Example: type=cpd

  • curl '{host}/v2/spaces' --header 'Authorization: Bearer {token}'

Response

Information for paging when queerying resources.

Status Code

  • OK.

  • Bad request

  • Unauthorized

  • Forbidden, an authentication error including trying to access a forbidden space.

  • Resource not found

  • Internal Server Error

Example responses
  • {
      "first": {
        "href": "https://host/v2/spaces"
      },
      "limit": 100,
      "resources": [
        {
          "entity": {
            "compute": [
              {
                "crn": "crn:v1:cpd:private:pm-20:private:a/cpduser:99999999-9999-9999-9999-999999999999::",
                "guid": "99999999-9999-9999-9999-999999999999",
                "name": "Watson Machine Learning",
                "type": "machine_learning"
              }
            ],
            "name": "test",
            "scope": {
              "bss_account_id": "cpdaccount"
            },
            "settings": {
              "folders": {
                "enabled": false
              }
            },
            "stage": {
              "production": false
            },
            "status": {
              "state": "active"
            },
            "type": "cpd"
          },
          "metadata": {
            "created_at": "2025-05-28T12:18:06.179Z",
            "creator_id": "1000331001",
            "id": "2531bf6d-d63c-4e33-a141-5142d52d9d50",
            "updated_at": "2025-05-28T12:18:06.925Z",
            "url": "/v2/spaces/2531bf6d-d63c-4e33-a141-5142d52d9d50"
          }
        }
      ]
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }

Retrieve the space

Retrieves the space with the specified identifier.

GET /v2/spaces/{space_id}

Request

Path Parameters

  • The space identification.

Query Parameters

  • A list of comma-separated space sections to include in the query results. Example: '?include=members'.

    Available fields:

    • members (returns up to 100 members)
    • credentials (returns S3 bucket temporary credentials)
    • nothing (does not return space entity and metadata)
  • curl '{host}/v2/spaces/{space_id}' --header 'Authorization: Bearer {token}'

Response

Status Code

  • OK.

  • Bad request

  • Unauthorized

  • Forbidden, an authentication error including trying to access a forbidden space.

  • Resource not found

  • Internal Server Error

Example responses
  • {
      "entity": {
        "compute": [
          {
            "crn": "crn:v1:cpd:private:pm-20:private:a/cpduser:99999999-9999-9999-9999-999999999999::",
            "guid": "99999999-9999-9999-9999-999999999999",
            "name": "Watson Machine Learning",
            "type": "machine_learning"
          }
        ],
        "name": "test",
        "scope": {
          "bss_account_id": "cpdaccount"
        },
        "settings": {
          "folders": {
            "enabled": false
          }
        },
        "stage": {
          "production": false
        },
        "status": {
          "state": "active"
        },
        "type": "cpd"
      },
      "metadata": {
        "created_at": "2025-05-28T12:18:06.179Z",
        "creator_id": "1000331001",
        "id": "2531bf6d-d63c-4e33-a141-5142d52d9d50",
        "updated_at": "2025-05-28T12:18:06.925Z",
        "url": "/v2/spaces/2531bf6d-d63c-4e33-a141-5142d52d9d50"
      }
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }

Delete the space

Deletes the space with the specified identifier.

DELETE /v2/spaces/{space_id}

Request

Path Parameters

  • The space identification.

  • curl --request DELETE '{host}/v2/spaces/{space_id}' --header 'Authorization: Bearer {token}'

Response

Status Code

  • Accepted.

  • Bad request

  • Unauthorized

  • Forbidden, an authentication error including trying to access a forbidden space.

  • Resource not found

  • Internal Server Error

Example responses
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }

Update the space

Partially update this space. Allowed paths are:

  • /name
  • /description
  • /compute
  • /stage/name
  • /type
  • /settings/folders/enabled
  • /settings/access_restrictions/reporting/authorized
PATCH /v2/spaces/{space_id}

Request

Path Parameters

  • The space identification.

Input payload for the space.

Examples:
{
  "entity": {
    "compute": [
      {
        "crn": "crn:v1:cpd:private:pm-20:private:a/cpduser:99999999-9999-9999-9999-999999999999::",
        "guid": "99999999-9999-9999-9999-999999999999",
        "name": "Watson Machine Learning",
        "type": "machine_learning"
      }
    ],
    "description": "space description",
    "members": [
      {
        "id": "1000331001",
        "role": "admin",
        "state": "active",
        "type": "user"
      }
    ],
    "name": "test",
    "scope": {
      "bss_account_id": "cpdaccount"
    },
    "settings": {
      "folders": {
        "enabled": false
      }
    },
    "stage": {
      "production": false
    },
    "status": {
      "state": "active"
    },
    "type": "cpd"
  },
  "metadata": {
    "created_at": "2025-05-28T12:18:06.179Z",
    "creator_id": "1000331001",
    "id": "2531bf6d-d63c-4e33-a141-5142d52d9d50",
    "updated_at": "2025-05-28T14:37:31.479Z",
    "url": "/v2/spaces/2531bf6d-d63c-4e33-a141-5142d52d9d50"
  }
}
  • curl --request PATCH '{host}/v2/spaces/{space_id}' --header 'Authorization: Bearer {token}' --header 'Content-Type: application/json' --data '[{
    	"op": "add", "path": "/description", "value": "space description"
    }]'

Response

Status Code

  • OK.

  • Bad request

  • Unauthorized

  • Forbidden, an authentication error including trying to access a forbidden space.

  • Resource not found

  • Internal Server Error

Example responses
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }

Retrieve the space members

Retrieves the member list for the specified space.

GET /v2/spaces/{space_id}/members

Request

Path Parameters

  • The space identification.

Query Parameters

  • Token representing first resource.

  • The number of resources returned. Default value is 100. Max value is 200.

  • Include details about total number of resources. This flag is not supported on CPD 3.0.1.

  • Find the member by 'type'.

  • Find the member by 'role'.

  • Find the member by 'state'.

  • curl '{host}/v2/spaces/{space_id}/members' --header 'Authorization: Bearer {token}'

Response

Information for paging when queerying resources.

Status Code

  • OK.

  • Bad request

  • Unauthorized

  • Forbidden, an authentication error including trying to access a forbidden space.

  • Resource not found

  • Internal Server Error

Example responses
  • {
      "first": {
        "href": "https://host/v2/spaces/2531bf6d-d63c-4e33-a141-5142d52d9d50/members"
      },
      "limit": 100,
      "resources": [
        {
          "id": "1000331001",
          "role": "admin",
          "state": "active",
          "type": "user"
        }
      ]
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }

Add a member to space

Adds a member to the specified space.

POST /v2/spaces/{space_id}/members

Request

Path Parameters

  • The space identification.

Member information.

  • curl '{host}/v2/spaces/{space_id}/members' --header 'Authorization: Bearer {token}' --header 'Content-Type: application/json' --data '{
      "members": [
      	{
        "id": "1000331001",
        "role": "admin",
        "type": "user"
      	}
      ]
    }'

Response

Status Code

  • OK.

  • Bad request

  • Unauthorized

  • Forbidden, an authentication error including trying to access a forbidden space.

  • Resource not found

  • Internal Server Error

Example responses
  • {
      "resources": [
        {
          "id": "iam-ServiceId-a1e4dc16-768f-4033-8553-942012f28db7",
          "role": "viewer",
          "state": "active",
          "type": "service"
        }
      ]
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }

Retrieve the space member information

Retrieves the member information for the member and space with the specified identifiers.

GET /v2/spaces/{space_id}/members/{member_id}

Request

Path Parameters

  • The space identification.

  • The member identification.

  • curl '{host}/v2/spaces/{space_id}/members/{member_id}' --header 'Authorization: Bearer {token}'

Response

Status Code

  • OK.

  • Bad request

  • Unauthorized

  • Forbidden, an authentication error including trying to access a forbidden space.

  • Resource not found

  • Internal Server Error

Example responses
  • {
      "id": "1000331001",
      "role": "admin",
      "state": "active",
      "type": "user"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }

Remove the space member

Removes the specified member from the space.

DELETE /v2/spaces/{space_id}/members/{member_id}

Request

Path Parameters

  • The space identification.

  • The member identification.

  • 
    curl --request DELETE '{host}/v2/spaces/{space_id}/members/{member_id}' --header 'Authorization: Bearer {token}'

Response

Status Code

  • Deleted.

  • Bad request

  • Unauthorized

  • Forbidden, an authentication error including trying to access a forbidden space.

  • Resource not found

  • Internal Server Error

Example responses
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }

Update the space member

Partially update the member selected with the specified identifier. Allowed paths are:

  • /role
  • /state
PATCH /v2/spaces/{space_id}/members/{member_id}

Request

Path Parameters

  • The space identification.

  • The member identification.

The json patch.

  • curl --request PATCH '{host}/v2/spaces/{space_id}/members/{member_id}' --header 'Authorization: Bearer {token}' --header 'Content-Type: application/json' --data '[{
    	"op": "add", "path": "/role", "value": "admin"
    }]'

Response

Status Code

  • Partially updated a member.

  • Bad request

  • Unauthorized

  • Forbidden, an authentication error including trying to access a forbidden space.

  • Resource not found

  • Internal Server Error

Example responses
  • {
      "id": "ServiceId-a1e4dc16-768f-4033-8553-942012f28db7",
      "role": "admin",
      "state": "active",
      "type": "service"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }

Retrieve the asset exports

Retrieves the asset export list for the specified space, project, or catalog.

GET /v2/asset_exports

Request

Query Parameters

  • Return resources pertaining to this space. Either 'space_id', 'project_id', 'catalog_id' query parameter has to be given and is mandatory.

    Example: 63dc4cf1-252f-424b-b52d-5cdd9814987f

  • Return resources pertaining to this project. Either 'space_id', 'project_id', 'catalog_id' query parameter has to be given and is mandatory.

    Example: 1dd2aaec-781a-4712-a7ff-ae1862cf7a84

  • This parameter is only supported on CPD 3.5. Return resources pertaining to this catalog. Either 'space_id', 'project_id', 'catalog_id' query parameter has to be given and is mandatory.

    Example: 1dd2aaec-781a-4712-a7ff-ae1862cf7a84

  • Token representing first resource.

  • The number of resources returned. Default value is 100. Max value is 200.

  • curl '{host}/v2/asset_exports?project_id={project_id}' --header 'Authorization: Bearer {token}' 

Response

Information for paging when queerying resources.

Status Code

  • OK.

  • Bad request

  • Unauthorized

  • Forbidden, an authentication error including trying to access a forbidden space.

  • Resource not found

  • Internal Server Error

Example responses
  • {
      "first": {
        "href": "https://host/v2/asset_exports?project_id=7e9066c4-bbae-4565-a968-05e2ab43253a"
      },
      "limit": 100,
      "resources": [
        {
          "entity": {
            "assets": {
              "all_assets": true
            },
            "format": "json",
            "skip_notification": true,
            "status": {
              "state": "completed"
            }
          },
          "metadata": {
            "created_at": "2025-05-28T15:31:34.821Z",
            "creator_id": "1000331001",
            "id": "cd34356f-3df6-4e50-90cc-1b921997eb5a",
            "name": "export123",
            "project_id": "7e9066c4-bbae-4565-a968-05e2ab43253a",
            "updated_at": "2025-05-28T15:31:40.409Z",
            "url": "/v2/asset_exports/cd34356f-3df6-4e50-90cc-1b921997eb5a"
          }
        }
      ]
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }

Start the asset export process

Starts the asset export process for the specified space, project, or catalog. On CPD 3.0.1 assets export is supported only in the context of a space.

POST /v2/asset_exports

Request

Query Parameters

  • Return resources pertaining to this space. Either 'space_id', 'project_id', 'catalog_id' query parameter has to be given and is mandatory.

    Example: 63dc4cf1-252f-424b-b52d-5cdd9814987f

  • Return resources pertaining to this project. Either 'space_id', 'project_id', 'catalog_id' query parameter has to be given and is mandatory.

    Example: 1dd2aaec-781a-4712-a7ff-ae1862cf7a84

  • This parameter is only supported on CPD 3.5. Return resources pertaining to this catalog. Either 'space_id', 'project_id', 'catalog_id' query parameter has to be given and is mandatory.

    Example: 1dd2aaec-781a-4712-a7ff-ae1862cf7a84

Export information.

  • curl '{host}/v2/asset_exports?project_id={project_id}' --header 'Authorization: Bearer {token}' --header 'Content-Type: application/json' --data '
    {
    	"name": "export123",
    	"assets": {
    		"all_assets": true
    	}
    }'

Response

Status Code

  • OK.

  • Bad request

  • Unauthorized

  • Forbidden, an authentication error including trying to access a forbidden space.

  • Resource not found

  • Internal Server Error

Example responses
  • {
      "entity": {
        "assets": {
          "all_assets": true
        },
        "format": "json",
        "skip_notification": true,
        "status": {
          "state": "pending"
        }
      },
      "metadata": {
        "created_at": "2025-05-28T15:31:34.821Z",
        "creator_id": "1000331001",
        "id": "cd34356f-3df6-4e50-90cc-1b921997eb5a",
        "name": "export123",
        "project_id": "7e9066c4-bbae-4565-a968-05e2ab43253a",
        "url": "/v2/asset_exports/cd34356f-3df6-4e50-90cc-1b921997eb5a"
      }
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }

Cancel the asset export process

Cancels the asset export process with the specified identifier.

DELETE /v2/asset_exports/{export_id}

Request

Path Parameters

  • The export identification.

Query Parameters

  • Return resources pertaining to this space. Either 'space_id', 'project_id', 'catalog_id' query parameter has to be given and is mandatory.

    Example: 63dc4cf1-252f-424b-b52d-5cdd9814987f

  • Return resources pertaining to this project. Either 'space_id', 'project_id', 'catalog_id' query parameter has to be given and is mandatory.

    Example: 1dd2aaec-781a-4712-a7ff-ae1862cf7a84

  • This parameter is only supported on CPD 3.5. Return resources pertaining to this catalog. Either 'space_id', 'project_id', 'catalog_id' query parameter has to be given and is mandatory.

    Example: 1dd2aaec-781a-4712-a7ff-ae1862cf7a84

  • Default is false.

    Default: false

  • curl --request DELETE '{host}/v2/asset_exports/{export_id}?project_id={project_id}&hard_delete=true' --header 'Authorization: Bearer {token}'

Response

Status Code

  • OK.

  • Bad request

  • Unauthorized

  • Forbidden, an authentication error including trying to access a forbidden space.

  • Resource not found

  • Internal Server Error

Example responses
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }

Retrieve the asset export

Retrieves the asset export with the specified identifier.

GET /v2/asset_exports/{export_id}

Request

Path Parameters

  • The export identification.

Query Parameters

  • Return resources pertaining to this space. Either 'space_id', 'project_id', 'catalog_id' query parameter has to be given and is mandatory.

    Example: 63dc4cf1-252f-424b-b52d-5cdd9814987f

  • Return resources pertaining to this project. Either 'space_id', 'project_id', 'catalog_id' query parameter has to be given and is mandatory.

    Example: 1dd2aaec-781a-4712-a7ff-ae1862cf7a84

  • This parameter is only supported on CPD 3.5. Return resources pertaining to this catalog. Either 'space_id', 'project_id', 'catalog_id' query parameter has to be given and is mandatory.

    Example: 1dd2aaec-781a-4712-a7ff-ae1862cf7a84

  • curl '{host}/v2/asset_exports/{export_id}?project_id={project_id}' --header 'Authorization: Bearer {token}'

Response

Status Code

  • OK.

  • Bad request

  • Unauthorized

  • Forbidden, an authentication error including trying to access a forbidden space.

  • Resource not found

  • Internal Server Error

Example responses
  • {
      "entity": {
        "assets": {
          "all_assets": true
        },
        "format": "json",
        "skip_notification": true,
        "status": {
          "state": "completed"
        }
      },
      "metadata": {
        "created_at": "2025-05-28T15:31:34.821Z",
        "creator_id": "1000331001",
        "id": "cd34356f-3df6-4e50-90cc-1b921997eb5a",
        "name": "export123",
        "project_id": "7e9066c4-bbae-4565-a968-05e2ab43253a",
        "updated_at": "2025-05-28T15:31:40.409Z",
        "url": "/v2/asset_exports/cd34356f-3df6-4e50-90cc-1b921997eb5a"
      }
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }

Download the asset export content

Downloads the content for the asset export process with the specified identifier.

GET /v2/asset_exports/{export_id}/content

Request

Path Parameters

  • The export identification.

Query Parameters

  • Return resources pertaining to this space. Either 'space_id', 'project_id', 'catalog_id' query parameter has to be given and is mandatory.

    Example: 63dc4cf1-252f-424b-b52d-5cdd9814987f

  • Return resources pertaining to this project. Either 'space_id', 'project_id', 'catalog_id' query parameter has to be given and is mandatory.

    Example: 1dd2aaec-781a-4712-a7ff-ae1862cf7a84

  • This parameter is only supported on CPD 3.5. Return resources pertaining to this catalog. Either 'space_id', 'project_id', 'catalog_id' query parameter has to be given and is mandatory.

    Example: 1dd2aaec-781a-4712-a7ff-ae1862cf7a84

  • curl '{host}/v2/asset_exports/{export_id}/content?project_id={project_id}' --header 'Authorization: Bearer {token}' 

Response

Status Code

  • OK.

  • Bad request

  • Unauthorized

  • Forbidden, an authentication error including trying to access a forbidden space.

  • Resource not found

  • Internal Server Error

Example responses
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }

Retrieve the asset imports

Retrieves the asset import list for the specified space, project, or catalog.

GET /v2/asset_imports

Request

Query Parameters

  • Return resources pertaining to this space. Either 'space_id', 'project_id', 'catalog_id' query parameter has to be given and is mandatory.

    Example: 63dc4cf1-252f-424b-b52d-5cdd9814987f

  • Return resources pertaining to this project. Either 'space_id', 'project_id', 'catalog_id' query parameter has to be given and is mandatory.

    Example: 1dd2aaec-781a-4712-a7ff-ae1862cf7a84

  • This parameter is only supported on CPD 3.5. Return resources pertaining to this catalog. Either 'space_id', 'project_id', 'catalog_id' query parameter has to be given and is mandatory.

    Example: 1dd2aaec-781a-4712-a7ff-ae1862cf7a84

  • Token representing first resource.

  • The number of resources returned. Default value is 100. Max value is 200.

  • curl '{host}/v2/asset_imports?project_id={project_id}' --header 'Authorization: Bearer {token}'

Response

Information for paging when queerying resources.

Status Code

  • OK.

  • Bad request

  • Unauthorized

  • Forbidden, an authentication error including trying to access a forbidden space.

  • Resource not found

  • Internal Server Error

Example responses
  • {
      "first": {
        "href": "https://host/v2/asset_imports?hard_delete=true&project_id=7e9066c4-bbae-4565-a968-05e2ab43253a"
      },
      "limit": 100,
      "resources": [
        {
          "entity": {
            "format": "json",
            "skip_notification": true,
            "status": {
              "state": "completed"
            }
          },
          "metadata": {
            "created_at": "2025-05-28T15:37:27.594Z",
            "creator_id": "1000331001",
            "id": "b6aa0f5f-e498-4e12-bc29-687ed5d0863a",
            "project_id": "7e9066c4-bbae-4565-a968-05e2ab43253a",
            "updated_at": "2025-05-28T15:37:35.034Z",
            "url": "/v2/asset_imports/b6aa0f5f-e498-4e12-bc29-687ed5d0863a"
          }
        }
      ]
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }

Start the asset import process

Starts the asset import process for the specified space, project, or catalog. On CPD 3.0.1 assets import is supported only in the context of a space.

POST /v2/asset_imports

Request

Custom Headers

  • Allowable values: [multipart/form-data,application/zip]

Query Parameters

  • Return resources pertaining to this space. Either 'space_id', 'project_id', 'catalog_id' query parameter has to be given and is mandatory.

    Example: 63dc4cf1-252f-424b-b52d-5cdd9814987f

  • Return resources pertaining to this project. Either 'space_id', 'project_id', 'catalog_id' query parameter has to be given and is mandatory.

    Example: 1dd2aaec-781a-4712-a7ff-ae1862cf7a84

  • This parameter is only supported on CPD 3.5. Return resources pertaining to this catalog. Either 'space_id', 'project_id', 'catalog_id' query parameter has to be given and is mandatory.

    Example: 1dd2aaec-781a-4712-a7ff-ae1862cf7a84

Form Parameters

  • Archive with assets to be imported.

  • Encryption key used to decrypt the sensitive data during import.

  • Import format type.

    Allowable values: [json,csv]

    Default: json

  • curl '{host}/v2/asset_imports?project_id={project_id}' --header 'Authorization: Bearer {token}' --header 'Content-Type: application/zip' --data '@/path/to/export/file.zip'

Response

Status Code

  • OK.

  • Bad request

  • Unauthorized

  • Forbidden, an authentication error including trying to access a forbidden space.

  • Resource not found

  • Internal Server Error

Example responses
  • {
      "entity": {
        "format": "json",
        "skip_notification": true,
        "status": {
          "state": "pending"
        }
      },
      "metadata": {
        "created_at": "2025-05-28T15:37:27.594Z",
        "creator_id": "1000331001",
        "id": "b6aa0f5f-e498-4e12-bc29-687ed5d0863a",
        "project_id": "7e9066c4-bbae-4565-a968-05e2ab43253a",
        "url": "/v2/asset_imports/b6aa0f5f-e498-4e12-bc29-687ed5d0863a"
      }
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }

Cancel the asset import process

Cancels the asset import process with the specified identifier.

DELETE /v2/asset_imports/{import_id}

Request

Path Parameters

  • The import identification.

Query Parameters

  • Return resources pertaining to this space. Either 'space_id', 'project_id', 'catalog_id' query parameter has to be given and is mandatory.

    Example: 63dc4cf1-252f-424b-b52d-5cdd9814987f

  • Return resources pertaining to this project. Either 'space_id', 'project_id', 'catalog_id' query parameter has to be given and is mandatory.

    Example: 1dd2aaec-781a-4712-a7ff-ae1862cf7a84

  • This parameter is only supported on CPD 3.5. Return resources pertaining to this catalog. Either 'space_id', 'project_id', 'catalog_id' query parameter has to be given and is mandatory.

    Example: 1dd2aaec-781a-4712-a7ff-ae1862cf7a84

  • Default is false.

    Default: false

  • curl  --request DELETE '{host}/v2/asset_imports/{import_id}?hard_delete=true&project_id={project_id}' --header 'Authorization: Bearer {token}'

Response

Status Code

  • OK.

  • Bad request

  • Unauthorized

  • Forbidden, an authentication error including trying to access a forbidden space.

  • Resource not found

  • Internal Server Error

Example responses
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }

Retrieve the asset import

Retrieves the asset import with the specified identifier.

GET /v2/asset_imports/{import_id}

Request

Path Parameters

  • The import identification.

Query Parameters

  • Return resources pertaining to this space. Either 'space_id', 'project_id', 'catalog_id' query parameter has to be given and is mandatory.

    Example: 63dc4cf1-252f-424b-b52d-5cdd9814987f

  • Return resources pertaining to this project. Either 'space_id', 'project_id', 'catalog_id' query parameter has to be given and is mandatory.

    Example: 1dd2aaec-781a-4712-a7ff-ae1862cf7a84

  • This parameter is only supported on CPD 3.5. Return resources pertaining to this catalog. Either 'space_id', 'project_id', 'catalog_id' query parameter has to be given and is mandatory.

    Example: 1dd2aaec-781a-4712-a7ff-ae1862cf7a84

  • curl '{host}/v2/asset_imports/{import_id}?project_id={project_id}' --header 'Authorization: Bearer {token}'

Response

Status Code

  • OK.

  • Bad request

  • Unauthorized

  • Forbidden, an authentication error including trying to access a forbidden space.

  • Resource not found

  • Internal Server Error

Example responses
  • {
      "entity": {
        "format": "json",
        "skip_notification": true,
        "status": {
          "state": "completed"
        }
      },
      "metadata": {
        "created_at": "2025-05-28T15:37:27.594Z",
        "creator_id": "1000331001",
        "id": "b6aa0f5f-e498-4e12-bc29-687ed5d0863a",
        "project_id": "7e9066c4-bbae-4565-a968-05e2ab43253a",
        "updated_at": "2025-05-28T15:37:35.034Z",
        "url": "/v2/asset_imports/b6aa0f5f-e498-4e12-bc29-687ed5d0863a"
      }
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }
  • {
      "errors": [
        {
          "code": "SPACES0007E",
          "message": "Resource with given id '2531bf6d-d63c-4e33-a141-5142d52d9d50' could not be found.",
          "parameters": [
            "2531bf6d-d63c-4e33-a141-5142d52d9d50"
          ]
        }
      ],
      "trace": "NjQ4MDllMDktZGJiMC00YTFlLTlkZDctMjE0MDAxNTRmOGQ1"
    }

Get list of jobs under a project or a space.

Lists the jobs in the specified project or space (either project_id or space_id must be set).

GET /v2/jobs

Request

Query Parameters

  • Set to true for calls in git-based projects.

    Default: false

  • The ID of the project to use. project_id or space_id is required.

  • The ID of the space to use. project_id or space_id is required.

  • Optionally get all jobs associated with a particular asset.

  • Optionally get all jobs associated with the particular asset ref type.

  • The ID of the job run. Can be used to search parent job of a job run

  • The limit of the number of items to return, for example limit=50. If not specified a default of 100 will be used.

    Default: 100

  • The optional 'next' field from the response in string format, can be used to get the next batch. The response can contain up to 200 results in a batch, if there are more results, a 'next' field is returned in the response which can be used to get the next batch.

  • curl -X "GET" \
    "$API_DOMAIN/v2/jobs?project_id=$PROJECT_ID" \
    -H "Authorization: Bearer $BEARER_AUTH_TOKEN" \
    -H "accept: application/json" \
    -H "Content-Type: application/json"
    

Response

Status Code

  • Success.

  • Bad request. See the error message for details.

  • You are not authorized to access the service. See response for more information.

  • You are not permitted to perform this action. See response for more information.

  • The resources you specified cannot be found.

  • An error occurred. See response for more information.

Example responses
  • Example of a list of jobs under a specific project.

    {
      "total_rows": 2,
      "results": [
        {
          "metadata": {
            "name": "Example Job - Configured",
            "description": "This is an example job with some configurations.",
            "asset_id": "d4cf2284-b64d-43d2-accb-aeb40e6f3fe8",
            "owner_id": "1000000000",
            "version": 0
          },
          "entity": {
            "job": {
              "asset_ref_type": "data_flow",
              "configuration": {
                "env_id": "shaper_rruntime",
                "env_type": "shaper_rruntime",
                "env_variables": []
              },
              "schedule": "0 4 1 * *",
              "schedule_info": {
                "startOn": 1747281600000,
                "endOn": 1747454400000,
                "repeat": true
              },
              "last_run_initiator": "deprecated field",
              "last_run_time": "deprecated field",
              "last_run_status": "deprecated field",
              "last_run_status_timestamp": 0,
              "future_scheduled_runs": [],
              "enable_notifications": true,
              "notification_types": {
                "success": true,
                "warning": false,
                "failure": true
              },
              "retention_policy": {
                "amount": 200
              },
              "project_name": "Example Project",
              "asset_ref": "1bf61353-659f-447d-895b-d8816dc6e9b5",
              "schedule_id": "ae77bbc9-9816-4c1f-bd87-a6c3c8549b6e",
              "schedule_creator_id": "1000000000"
            }
          }
        },
        {
          "metadata": {
            "name": "Example Job",
            "description": "This is an example job.",
            "asset_id": "26b72316-f946-45e8-89cd-806786541caa",
            "owner_id": "1000000000",
            "version": 0
          },
          "entity": {
            "job": {
              "asset_ref_type": "data_flow",
              "configuration": {
                "env_id": "shaper_rruntime",
                "env_type": "shaper_rruntime",
                "env_variables": []
              },
              "last_run_initiator": "deprecated field",
              "last_run_time": "deprecated field",
              "last_run_status": "deprecated field",
              "last_run_status_timestamp": 0,
              "future_scheduled_runs": [],
              "enable_notifications": true,
              "project_name": "Example Project",
              "asset_ref": "1bf61353-659f-447d-895b-d8816dc6e9b5",
              "schedule_id": "",
              "schedule_creator_id": ""
            }
          }
        }
      ]
    }

Create a new job.

Creates a new job in the specified project or space (either project_id or space_id must be set).

POST /v2/jobs

Request

Query Parameters

  • Set to true for calls in git-based projects.

    Default: false

  • The ID of the project to use. project_id or space_id is required.

  • The ID of the space to use. project_id or space_id is required.

The job to be created. Note: either asset_ref or asset_ref_type must be provided, not both.

  • curl -X "POST" \
    "$API_DOMAIN/v2/jobs?project_id=$PROJECT_ID" \
    -H "Authorization: Bearer $BEARER_AUTH_TOKEN" \
    -H "accept: application/json" \
    -H "Content-Type: application/json" \
    -d \
    '{
      "job": {
        "name": "Example Job",
        "description": "Example Description",
        "asset_ref": "0e4321fe-164f-4aee-1234-f916da97e816",
        "configuration": {
            "env_id": "example_runtime"
        },
        "retention_policy": {
            "days": 2
        },
        "notification_types": {
            "success": false,
            "warning": false,
            "failure": true
        },
        "schedule_info": {
            "startOn": 1234596800000,
            "endOn": 1234994000000,
            "repeat": true
        },
        "schedule": "20 * * * 0,3",
        "job_parameters": [
          {
            "name": "job_param_1",
            "value": "The value could be of any type"
          }
        ],
        "parameter_sets": [
          {
            "name": "paramset_1",
            "value_set": "red",
            "ref": "31abfd90-5497-4605-8ac1-d85896fe6c6f",
            "values": [
              {
                "name": "job_param_2",
                "value": "The value could be of any type"
              }
            ]
          }
        ]
      }
    }'
    

Response

Status Code

  • Created.

  • Bad request. See the error message for details.

  • You are not authorized to access the service. See response for more information.

  • You are not permitted to perform this action. See response for more information.

  • An error occurred. See response for more information.

Example responses
  • Example of a created job in the specific project.

    {
      "metadata": {
        "project_id": "1fc3fd0b-119c-4b86-1234-5c397f7c2c90",
        "sandbox_id": "1fc3fd0b-119c-4b86-1234-5c397f7c2c90",
        "usage": {
          "last_updated_at": "2025-05-09T20:28:43Z",
          "last_updater_id": "1000000000",
          "last_update_time": 1746822523733,
          "last_accessed_at": "2025-05-09T20:28:43Z",
          "last_access_time": 1746822523733,
          "last_accessor_id": "1000000000",
          "access_count": 0
        },
        "rov": {
          "mode": 0,
          "collaborator_ids": {},
          "member_roles": {
            "1000000000": {
              "user_iam_id": "1000000000",
              "roles": [
                "OWNER"
              ]
            }
          }
        },
        "is_linked_with_sub_container": false,
        "name": "Example Job",
        "description": "This is an example job.",
        "asset_type": "job",
        "origin_country": "us",
        "rating": 0,
        "total_ratings": 0,
        "catalog_id": "0bdc1617-956e-4413-a393-ada9febae1a4",
        "created": 1746822523733,
        "created_at": "2025-05-09T20:28:43Z",
        "owner_id": "1000000000",
        "size": 0,
        "version": 2,
        "asset_state": "available",
        "asset_attributes": [
          "job"
        ],
        "asset_id": "26b72316-f946-45e8-89cd-806123441caa",
        "asset_category": "USER",
        "creator_id": "1000000000"
      },
      "entity": {
        "job": {
          "asset_ref_type": "data_flow",
          "configuration": {
            "env_id": "shaper_rruntime",
            "env_type": "shaper_rruntime",
            "env_variables": []
          },
          "schedule": "20 * * * 0,6",
          "schedule_info": {
            "startOn": 1154693760000,
            "endOn": 1155142040001,
            "repeat": true
          },
          "last_run_initiator": "deprecated field",
          "last_run_time": "deprecated field",
          "last_run_status": "deprecated field",
          "last_run_status_timestamp": 0,
          "future_scheduled_runs": [
            "2025-05-09T00:20:00.000Z",
            "2025-05-09T01:20:00.000Z",
            "2025-05-09T02:20:00.000Z"
          ],
          "enable_notifications": true,
          "notification_types": {
            "success": false,
            "warning": false,
            "failure": true
          },
          "retention_policy": {
            "days": 1
          },
          "serving_name": "example_job_1",
          "project_name": "Example Project",
          "asset_ref": "1bf61353-659f-447d-895b-d8816dc6e993",
          "schedule_id": "",
          "schedule_creator_id": ""
        }
      },
      "href": "/v2/assets/26b72316-f946-45e8-89cd-806123441caa?project_id=1fc3fd0b-119c-4b86-1234-5c397f7c2c90",
      "asset_id": "26b72316-f946-45e8-89cd-806123441caa"
    }

Get the information of job identified by the ID.

Gets the info for a single job associated from the specified project or space (either project_id or space_id must be set).

GET /v2/jobs/{job_id}

Request

Path Parameters

  • The ID of the job to use. Each job has a unique ID. Alternatively, the serving_name value can be used.

Query Parameters

  • Set to true for calls in git-based projects.

    Default: false

  • The ID of the project to use. project_id or space_id is required.

  • The ID of the space to use. project_id or space_id is required.

  • curl -X "GET" \
    "$API_DOMAIN/v2/jobs/$JOB_ID?project_id=$PROJECT_ID" \
    -H "Authorization: Bearer $BEARER_AUTH_TOKEN" \
    -H "accept: application/json" \
    -H "Content-Type: application/json" 
    

Response

Status Code

  • Success.

  • Bad request. See the error message for details.

  • You are not authorized to access the service. See response for more information.

  • You are not permitted to perform this action. See response for more information.

  • The resources you specified cannot be found.

  • An error occurred. See response for more information.

Example responses
  • Example of getting a job with specific ID in a specific project.

    {
      "metadata": {
        "name": "Example Job - Configured",
        "description": "This is an example job with some configurations.",
        "asset_id": "d4cf2284-b64d-43d2-accb-aeb40e6f3fe8",
        "owner_id": "1000000000",
        "version": 2
      },
      "entity": {
        "job": {
          "schedule": "20 * * * 0,6",
          "asset_ref": "0e1234fe-164f-4aee-4321-f916da97e816",
          "schedule_id": "420a86f7-4fc2-1i1u-a80d-e942ac265f0b",
          "project_name": "Example Project",
          "configuration": {
            "env_id": "shaper_rruntime",
            "env_type": "shaper_rruntime",
            "env_variables": []
          },
          "last_run_time": "deprecated field",
          "schedule_info": {
            "endOn": 1234144000000,
            "repeat": true,
            "startOn": 1234696760000
          },
          "asset_ref_type": "data_flow",
          "last_run_status": "deprecated field",
          "retention_policy": {
            "days": 2
          },
          "last_run_initiator": "deprecated field",
          "notification_types": {
            "failure": true,
            "success": false,
            "warning": false
          },
          "schedule_creator_id": "1000000000",
          "enable_notifications": true,
          "future_scheduled_runs": [],
          "last_run_status_timestamp": 0
        }
      }
    }

Delete a specific job.

Deletes a specific job in a project or space (either project_id or space_id must be set). If the deletion of the job and its runs will take some time to finish, then a 202 response will be returned and the deletion will continue asynchronously. All the jobs runs associated with the job will also be deleted. If the job is still running, it will not be deleted.

DELETE /v2/jobs/{job_id}

Request

Path Parameters

  • The ID of the job to use. Each job has a unique ID. Alternatively, the serving_name value can be used.

Query Parameters

  • Set to true for calls in git-based projects.

    Default: false

  • The ID of the project to use. project_id or space_id is required.

  • The ID of the space to use. project_id or space_id is required.

  • curl -X "DELETE" \
    "$API_DOMAIN/v2/jobs/$JOB_ID?project_id=$PROJECT_ID" \
    -H "Authorization: Bearer $BEARER_AUTH_TOKEN" \
    -H "accept: application/json" \
    -H "Content-Type: application/json" 
    

Response

Status Code

  • The requested operation completed successfully.

  • Bad request. See the error message for details.

  • You are not authorized to access the service. See response for more information.

  • You are not permitted to perform this action. See response for more information.

  • The resources you specified cannot be found.

  • An error occurred. See response for more information.

No Sample Response

This method does not specify any sample responses.

Update information of a job.

Updates specific attributes of a job in the specified project or space (either project_id or space_id must be set). You must specify the updates by using the JSON patch format, described in RFC 6902.

PATCH /v2/jobs/{job_id}

Request

Path Parameters

  • The ID of the job to use. Each job has a unique ID. Alternatively, the serving_name value can be used.

Query Parameters

  • Set to true for calls in git-based projects.

    Default: false

  • The ID of the project to use. project_id or space_id is required.

  • The ID of the space to use. project_id or space_id is required.

Updates to make to the job run.

  • curl -X "PATCH" \
    "$API_DOMAIN/v2/jobs/$JOB_ID?project_id=$PROJECT_ID" \
    -H "Authorization: Bearer $BEARER_AUTH_TOKEN" \
    -H "accept: application/json" \
    -H "Content-Type: application/json" \
    -d \
    '[
      {
        "op": "replace",
        "path": "/metadata/name",
        "value": "New Job Name"
      },
      {
        "op": "add",
        "path": "/metadata/description",
        "value": "Sample description."
      }
    ]'
    

Response

Status Code

  • Success.

  • You are not authorized to access the service. See response for more information.

  • You are not permitted to perform this action. See response for more information.

  • The resources you specified cannot be found.

  • An error occurred. See response for more information.

Example responses
  • Example of updating information of a job.

    {
      "metadata": {
        "project_id": "1fc3fd0b-119c-4b86-9161-5c397f7c2c98",
        "sandbox_id": "1fc3fd0b-119c-4b86-9161-5c397f7c2c98",
        "usage": {
          "last_updated_at": "2025-05-12T06:15:47Z",
          "last_updater_id": "1000000000",
          "last_update_time": 1747030547645,
          "last_accessed_at": "2025-05-12T06:15:47Z",
          "last_access_time": 1747030547645,
          "last_accessor_id": "1000000000",
          "access_count": 0
        },
        "rov": {
          "mode": 0,
          "collaborator_ids": {},
          "member_roles": {
            "1000000000": {
              "user_iam_id": "1000000000",
              "roles": [
                "OWNER"
              ]
            }
          }
        },
        "is_linked_with_sub_container": false,
        "name": "New Job Name",
        "description": "Sample description.",
        "asset_type": "job",
        "origin_country": "us",
        "rating": 0,
        "total_ratings": 0,
        "catalog_id": "0bdc1617-956e-4413-a393-ada9febae1a4",
        "created": 1746822523733,
        "created_at": "2025-05-09T20:28:43Z",
        "owner_id": "1000000000",
        "size": 0,
        "version": 2,
        "asset_state": "available",
        "asset_attributes": [
          "job"
        ],
        "asset_id": "26b72316-f946-45e8-89cd-806786541caa",
        "asset_category": "USER",
        "creator_id": "1000000000",
        "is_branched": true
      },
      "entity": {
        "job": {
          "schedule": "20 * * * 0,6",
          "asset_ref": "0e1234fe-164f-4aee-4321-f916da97e816",
          "schedule_id": "420a86f7-1iui-4b0a-a80d-e942ac265f0b",
          "project_name": "Example Project",
          "serving_name": "example_serving_name",
          "configuration": {
            "env_id": "shaper_rruntime",
            "env_type": "shaper_rruntime",
            "env_variables": []
          },
          "last_run_time": "deprecated field",
          "schedule_info": {
            "endOn": 1234544000000,
            "repeat": true,
            "startOn": 1234696760000
          },
          "asset_ref_type": "data_flow",
          "last_run_status": "deprecated field",
          "retention_policy": {
            "days": 2
          },
          "last_run_initiator": "deprecated field",
          "notification_types": {
            "failure": true,
            "success": false,
            "warning": false
          },
          "schedule_creator_id": "1000000000",
          "enable_notifications": true,
          "future_scheduled_runs": [],
          "last_run_status_timestamp": 0
        }
      },
      "href": "/v2/assets/26b234sdf6-f946-45e8-89cd-80643256541caa?project_id=1fc3fd0b-119c-4b86-9161-5c397f7c2c98"
    }

Get the availability of a given serving_name

Gets the availability of a given serving_name, as serving_name must be globally unique. serving_name must be a combination of alphanumeric and underscore characters, and must be between 1 and 36 characters.

GET /v2/jobs/serving_name/{serving_name}

Request

Path Parameters

  • The serving_name value of the job to be used in place of the job ID.

Query Parameters

  • Set to true for calls in git-based projects.

    Default: false

  • curl -X "GET" \
    "$API_DOMAIN/v2/jobs/serving_name/$SERVING_NAME" \
    -H "Authorization: Bearer $BEARER_AUTH_TOKEN" \
    -H "accept: application/json" \
    -H "Content-Type: application/json"
    

Response

Status Code

  • Success.

  • Bad request. See the error message for details.

  • You are not authorized to access the service. See response for more information.

  • An error occurred. See response for more information.

Example responses
  • Example of getting the availability of a specific serving_name.

    {
      "results": [
        "serving_name does not exist in DB"
      ]
    }

Get list of runs of a job.

Lists the job runs for a specific job in the specified project or space (either project_id or space_id must be set). Only the metadata and certain elements of the entity component of each run are returned.

GET /v2/jobs/{job_id}/runs

Request

Path Parameters

  • The ID of the job to use. Each job has a unique ID. Alternatively, the serving_name value can be used.

Query Parameters

  • Set to true for calls in git-based projects.

    Default: false

  • The ID of the project to use. project_id or space_id is required.

  • The ID of the space to use. project_id or space_id is required.

  • The optional 'next' field from the response in string format, can be used to get the next batch. The response can contain up to 200 results in a batch, if there are more results, a 'next' field is returned in the response which can be used to get the next batch.

  • The limit of the number of items to return, for example limit=50. If not specified a default of 100 will be used.

    Default: 100

  • A list of comma-separated job run states. Availble values: Completed, Failed, Canceled, Starting, Running, Queued, Canceling, Paused, Resuming, CompletedWithWarnings, CompletedWithErrors

    Allowable values: [Queued,Starting,Running,Paused,Resuming,Canceling,Canceled,Failed,Completed,CompletedWithErrors,CompletedWithWarnings]

  • curl -X "GET" \
    "$API_DOMAIN/v2/jobs/$JOB_ID/runs?project_id=$PROJECT_ID" \
    -H "Authorization: Bearer $BEARER_AUTH_TOKEN" \
    -H "accept: application/json" \
    -H "Content-Type: application/json"
    

Response

Status Code

  • Success.

  • You are not authorized to access the service. See response for more information.

  • You are not permitted to perform this action. See response for more information.

  • An error occurred. See response for more information.

Example responses
  • Example of getting a list of runs of a specific job in a specific project.

    {
      "total_rows": 3,
      "next": null,
      "results": [
        {
          "href": "/v2/jobs/d4cf2284-b64d-43d2-accb-aeb40e6f3fe8/runs/c1233b1d-479b-4188-9450-46d0d6ba59ed?project_id=1fc3fd0b-119c-4b86-9161-5c397f7c2c98",
          "entity": {
            "job_run": {
              "state": "Running",
              "job_ref": "d4cf2284-b64d-43d2-accb-aeb40e6f3fe8",
              "duration": 109,
              "end_time": "2025-05-10T23:23:41.519Z",
              "job_name": "Example Job - Configured",
              "job_type": "data_flow",
              "asset_ref_id": "1bf61353-659f-447d-895b-d8816dc6e9b5",
              "project_name": "Example Project",
              "configuration": {
                "env_id": "shaper_rruntime",
                "env_type": "shaper_rruntime",
                "env_variables": []
              },
              "asset_ref_name": "customer.csv_flow",
              "isScheduledRun": false,
              "job_parameters": [],
              "parameter_sets": [],
              "resource_usage": null,
              "runtime_job_id": "d6ac00a8-f075-440d-9327-f90bebb0432b",
              "last_state_change_timestamp": "2025-05-10T23:23:41Z"
            },
            "container_name": "",
            "directory_asset": {
              "path": ""
            }
          },
          "asset_id": "c1233b1d-479b-4188-9450-46d0d6ba59ed",
          "metadata": {
            "name": "job run",
            "usage": {
              "last_updated_at": "2025-05-10T23:23:41Z",
              "last_update_time": 1234568221519
            },
            "created": 1747032195369,
            "asset_id": "c1233b1d-479b-4188-9450-46d0d6ba59ed",
            "owner_id": "1000000000",
            "asset_type": "job_run",
            "created_at": "2025-05-12T06:43:15.369Z",
            "creator_id": "1000000000",
            "project_id": "1fc3fd0b-119c-4b86-9161-5c397f7c2c98",
            "description": "",
            "asset_category": "USER"
          },
          "attachments": [
            {
              "id": "983aa4b2-1234-45w2-81aa-ffc9c1524fb0",
              "mime": "application/json",
              "name": "832a6336-iu88-4df1-43jj-3f8d1ebc309d",
              "is_remote": false,
              "asset_type": "job_run",
              "is_managed": false,
              "object_key": "job_run/log/832a6336-iu88-4df1-43jj-3f8d1ebc309d",
              "create_time": 1754868221569,
              "description": "log for job run 832a6336-iu88-4df1-43jj-3f8d1ebc309d",
              "is_referenced": true,
              "is_partitioned": true,
              "is_object_key_read_only": false,
              "is_user_provided_path_key": true
            }
          ]
        },
        {
          "href": "/v2/jobs/d4cf2284-b64d-43d2-accb-aeb40e6f3fe8/runs/f7b88151-dce5-4c96-81fd-c10e2f65459e?project_id=1fc3fd0b-119c-4b86-9161-5c397f7c2c98",
          "entity": {
            "job_run": {
              "name": "Example Job Run 2",
              "state": "Canceled",
              "job_ref": "d4cf2284-b64d-43d2-accb-aeb40e6f3fe8",
              "duration": null,
              "end_time": "2025-05-12T06:41:39.998Z",
              "job_name": "Example Job - Configured",
              "job_type": "data_flow",
              "description": "Example description",
              "asset_ref_id": "1bf61353-659f-447d-895b-d8816dc6e9b5",
              "project_name": "Example Project",
              "configuration": {
                "env_id": "shaper_rruntime",
                "env_type": "shaper_rruntime",
                "env_variables": []
              },
              "asset_ref_name": "customer.csv_flow",
              "isScheduledRun": false,
              "job_parameters": [],
              "parameter_sets": [],
              "resource_usage": null,
              "runtime_job_id": "777b53cd-0f9b-4902-b245-9b3f2aaa6975"
            },
            "container_name": "",
            "directory_asset": {
              "path": ""
            }
          },
          "asset_id": "f7b88151-dce5-4c96-81fd-c10e2f65459e",
          "metadata": {
            "name": "Example Job Run 2",
            "created": 1747032062364,
            "asset_id": "f7b88151-dce5-4c96-81fd-c10e2f65459e",
            "owner_id": "1000000000",
            "asset_type": "job_run",
            "created_at": "2025-05-12T06:41:02.364Z",
            "creator_id": "1000000000",
            "project_id": "1fc3fd0b-119c-4b86-9161-5c397f7c2c98",
            "description": "Example description",
            "asset_category": "USER"
          },
          "attachments": [
            {
              "id": "6b5e3e5d-3e82-44f9-ab11-6e1ef058e29a",
              "mime": "application/json",
              "name": "f7b88151-dce5-4c96-81fd-c10e2f65459e",
              "is_remote": false,
              "asset_type": "job_run",
              "creator_id": "1000000000",
              "is_managed": false,
              "object_key": "job_run/log/f7b88151-dce5-4c96-81fd-c10e2f65459e",
              "create_time": 1747032100055,
              "description": "log for job run f7b88151-dce5-4c96-81fd-c10e2f65459e",
              "is_referenced": true,
              "is_partitioned": true,
              "is_object_key_read_only": false,
              "is_user_provided_path_key": true
            }
          ]
        },
        {
          "href": "/v2/jobs/d4cf2284-b64d-43d2-accb-aeb40e6f3fe8/runs/57ccc54b-dcee-485c-9bcd-17827680597d?project_id=1fc3fd0b-119c-4b86-9161-5c397f7c2c98",
          "entity": {
            "job_run": {
              "name": "Example Job Run",
              "state": "Completed",
              "job_ref": "d4cf2284-b64d-43d2-accb-aeb40e6f3fe8",
              "duration": 54,
              "end_time": "2025-05-12T06:38:46.505Z",
              "job_name": "Example Job - Configured",
              "job_type": "data_flow",
              "description": "Example description",
              "asset_ref_id": "1bf61353-659f-447d-895b-d8816dc6e9b5",
              "project_name": "Example Project",
              "configuration": {
                "env_id": "shaper_rruntime",
                "env_type": "shaper_rruntime",
                "env_variables": []
              },
              "asset_ref_name": "customer.csv_flow",
              "isScheduledRun": false,
              "job_parameters": [],
              "parameter_sets": [],
              "resource_usage": null,
              "runtime_job_id": "632decfa-d785-42e0-82f0-2d6118f96a46"
            },
            "container_name": "",
            "directory_asset": {
              "path": ""
            }
          },
          "asset_id": "57ccc54b-dcee-485c-9bcd-17827680597d",
          "metadata": {
            "name": "Example Job Run",
            "created": 1747031835676,
            "asset_id": "57ccc54b-dcee-485c-9bcd-17827680597d",
            "owner_id": "1000000000",
            "asset_type": "job_run",
            "created_at": "2025-05-12T06:37:15.676Z",
            "creator_id": "1000000000",
            "project_id": "1fc3fd0b-119c-4b86-9161-5c397f7c2c98",
            "description": "Example description",
            "asset_category": "USER"
          },
          "attachments": [
            {
              "id": "815929f1-7691-49c2-9b96-9496e14a7b68",
              "mime": "application/json",
              "name": "57ccc54b-dcee-485c-9bcd-17827680597d",
              "is_remote": false,
              "asset_type": "job_run",
              "is_managed": false,
              "object_key": "job_run/log/57ccc54b-dcee-485c-9bcd-17827680597d",
              "create_time": 1747031926536,
              "description": "log for job run 57ccc54b-dcee-485c-9bcd-17827680597d",
              "is_referenced": true,
              "is_partitioned": true,
              "is_object_key_read_only": false,
              "is_user_provided_path_key": true
            }
          ]
        }
      ]
    }

Start a run for a job.

Starts the specified job contained in a project or space (either project_id or space_id must be set).

POST /v2/jobs/{job_id}/runs

Request

Path Parameters

  • The ID of the job to use. Each job has a unique ID. Alternatively, the serving_name value can be used.

Query Parameters

  • Set to true for calls in git-based projects.

    Default: false

  • The ID of the project to use. project_id or space_id is required.

  • The ID of the space to use. project_id or space_id is required.

The configuration of the job run to use. If not provided, use the configuration of the associated job.

  • curl -X "POST" \
    "$API_DOMAIN/v2/jobs/$JOB_ID/runs?project_id=$PROJECT_ID" \
    -H "Authorization: Bearer $BEARER_AUTH_TOKEN" \
    -H "accept: application/json" \
    -H "Content-Type: application/json" \
    -d \
    '{
      "job_run": {
        "name": "Job Run",
        "description": "Description",
        "configuration": {
          "env_variables": [
            "key1=value1",
            "key2=value2"
          ]
        },
        "job_parameters": [
          {
            "name": "job_param_",
            "value": "The value could be of any type"
          }
        ],
        "parameter_sets": [
          {
            "name": "paramset_1",
            "value_set": "red",
            "ref": "31abfd90-5497-4605-8ac1-d85896fe6c6f",
            "values": [
              {
                "name": "job_param_1",
                "value": "The value could be of any type"
              }
            ]
          }
        ]
      }
    }'
    

Response

Status Code

  • The requested operation completed successfully.

  • You are not authorized to access the service. See response for more information.

  • You are not permitted to perform this action. See response for more information.

  • An error occurred. See response for more information.

Example responses
  • Example of starting a run for a job

    {
      "href": "/v2/jobs/d4cf2284-b64d-43d2-accb-aeb40e6f3fe8/runs/57ccc54b-dcee-485c-9bcd-17827680597d?project_id=1fc3fd0b-119c-4b86-9161-5c397f7c2c98",
      "entity": {
        "job_run": {
          "name": "Example Job Run",
          "state": "Starting",
          "job_ref": "d4cf2284-b64d-43d2-accb-aeb40e6f3fe8",
          "duration": null,
          "end_time": null,
          "job_name": "Example Job - Configured",
          "job_type": "data_flow",
          "description": "Example description",
          "asset_ref_id": "1bf61353-659f-447d-895b-d8816dc6e9b5",
          "project_name": "Example Project",
          "configuration": {
            "env_id": "shaper_rruntime",
            "env_type": "shaper_rruntime",
            "env_variables": [
              "key1=value1",
              "key2=value2"
            ]
          },
          "asset_ref_name": "customer.csv_flow",
          "isScheduledRun": false,
          "job_parameters": [],
          "parameter_sets": [],
          "resource_usage": null,
          "runtime_job_id": "d4cf2284-b64d-43d2-accb-aeb40e6f3fe8"
        },
        "container_name": "",
        "directory_asset": {
          "path": ""
        }
      },
      "asset_id": "57ccc54b-dcee-485c-9bcd-17827680597d",
      "metadata": {
        "name": "Example Job Run",
        "usage": {
          "last_updated_at": "2025-05-11T19:53:22Z",
          "last_updater_id": "1000000000",
          "last_access_time": 1234542002977,
          "last_accessed_at": "2025-05-11T19:53:22Z",
          "last_accessor_id": "1000000000",
          "last_update_time": 1234542002977
        },
        "created": 1234531835676,
        "asset_id": "57ccc54b-dcee-485c-9bcd-17827680597d",
        "owner_id": "1000000000",
        "asset_type": "job_run",
        "created_at": "2025-05-12T06:37:15.676Z",
        "creator_id": "1000000000",
        "project_id": "1fc3fd0b-119c-4b86-9161-5c397f7c2c98",
        "description": "Example description",
        "asset_category": "USER"
      },
      "attachments": []
    }

Get a specific run of a job.

Gets the info for a single job run from the specified project or space (either project_id or space_id must be set).

GET /v2/jobs/{job_id}/runs/{run_id}

Request

Path Parameters

  • The ID of the job to use. Each job has a unique ID. Alternatively, the serving_name value can be used.

  • The ID of the job run.

Query Parameters

  • Set to true for calls in git-based projects.

    Default: false

  • The ID of the project to use. project_id or space_id is required.

  • The ID of the space to use. project_id or space_id is required.

  • If set to true, metrics of the job run would not be fetched.

  • curl -X "GET" \
    "$API_DOMAIN/v2/jobs/$JOB_ID/runs/$RUN_ID?project_id=$PROJECT_ID&skip_metrics=$SKIP_METRICS" \
    -H "Authorization: Bearer $BEARER_AUTH_TOKEN" \
    -H "accept: application/json" \
    -H "Content-Type: application/json"
    

Response

Status Code

  • Success.

  • You are not authorized to access the service. See response for more information.

  • You are not permitted to perform this action. See response for more information.

  • An error occurred. See response for more information.

Example responses
  • Example of getting a specific run of a job

    {
      "href": "/v2/jobs/d4cf2284-b64d-43d2-accb-aeb40e6f3fe8/runs/f7b88151-dce5-4c96-81fd-c10e2f65459e?project_id=1fc3fd0b-119c-4b86-9161-5c397f7c2c98",
      "entity": {
        "job_run": {
          "name": "Example Job Run",
          "state": "Completed",
          "job_ref": "d4cf2284-b64d-43d2-accb-aeb40e6f3fe8",
          "duration": null,
          "end_time": "2025-05-12T06:41:39.998Z",
          "job_name": "Example Job - Configured",
          "job_type": "data_flow",
          "description": "Example description",
          "asset_ref_id": "1bf61353-659f-447d-895b-d8816dc6e9b5",
          "project_name": "Example Project",
          "configuration": {
            "env_id": "shaper_rruntime",
            "env_type": "shaper_rruntime",
            "env_variables": [
              "key1=value1",
              "key2=value2"
            ]
          },
          "asset_ref_name": "customer.csv_flow",
          "isScheduledRun": false,
          "job_parameters": [],
          "parameter_sets": [],
          "resource_usage": null,
          "runtime_job_id": "777b53cd-0f9b-4902-b245-9b3f2aaa6975",
          "last_state_change_timestamp": "2025-05-11T19:56:19Z"
        },
        "container_name": "",
        "directory_asset": {
          "path": ""
        }
      },
      "asset_id": "f7b88151-dce5-4c96-81fd-c10e2f65459e",
      "metadata": {
        "name": "Example Job Run",
        "usage": {
          "last_updated_at": "2025-05-11T19:56:19Z",
          "last_update_time": 1234542179025
        },
        "created": 1234532062364,
        "asset_id": "f7b88151-dce5-4c96-81fd-c10e2f65459e",
        "owner_id": "1000000000",
        "asset_type": "job_run",
        "created_at": "2025-05-12T06:41:02.364Z",
        "creator_id": "1000000000",
        "project_id": "1fc3fd0b-119c-4b86-9161-5c397f7c2c98",
        "description": "Example description",
        "asset_category": "USER"
      },
      "attachments": [
        {
          "id": "6b5e3e5d-3e82-44f9-ab11-6e1ef058e29a",
          "mime": "application/json",
          "name": "f7b88151-dce5-4c96-81fd-c10e2f65459e",
          "is_remote": false,
          "asset_type": "job_run",
          "is_managed": false,
          "object_key": "job_run/log/f7b88151-dce5-4c96-81fd-c10e2f65459e",
          "create_time": 1234532100055,
          "description": "log for job run f7b88151-dce5-4c96-81fd-c10e2f65459e",
          "is_referenced": true,
          "is_partitioned": true,
          "is_object_key_read_only": false,
          "is_user_provided_path_key": true
        }
      ]
    }

Delete a run.

Delete the specified job run in a project or space (either project_id or space_id must be set).

DELETE /v2/jobs/{job_id}/runs/{run_id}

Request

Path Parameters

  • The ID of the job to use. Each job has a unique ID. Alternatively, the serving_name value can be used.

  • The ID of the job run.

Query Parameters

  • Set to true for calls in git-based projects.

    Default: false

  • The ID of the project to use. project_id or space_id is required.

  • The ID of the space to use. project_id or space_id is required.

  • curl -X DELETE \
    "$API_DOMAIN/v2/jobs/$JOB_ID/runs/$RUN_ID?project_id=$PROJECT_ID" \
    -H "Authorization: Bearer $BEARER_AUTH_TOKEN" \
    -H "accept: application/json" \
    -H "Content-Type: application/json"
    

Response

Status Code

  • The requested operation is in progress.

  • The requested operation completed successfully.

  • You are not authorized to access the service. See response for more information.

  • You are not permitted to perform this action. See response for more information.

  • The resources you specified cannot be found.

  • An error occurred. See response for more information.

No Sample Response

This method does not specify any sample responses.

Retrieve runtime log of a run.

Gets the logs for a job run in the specified project or space (either project_id or space_id must be set)

GET /v2/jobs/{job_id}/runs/{run_id}/logs

Request

Path Parameters

  • The ID of the job to use. Each job has a unique ID. Alternatively, the serving_name value can be used.

  • The ID of the job run.

Query Parameters

  • Set to true for calls in git-based projects.

    Default: false

  • The ID of the project to use. project_id or space_id is required.

  • The ID of the space to use. project_id or space_id is required.

  • The limit of the number of lines to return, for example limit=50. If not specified, all log will be returned.

  • curl -X "GET" \
    "$API_DOMAIN/v2/jobs/$JOB_ID/runs/$RUN_ID/logs?project_id=$PROJECT_ID" \
    -H "Authorization: Bearer $BEARER_AUTH_TOKEN" \
    -H "accept: application/json" \
    -H "Content-Type: application/json"
    

Response

Response of get job run log

Status Code

  • Success.

  • You are not authorized to access the service. See response for more information.

  • You are not permitted to perform this action. See response for more information.

  • An error occurred. See response for more information.

Example responses
  • Example of a runtime log of a specific job run.

    {
      "results": [
        "Setting up certificate.",
        "Use CPD_JAVA_CACERTS...",
        "1",
        "FIPS is turned on. The underlying OS seems to be FIPS enabled and FIPS_MODE is set to true.",
        "Certificate was added to keystore",
        "Skipping, no custom WDP certs found.",
        "Enabling OpenJCEPlusFIPS.FIPS140-3-withIBMKS profile",
        "Setting 'LC_ALL'.",
        "2025-08-10 23:20:16.539+0000 INFO: Loading libraries.",
        "2025-08-10 23:20:16.563+0000 INFO: Running jsonlite v 1.8.5",
        "2025-08-10 23:20:16.564+0000 INFO: Running dplyr v 1.0.9",
        "2025-08-10 23:20:16.565+0000 INFO: Running dbplyr v 2.2.1",
        "Warning: Your system is mis-configured: ‘/var/db/timezone/localtime’ is not a symlink",
        "2025-08-10 23:20:18.190+0000 INFO: Running Arrow version 14.0.2.1",
        "2025-08-10 23:20:18.192+0000 INFO: Runtime environment: Spark",
        "2025-08-10 23:20:18.192+0000 INFO: Initializing parameters for Data Refinery flow.",
        "2025-08-10 23:20:18.249+0000 INFO: Set additional spark config properties.",
        "2025-08-10 23:20:38.868+0000 INFO: Connect to spark failed. Retrying...",
        "2025-08-10 23:21:44.471+0000 INFO: Connected to Spark runtime environment.",
        "2025-08-10 23:21:44.472+0000 INFO: R version 4.3.3 (2024-02-29)",
        "2025-08-10 23:21:44.472+0000 INFO: Running Spark version 3.4.4",
        "2025-08-10 23:21:44.548+0000 INFO: Running Sparklyr version 1.7.6",
        "2025-08-10 23:21:44.550+0000 INFO: Registering UDFs.",
        "2025-08-10 23:21:50.645+0000 INFO: Setting httr configs",
        "2025-08-10 23:21:50.649+0000 INFO: Received source and target information from job run configuration.",
        "2025-08-10 23:21:50.653+0000 INFO: Completed processing user info from authentication token.",
        "2025-08-10 23:21:50.853+0000 INFO: Running ShaperFlowPkg version 5.2.3 (IMAGE:5.2.0.427)",
        "2025-08-10 23:21:50.854+0000 INFO: Running Connector version 12.1.386",
        "2025-08-10 23:21:50.854+0000 INFO: Number of partitions: 1",
        "2025-08-10 23:21:51.026+0000 INFO: Reading Data Refinery flow: Example_Job_flow",
        "2025-08-10 23:21:51.027+0000 INFO: Creating Spark payload: Processing source and target properties, and operations.",
        "2025-08-10 23:21:52.493+0000 INFO: Completed reading properties for 'source1': Source1.csv",
        "2025-08-10 23:21:52.493+0000 INFO: Data source type: assetfiles",
        "2025-08-10 23:21:52.495+0000 INFO: AvailMemBytes: 1288212714 Size: 277474 Push_Filters: FALSE Cache: TRUE",
        "2025-08-10 23:23:15.870+0000 INFO: Validating operation: 6e5e50c0-2uis-41fe-990d-45e77411d457",
        "2025-08-10 23:23:29.016+0000 WARNING: Data asset name 'Example Asset' already exists. Data asset will be overwritten.",
        "2025-08-10 23:23:29.642+0000 INFO: Completed reading properties for 'target1': target1_shaped",
        "2025-08-10 23:23:29.642+0000 INFO: Data source type: assetfiles",
        "2025-08-10 23:23:29.643+0000 INFO: Running Spark payload.",
        "2025-08-10 23:23:39.581+0000 INFO: Time taken to run spark payload: 9 secs",
        "2025-08-10 23:23:40.702+0000 INFO: Patched size 240135  mime text/csv  (discovery: text/plain ) for asset: 8d5c536c-b1ea-2345-934s-c2f3720d7962",
        "2025-08-10 23:23:40.704+0000 INFO: Applying lineage event: DATASET_MODIFIED_BY_DATAFLOW",
        "2025-08-10 23:23:40.753+0000 INFO: Total execution time : 1 min 49 secs",
        "2025-08-10 23:23:40.753+0000 INFO: Updating job run status to 'FINISHED'.",
        "2025-08-10 23:23:40.753+0000 INFO: 2066 rows read.",
        "2025-08-10 23:23:40.754+0000 INFO: 219474 bytes read.",
        "2025-08-10 23:23:40.754+0000 INFO: 2066 rows written.",
        "2025-08-10 23:23:40.754+0000 INFO: 203828 bytes written.",
        ""
      ],
      "total_count": 49
    }

Cancel a run.

Cancels a job run that is in the running state.

POST /v2/jobs/{job_id}/runs/{run_id}/cancel

Request

Path Parameters

  • The ID of the job to use. Each job has a unique ID. Alternatively, the serving_name value can be used.

  • The ID of the job run.

Query Parameters

  • Set to true for calls in git-based projects.

    Default: false

  • The ID of the project to use. project_id or space_id is required.

  • The ID of the space to use. project_id or space_id is required.

An empty body.

Example: {}

  • curl -X "POST" \
    "$API_DOMAIN/v2/jobs/$JOB_ID/runs/$RUN_ID/cancel?project_id=$PROJECT_ID" \
    -H "Authorization: Bearer $BEARER_AUTH_TOKEN" \
    -H "accept: application/json" \
    -H "Content-Type: application/json" \
    -d '{}'
    

Response

Status Code

  • The requested operation completed successfully.

  • You are not authorized to access the service. See response for more information.

  • You are not permitted to perform this action. See response for more information.

  • An error occurred. See response for more information.

No Sample Response

This method does not specify any sample responses.

Pause a run.

Pauses a job run that is in the running state.

POST /v2/jobs/{job_id}/runs/{run_id}/pause

Request

Path Parameters

  • The ID of the job to use. Each job has a unique ID. Alternatively, the serving_name value can be used.

  • The ID of the job run.

Query Parameters

  • Set to true for calls in git-based projects.

    Default: false

  • The ID of the project to use. project_id or space_id is required.

  • The ID of the space to use. project_id or space_id is required.

An empty body.

Example: {}

  • curl -X "POST" \
    "$API_DOMAIN/v2/jobs/$JOB_ID/runs/$RUN_ID/pause?project_id=$PROJECT_ID" \
    -H "Authorization: Bearer $BEARER_AUTH_TOKEN" \
    -H "accept: application/json" \
    -H "Content-Type: application/json" \
    -d '{}'
    

Response

Status Code

  • The requested operation completed successfully.

  • You are not authorized to access the service. See response for more information.

  • You are not permitted to perform this action. See response for more information.

  • An error occurred. See response for more information.

No Sample Response

This method does not specify any sample responses.

Resume a run.

Resumes a job run that is in the paused state.

POST /v2/jobs/{job_id}/runs/{run_id}/resume

Request

Path Parameters

  • The ID of the job to use. Each job has a unique ID. Alternatively, the serving_name value can be used.

  • The ID of the job run.

Query Parameters

  • Set to true for calls in git-based projects.

    Default: false

  • The ID of the project to use. project_id or space_id is required.

  • The ID of the space to use. project_id or space_id is required.

An empty body.

Example: {}

  • curl -X "POST" \
    "$API_DOMAIN/v2/jobs/$JOB_ID/runs/$RUN_ID/resume?project_id=$PROJECT_ID" \
    -H "Authorization: Bearer $BEARER_AUTH_TOKEN" \
    -H "accept: application/json" \
    -H "Content-Type: application/json" \
    -d '{}'
    

Response

Status Code

  • The requested operation completed successfully.

  • You are not authorized to access the service. See response for more information.

  • You are not permitted to perform this action. See response for more information.

  • An error occurred. See response for more information.

No Sample Response

This method does not specify any sample responses.

List environments.

Returns a list of environments filtered by type, language or spark version in a project or space.

If no filter is provided, it returns all environments in the project or space, which includes all default environments that are available in every project or space and custom environments created by users.

You need to specify either project_id or space_id.

GET /v2/environments

Request

Query Parameters

  • The guid of the project.

    Example: 92ae0e27-9b11-4de9-a646-d46ca3c183d4

  • The guid of the space.

    Example: 82ae0e27-9b11-4de9-a646-d46ca3c183d4

  • Comma-separated list of environment types. Defaults to list of all types.

    Example: notebook,wml_flow

  • Comma-separated list of environment types. Takes precedence over types. Defaults to empty list.

    Example: notebook,wml_flow

  • Comma-separated list of kernel languages. Defaults to empty list.

    Example: python2,python3

  • Comma-separated list of Spark versions. If provided, Spark environments will be filtered by these versions. Defaults to list of all default environments with supported Spark versions and all custom environments.

    Example: 2.3,2.4

  • curl -X "GET"   "${api_domain}/v2/environments?project_id=${project_id}"   -H "Accept: application/json"   -H "Authorization: Bearer ${bearer_auth_token}"
    

Response

A list of environments.

Status Code

  • Success. Returned a list of environments. Format follows v2/assets.

  • Bad request. One of the fields has invalid format/content.

  • Unauthorized. No/Malformed authentication provided.

  • Forbidden. User is not allowed to perform the target operation.

Example responses
  • {
      "total_results": 1,
      "resources": [
        {
          "metadata": {
            "name": "my notebook environment",
            "description": "this is my notebook environment",
            "asset_type": "environment",
            "asset_id": "656ca7c3-d971-42c3-918b-a15023cd6b8e",
            "project_id": "b275be5f-10ff-47ee-bfc9-63f1ce5addbf",
            "space_id": "1fd6d4b5-d592-4de2-a3e6-ae53a42d75d0",
            "owner_id": "IBMid-310000SG2Y",
            "created_at": "2021-10-12T09:18:34Z",
            "href": "/v2/environments/656ca7c3-d971-42c3-918b-a15023cd6b8e"
          },
          "entity": {
            "environment": {
              "sub_type": "notebook",
              "display_name": "My Notebook Environment",
              "hardware_specification": {
                "metadata": {
                  "name": "my hardware specification",
                  "description": "this is my hardware specification",
                  "asset_type": "hardware_specification",
                  "asset_id": "2d5191ba-ff9b-4b48-a852-948d49dd9210",
                  "project_id": "b275be5f-10ff-47ee-bfc9-63f1ce5addbf",
                  "space_id": "1fd6d4b5-d592-4de2-a3e6-ae53a42d75d0",
                  "owner_id": "IBMid-310000SG2Y",
                  "created_at": "2021-08-02T12:00:24.269Z",
                  "updated_at": "2021-08-02T12:00:24.269Z",
                  "href": "/v2/hardware_specifications/2d5191ba-ff9b-4b48-a852-948d49dd9210"
                },
                "entity": {
                  "hardware_specification": {
                    "nodes": {
                      "cpu": {
                        "units": "100m",
                        "model": "string"
                      },
                      "mem": {
                        "size": "8Gi"
                      },
                      "gpu": {
                        "num_gpu": 2,
                        "name": "v100",
                        "gpu_profile": "generic",
                        "mig_profile": "N/A"
                      },
                      "node_selector": [
                        {
                          "label_name": "custom_lable_name",
                          "label_value": "custom_lable_value"
                        }
                      ],
                      "num_nodes": 1,
                      "num_drivers": 1,
                      "drivers": {
                        "cpu": {
                          "units": "100m",
                          "model": "string"
                        },
                        "mem": {
                          "size": "8Gi"
                        }
                      },
                      "worker_pool": {
                        "id": 12345678990,
                        "provider": "ibm"
                      }
                    }
                  }
                }
              },
              "software_specification": {
                "metadata": {
                  "name": "my software specification",
                  "description": "this is my software specification",
                  "asset_type": "software_specification",
                  "asset_id": "45f12dfe-aa78-5b8d-9f38-0ee223c47309",
                  "project_id": "b275be5f-10ff-47ee-bfc9-63f1ce5addbf",
                  "space_id": "1fd6d4b5-d592-4de2-a3e6-ae53a42d75d0",
                  "owner_id": "IBMid-310000SG2Y",
                  "created_at": "2021-08-02T12:00:24.269Z",
                  "updated_at": "2021-08-02T12:00:24.269Z",
                  "href": "/v2/software_specifications/45f12dfe-aa78-5b8d-9f38-0ee223c47309"
                },
                "entity": {
                  "software_specification": {
                    "type": "derived",
                    "display_name": "My Software Specification",
                    "base_software_specification": {
                      "guid": "ab9e1b80-f2ce-592c-a7d2-4f2344f77194"
                    },
                    "package_extensions": [
                      {
                        "metadata": {
                          "name": "my package extension",
                          "description": "this is my package extension",
                          "asset_type": "package_extension",
                          "asset_id": "461db2c9-effb-4bfb-8319-f4acf8ba06a3",
                          "project_id": "b275be5f-10ff-47ee-bfc9-63f1ce5addbf",
                          "space_id": "1fd6d4b5-d592-4de2-a3e6-ae53a42d75d0",
                          "owner_id": "IBMid-310000SG2Y",
                          "created_at": "2021-08-02T12:00:24.269Z",
                          "updated_at": "2021-08-02T12:00:24.269Z"
                        },
                        "entity": {
                          "package_extension": {
                            "type": "conda_yml",
                            "interpreter": "mamba",
                            "object_key": "package_extension/Package_Extension_9GShiX8H0.yml"
                          }
                        }
                      }
                    ],
                    "software_configuration": {
                      "included_packages": [
                        {
                          "name": "ipython",
                          "version": "7.22.0"
                        }
                      ],
                      "platform": {
                        "name": "spark",
                        "version": 3.2
                      },
                      "language": {
                        "name": "python",
                        "version": 3.9
                      }
                    }
                  }
                }
              },
              "tools_specification": {
                "supported_kernels": [
                  {
                    "name": "python3",
                    "language": "python",
                    "version": 3.9,
                    "display_name": "Python 3.9"
                  }
                ]
              },
              "spec_type": "referenced"
            }
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_type",
          "message": "The `project_id` field needs to be a uuid v4, but is 12345.",
          "target": {
            "type": "field",
            "name": "project_id"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_auth_token",
          "message": "The IAM bearer token is not valid.",
          "target": {
            "type": "header",
            "name": "Authentication"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "endpoint_access_forbidden",
          "message": "max.mustermann@ibm.com is neither editor/admin of project b275be5f-10ff-47ee-bfc9-63f1ce5addbf nor allowlisted Service ID."
        }
      ]
    }

Create a new environment.

Returns a new environment with the provided parameters.

You need to specify either project_id or space_id.

Required body parameters vary dependent on environment types:

  • notebook: type, name, display_name, hardware_specification, software_specification, tools_specification
  • datastage: type, name, display_name, hardware_specification
  • other types: type, name, display_name, hardware_specification, software_specification
POST /v2/environments

Request

Query Parameters

  • The guid of the project.

    Example: 92ae0e27-9b11-4de9-a646-d46ca3c183d4

  • The guid of the space.

    Example: 82ae0e27-9b11-4de9-a646-d46ca3c183d4

Specification of the environment to be created.

Examples:

Create an environment

{
  "type": "notebook",
  "name": "my notebook environment",
  "description": "this is my notebook environment",
  "display_name": "My Notebook Environment",
  "hardware_specification": {
    "guid": "2d5191ba-ff9b-4b48-a852-948d49dd9210"
  },
  "software_specification": {
    "guid": "45f12dfe-aa78-5b8d-9f38-0ee223c47309"
  },
  "tools_specification": {
    "supported_kernels": [
      {
        "name": "python3",
        "language": "python",
        "version": 3.9,
        "display_name": "Python 3.9"
      }
    ]
  }
}
  • curl -X "POST"   "${api_domain}/v2/environments?project_id=${project_id}"   -H "Accept: application/json"   -H "Content-Type: application/json"   -H "Authorization: Bearer ${bearer_auth_token}"   -d '{
      "type": "notebook",
      "name": "my notebook environment",
      "description": "this is my notebook environment",
      "display_name": "My Notebook Environment",
      "hardware_specification": {
        "guid": "f3ebac7d-0a75-410c-8b48-a931428cc4c5"
      },
      "software_specification": {
        "guid":  "45f12dfe-aa78-5b8d-9f38-0ee223c47309"
      },
      "tools_specification": {
        "supported_kernels": [
          {
            "name": "python3",
            "display_name": "Python 3.11",
            "language": "python",
            "version": "3.11"
        }
        ]
      }
    }'
    

Response

Environment with references to external hardware and software specifications.

Status Code

  • Success. Created and returned a new environment asset. Format follows v2/assets.

  • Bad request. One of the fields has invalid format/content.

  • Unauthorized. No/Malformed authentication provided.

  • Forbidden. User is not allowed to perform the target operation.

  • The number of requests has exceeded the rate limit.

Example responses
  • {
      "metadata": {
        "name": "my notebook environment",
        "description": "this is my notebook environment",
        "asset_type": "environment",
        "asset_id": "656ca7c3-d971-42c3-918b-a15023cd6b8e",
        "project_id": "b275be5f-10ff-47ee-bfc9-63f1ce5addbf",
        "space_id": "1fd6d4b5-d592-4de2-a3e6-ae53a42d75d0",
        "owner_id": "IBMid-310000SG2Y",
        "created_at": "2021-10-12T09:18:34Z",
        "href": "/v2/environments/656ca7c3-d971-42c3-918b-a15023cd6b8e"
      },
      "entity": {
        "environment": {
          "sub_type": "notebook",
          "display_name": "My Notebook Environment",
          "hardware_specification": {
            "metadata": {
              "name": "my hardware specification",
              "description": "this is my hardware specification",
              "asset_type": "hardware_specification",
              "asset_id": "2d5191ba-ff9b-4b48-a852-948d49dd9210",
              "project_id": "b275be5f-10ff-47ee-bfc9-63f1ce5addbf",
              "space_id": "1fd6d4b5-d592-4de2-a3e6-ae53a42d75d0",
              "owner_id": "IBMid-310000SG2Y",
              "created_at": "2021-08-02T12:00:24.269Z",
              "updated_at": "2021-08-02T12:00:24.269Z",
              "href": "/v2/hardware_specifications/2d5191ba-ff9b-4b48-a852-948d49dd9210"
            },
            "entity": {
              "hardware_specification": {
                "nodes": {
                  "cpu": {
                    "units": "100m",
                    "model": "string"
                  },
                  "mem": {
                    "size": "8Gi"
                  },
                  "gpu": {
                    "num_gpu": 2,
                    "name": "v100",
                    "gpu_profile": "generic",
                    "mig_profile": "N/A"
                  },
                  "node_selector": [
                    {
                      "label_name": "custom_lable_name",
                      "label_value": "custom_lable_value"
                    }
                  ],
                  "num_nodes": 1,
                  "num_drivers": 1,
                  "drivers": {
                    "cpu": {
                      "units": "100m",
                      "model": "string"
                    },
                    "mem": {
                      "size": "8Gi"
                    }
                  },
                  "worker_pool": {
                    "id": 12345678990,
                    "provider": "ibm"
                  }
                }
              }
            }
          },
          "software_specification": {
            "metadata": {
              "name": "my software specification",
              "description": "this is my software specification",
              "asset_type": "software_specification",
              "asset_id": "45f12dfe-aa78-5b8d-9f38-0ee223c47309",
              "project_id": "b275be5f-10ff-47ee-bfc9-63f1ce5addbf",
              "space_id": "1fd6d4b5-d592-4de2-a3e6-ae53a42d75d0",
              "owner_id": "IBMid-310000SG2Y",
              "created_at": "2021-08-02T12:00:24.269Z",
              "updated_at": "2021-08-02T12:00:24.269Z",
              "href": "/v2/software_specifications/45f12dfe-aa78-5b8d-9f38-0ee223c47309"
            },
            "entity": {
              "software_specification": {
                "type": "derived",
                "display_name": "My Software Specification",
                "base_software_specification": {
                  "guid": "ab9e1b80-f2ce-592c-a7d2-4f2344f77194"
                },
                "package_extensions": [
                  {
                    "metadata": {
                      "name": "my package extension",
                      "description": "this is my package extension",
                      "asset_type": "package_extension",
                      "asset_id": "461db2c9-effb-4bfb-8319-f4acf8ba06a3",
                      "project_id": "b275be5f-10ff-47ee-bfc9-63f1ce5addbf",
                      "space_id": "1fd6d4b5-d592-4de2-a3e6-ae53a42d75d0",
                      "owner_id": "IBMid-310000SG2Y",
                      "created_at": "2021-08-02T12:00:24.269Z",
                      "updated_at": "2021-08-02T12:00:24.269Z"
                    },
                    "entity": {
                      "package_extension": {
                        "type": "conda_yml",
                        "interpreter": "mamba",
                        "object_key": "package_extension/Package_Extension_9GShiX8H0.yml"
                      }
                    }
                  }
                ],
                "software_configuration": {
                  "included_packages": [
                    {
                      "name": "ipython",
                      "version": "7.22.0"
                    }
                  ],
                  "platform": {
                    "name": "spark",
                    "version": 3.2
                  },
                  "language": {
                    "name": "python",
                    "version": 3.9
                  }
                }
              }
            }
          },
          "tools_specification": {
            "supported_kernels": [
              {
                "name": "python3",
                "language": "python",
                "version": 3.9,
                "display_name": "Python 3.9"
              }
            ]
          },
          "spec_type": "referenced"
        }
      }
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_type",
          "message": "The `project_id` field needs to be a uuid v4, but is 12345.",
          "target": {
            "type": "field",
            "name": "project_id"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_auth_token",
          "message": "The IAM bearer token is not valid.",
          "target": {
            "type": "header",
            "name": "Authentication"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "endpoint_access_forbidden",
          "message": "max.mustermann@ibm.com is neither editor/admin of project b275be5f-10ff-47ee-bfc9-63f1ce5addbf nor allowlisted Service ID."
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "rate_limit",
          "message": "The requests from IBMid-310000A00A exceeds rate limit. Please try again later."
        }
      ]
    }

Retrieve an environment.

Returns an environment of a given ID. You need to specify either project_id or space_id.

GET /v2/environments/{environment_guid}

Request

Path Parameters

  • The guid of the environment.

    Example: a1da1d73-5eb5-4dfb-808e-174eb153c20e

Query Parameters

  • The guid of the project.

    Example: 92ae0e27-9b11-4de9-a646-d46ca3c183d4

  • The guid of the space.

    Example: 82ae0e27-9b11-4de9-a646-d46ca3c183d4

  • Format the response. Defaults to none.

    Example: default_spark

  • Whether to include conda_yml file content of custom package extensions in the response. Defaults to false.

  • curl -X "GET"   "${api_domain}/v2/environments/${environment_guid}?project_id=${project_id}"   -H "Accept: application/json"   -H "Authorization: Bearer ${bearer_auth_token}"
    

Response

Environment with references to external hardware and software specifications.

Status Code

  • Success. Returned the environment. Format follows v2/assets.

  • Bad request. One of the fields has invalid format/content.

  • Unauthorized. No/Malformed authentication provided.

  • Forbidden. User is not allowed to perform the target operation.

Example responses
  • {
      "metadata": {
        "name": "my notebook environment",
        "description": "this is my notebook environment",
        "asset_type": "environment",
        "asset_id": "656ca7c3-d971-42c3-918b-a15023cd6b8e",
        "project_id": "b275be5f-10ff-47ee-bfc9-63f1ce5addbf",
        "space_id": "1fd6d4b5-d592-4de2-a3e6-ae53a42d75d0",
        "owner_id": "IBMid-310000SG2Y",
        "created_at": "2021-10-12T09:18:34Z",
        "href": "/v2/environments/656ca7c3-d971-42c3-918b-a15023cd6b8e"
      },
      "entity": {
        "environment": {
          "sub_type": "notebook",
          "display_name": "My Notebook Environment",
          "hardware_specification": {
            "metadata": {
              "name": "my hardware specification",
              "description": "this is my hardware specification",
              "asset_type": "hardware_specification",
              "asset_id": "2d5191ba-ff9b-4b48-a852-948d49dd9210",
              "project_id": "b275be5f-10ff-47ee-bfc9-63f1ce5addbf",
              "space_id": "1fd6d4b5-d592-4de2-a3e6-ae53a42d75d0",
              "owner_id": "IBMid-310000SG2Y",
              "created_at": "2021-08-02T12:00:24.269Z",
              "updated_at": "2021-08-02T12:00:24.269Z",
              "href": "/v2/hardware_specifications/2d5191ba-ff9b-4b48-a852-948d49dd9210"
            },
            "entity": {
              "hardware_specification": {
                "nodes": {
                  "cpu": {
                    "units": "100m",
                    "model": "string"
                  },
                  "mem": {
                    "size": "8Gi"
                  },
                  "gpu": {
                    "num_gpu": 2,
                    "name": "v100",
                    "gpu_profile": "generic",
                    "mig_profile": "N/A"
                  },
                  "node_selector": [
                    {
                      "label_name": "custom_lable_name",
                      "label_value": "custom_lable_value"
                    }
                  ],
                  "num_nodes": 1,
                  "num_drivers": 1,
                  "drivers": {
                    "cpu": {
                      "units": "100m",
                      "model": "string"
                    },
                    "mem": {
                      "size": "8Gi"
                    }
                  },
                  "worker_pool": {
                    "id": 12345678990,
                    "provider": "ibm"
                  }
                }
              }
            }
          },
          "software_specification": {
            "metadata": {
              "name": "my software specification",
              "description": "this is my software specification",
              "asset_type": "software_specification",
              "asset_id": "45f12dfe-aa78-5b8d-9f38-0ee223c47309",
              "project_id": "b275be5f-10ff-47ee-bfc9-63f1ce5addbf",
              "space_id": "1fd6d4b5-d592-4de2-a3e6-ae53a42d75d0",
              "owner_id": "IBMid-310000SG2Y",
              "created_at": "2021-08-02T12:00:24.269Z",
              "updated_at": "2021-08-02T12:00:24.269Z",
              "href": "/v2/software_specifications/45f12dfe-aa78-5b8d-9f38-0ee223c47309"
            },
            "entity": {
              "software_specification": {
                "type": "derived",
                "display_name": "My Software Specification",
                "base_software_specification": {
                  "guid": "ab9e1b80-f2ce-592c-a7d2-4f2344f77194"
                },
                "package_extensions": [
                  {
                    "metadata": {
                      "name": "my package extension",
                      "description": "this is my package extension",
                      "asset_type": "package_extension",
                      "asset_id": "461db2c9-effb-4bfb-8319-f4acf8ba06a3",
                      "project_id": "b275be5f-10ff-47ee-bfc9-63f1ce5addbf",
                      "space_id": "1fd6d4b5-d592-4de2-a3e6-ae53a42d75d0",
                      "owner_id": "IBMid-310000SG2Y",
                      "created_at": "2021-08-02T12:00:24.269Z",
                      "updated_at": "2021-08-02T12:00:24.269Z"
                    },
                    "entity": {
                      "package_extension": {
                        "type": "conda_yml",
                        "interpreter": "mamba",
                        "object_key": "package_extension/Package_Extension_9GShiX8H0.yml"
                      }
                    }
                  }
                ],
                "software_configuration": {
                  "included_packages": [
                    {
                      "name": "ipython",
                      "version": "7.22.0"
                    }
                  ],
                  "platform": {
                    "name": "spark",
                    "version": 3.2
                  },
                  "language": {
                    "name": "python",
                    "version": 3.9
                  }
                }
              }
            }
          },
          "tools_specification": {
            "supported_kernels": [
              {
                "name": "python3",
                "language": "python",
                "version": 3.9,
                "display_name": "Python 3.9"
              }
            ]
          },
          "spec_type": "referenced"
        }
      }
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_type",
          "message": "The `project_id` field needs to be a uuid v4, but is 12345.",
          "target": {
            "type": "field",
            "name": "project_id"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_auth_token",
          "message": "The IAM bearer token is not valid.",
          "target": {
            "type": "header",
            "name": "Authentication"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "endpoint_access_forbidden",
          "message": "max.mustermann@ibm.com is neither editor/admin of project b275be5f-10ff-47ee-bfc9-63f1ce5addbf nor allowlisted Service ID."
        }
      ]
    }

Delete an environment.

Deletes an environment of a given ID. You need to specify either project_id or space_id.

DELETE /v2/environments/{environment_guid}

Request

Path Parameters

  • The guid of the environment.

    Example: a1da1d73-5eb5-4dfb-808e-174eb153c20e

Query Parameters

  • The guid of the project.

    Example: 92ae0e27-9b11-4de9-a646-d46ca3c183d4

  • The guid of the space.

    Example: 82ae0e27-9b11-4de9-a646-d46ca3c183d4

  • curl -X "DELETE"   "${api_domain}/v2/environments/${environment_guid}?project_id=${project_id}"   -H "Authorization: Bearer ${bearer_auth_token}"
    

Response

Status Code

  • Success. The environment is deleted.

  • Bad request. One of the fields has invalid format/content.

  • Unauthorized. No/Malformed authentication provided.

  • Forbidden. User is not allowed to perform the target operation.

Example responses
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_type",
          "message": "The `project_id` field needs to be a uuid v4, but is 12345.",
          "target": {
            "type": "field",
            "name": "project_id"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_auth_token",
          "message": "The IAM bearer token is not valid.",
          "target": {
            "type": "header",
            "name": "Authentication"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "endpoint_access_forbidden",
          "message": "max.mustermann@ibm.com is neither editor/admin of project b275be5f-10ff-47ee-bfc9-63f1ce5addbf nor allowlisted Service ID."
        }
      ]
    }

Update an environment.

Updates an environment of a given ID with the provided parameters. Returns the environment with updated properties. Only custom environments can be updated.

PATCH /v2/environments/{environment_guid}

Request

Path Parameters

  • The guid of the environment.

    Example: a1da1d73-5eb5-4dfb-808e-174eb153c20e

Query Parameters

  • The guid of the project.

    Example: 92ae0e27-9b11-4de9-a646-d46ca3c183d4

Specification of changes.

Examples:

Update an environment

{
  "/metadata/name": "my updated notebook environment",
  "/metadata/description": "this is my updated notebook environment",
  "/entity/environment/display_name": "My Updated Notebook Environment",
  "/entity/environment/hardware_specification": {
    "guid": "2d5191ba-ff9b-4b48-a852-948d49dd9210"
  },
  "/entity/environment/software_specification": {
    "guid": "45f12dfe-aa78-5b8d-9f38-0ee223c47309"
  },
  "/entity/environment/environment_variables": {
    "key1": "value1",
    "key2": "value2"
  },
  "/entity/environment/config_variables": {
    "key3": "value3",
    "key4": "value4"
  },
  "/entity/environment/tools_specification": {
    "supported_kernels": [
      {
        "name": "python3",
        "language": "python",
        "version": 3.9,
        "display_name": "Python 3.9"
      }
    ]
  }
}
  • curl -X "PATCH"   "${api_domain}/v2/environments/${environment_guid}?project_id=${project_id}"   -H "Accept: application/json"   -H "Content-Type: application/json"   -H "Authorization: Bearer ${bearer_auth_token}"   -d '{
      "/metadata/name": "my updated notebook environment",
      "/metadata/description": "this is my updated notebook environment",
      "/entity/environment/display_name": "My Updated Notebook Environment"
    }'
    

Response

Status Code

  • Success. Updated the environment.

  • Bad request. One of the fields has invalid format/content.

  • Unauthorized. No/Malformed authentication provided.

  • Forbidden. User is not allowed to perform the target operation.

Example responses
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_type",
          "message": "The `project_id` field needs to be a uuid v4, but is 12345.",
          "target": {
            "type": "field",
            "name": "project_id"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_auth_token",
          "message": "The IAM bearer token is not valid.",
          "target": {
            "type": "header",
            "name": "Authentication"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "endpoint_access_forbidden",
          "message": "max.mustermann@ibm.com is neither editor/admin of project b275be5f-10ff-47ee-bfc9-63f1ce5addbf nor allowlisted Service ID."
        }
      ]
    }

List hardware specifications.

Returns a list of hardware specifications.

  1. If neither project_id nor space_id is given, it returns all global hardware specifications.
  2. If project_id or space_id is given, it returns all global and scoped hardware specifications. In this case, you need to specify either project_id or space_id.
GET /v2/hardware_specifications

Request

Query Parameters

  • The guid of the project.

    Example: 92ae0e27-9b11-4de9-a646-d46ca3c183d4

  • The guid of the space.

    Example: 82ae0e27-9b11-4de9-a646-d46ca3c183d4

  • The name of the hardware specification. If specified, each of the hardware specification in the returned list will have the specified name.

  • curl -X "GET"   "${api_domain}/v2/hardware_specifications"   -H "Accept: application/json"   -H "Authorization: Bearer ${bearer_auth_token}"
    

Response

A list of hardware specifications.

Status Code

  • Success. Returned a list of hardware specifications. Format follows v2/assets.

  • Bad request. One of the fields has invalid format/content.

  • Unauthorized. No/Malformed authentication provided.

  • Forbidden. User is not allowed to perform the target operation.

Example responses
  • {
      "total_results": 1,
      "resources": [
        {
          "metadata": {
            "name": "my hardware specification",
            "description": "this is my hardware specification",
            "asset_type": "hardware_specification",
            "asset_id": "2d5191ba-ff9b-4b48-a852-948d49dd9210",
            "project_id": "b275be5f-10ff-47ee-bfc9-63f1ce5addbf",
            "space_id": "1fd6d4b5-d592-4de2-a3e6-ae53a42d75d0",
            "owner_id": "IBMid-310000SG2Y",
            "created_at": "2021-08-02T12:00:24.269Z",
            "updated_at": "2021-08-02T12:00:24.269Z",
            "href": "/v2/hardware_specifications/2d5191ba-ff9b-4b48-a852-948d49dd9210"
          },
          "entity": {
            "hardware_specification": {
              "nodes": {
                "cpu": {
                  "units": "100m",
                  "model": "string"
                },
                "mem": {
                  "size": "8Gi"
                },
                "gpu": {
                  "num_gpu": 2,
                  "name": "v100",
                  "gpu_profile": "generic",
                  "mig_profile": "N/A"
                },
                "node_selector": [
                  {
                    "label_name": "custom_lable_name",
                    "label_value": "custom_lable_value"
                  }
                ],
                "num_nodes": 1,
                "num_drivers": 1,
                "drivers": {
                  "cpu": {
                    "units": "100m",
                    "model": "string"
                  },
                  "mem": {
                    "size": "8Gi"
                  }
                },
                "worker_pool": {
                  "id": 12345678990,
                  "provider": "ibm"
                }
              }
            }
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_type",
          "message": "The `project_id` field needs to be a uuid v4, but is 12345.",
          "target": {
            "type": "field",
            "name": "project_id"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_auth_token",
          "message": "The IAM bearer token is not valid.",
          "target": {
            "type": "header",
            "name": "Authentication"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "endpoint_access_forbidden",
          "message": "max.mustermann@ibm.com is neither editor/admin of project b275be5f-10ff-47ee-bfc9-63f1ce5addbf nor allowlisted Service ID."
        }
      ]
    }

Create a new hardware specification.

Returns a hardware specification created with provided parameters.

You need to specify either project_id or space_id.

You can only provide exactly one of nodes, spark or datastage in the request body.

POST /v2/hardware_specifications

Request

Query Parameters

  • The guid of the project.

    Example: 92ae0e27-9b11-4de9-a646-d46ca3c183d4

  • The guid of the space.

    Example: 82ae0e27-9b11-4de9-a646-d46ca3c183d4

Specification of the hardware specification to be created.

Examples:

Create a hardware specification for nodes

{
  "name": "my hardware specification",
  "description": "this is my hardware specification",
  "nodes": {
    "cpu": {
      "units": "100m",
      "model": "string"
    },
    "mem": {
      "size": "8Gi"
    },
    "gpu": {
      "num_gpu": 2,
      "name": "v100",
      "gpu_profile": "generic",
      "mig_profile": "N/A"
    },
    "node_selector": [
      {
        "label_name": "custom_lable_name",
        "label_value": "custom_lable_value"
      }
    ],
    "num_nodes": 1,
    "num_drivers": 1,
    "drivers": {
      "cpu": {
        "units": "100m",
        "model": "string"
      },
      "mem": {
        "size": "8Gi"
      }
    },
    "worker_pool": {
      "id": 12345678990,
      "provider": "ibm"
    }
  }
}

Create a hardware specification for Spark

{
  "name": "my hardware specification",
  "description": "this is my hardware specification",
  "spark": {
    "num_drivers": 1,
    "num_executors": 2,
    "driver": {
      "cpu": {
        "units": "100m",
        "model": "string"
      },
      "mem": {
        "size": "8Gi"
      }
    },
    "executor": {
      "cpu": {
        "units": "100m",
        "model": "string"
      },
      "mem": {
        "size": "8Gi"
      }
    }
  }
}

Create a hardware specification for DataStage

{
  "name": "my hardware specification",
  "description": "this is my hardware specification",
  "datastage": {
    "num_conductors": 1,
    "num_computes": 2,
    "conductor": {
      "cpu": {
        "units": "100m",
        "model": "string"
      },
      "mem": {
        "size": "8Gi"
      }
    },
    "compute": {
      "cpu": {
        "units": "100m",
        "model": "string"
      },
      "mem": {
        "size": "8Gi"
      }
    },
    "instance": "instance-1"
  }
}
  • curl -X "POST"   "${api_domain}/v2/hardware_specifications?project_id=${project_id}"   -H "Accept: application/json"   -H "Content-Type: application/json"   -H "Authorization: Bearer ${bearer_auth_token}"   -d '{
      "name": "my hardware specification",
      "description": "this is my hardware specification",
      "nodes": {
        "cpu": {
          "units": "2",
          "model": ""
        },
        "mem": {
          "size": "8Gi"
        }
      }
    }'
    

Response

A hardware specification.

Status Code

  • Success. Created and returned a new hardware specification asset. Format follows v2/assets.

  • Bad request. One of the fields has invalid format/content.

  • Unauthorized. No/Malformed authentication provided.

  • Forbidden. User is not allowed to perform the target operation.

  • Conflict. Specification already exists with given name. Restriction applicable only for global specifications.

Example responses
  • {
      "metadata": {
        "name": "my hardware specification",
        "description": "this is my hardware specification",
        "asset_type": "hardware_specification",
        "asset_id": "2d5191ba-ff9b-4b48-a852-948d49dd9210",
        "project_id": "b275be5f-10ff-47ee-bfc9-63f1ce5addbf",
        "space_id": "1fd6d4b5-d592-4de2-a3e6-ae53a42d75d0",
        "owner_id": "IBMid-310000SG2Y",
        "created_at": "2021-08-02T12:00:24.269Z",
        "updated_at": "2021-08-02T12:00:24.269Z",
        "href": "/v2/hardware_specifications/2d5191ba-ff9b-4b48-a852-948d49dd9210"
      },
      "entity": {
        "hardware_specification": {
          "nodes": {
            "cpu": {
              "units": "100m",
              "model": "string"
            },
            "mem": {
              "size": "8Gi"
            },
            "gpu": {
              "num_gpu": 2,
              "name": "v100",
              "gpu_profile": "generic",
              "mig_profile": "N/A"
            },
            "node_selector": [
              {
                "label_name": "custom_lable_name",
                "label_value": "custom_lable_value"
              }
            ],
            "num_nodes": 1,
            "num_drivers": 1,
            "drivers": {
              "cpu": {
                "units": "100m",
                "model": "string"
              },
              "mem": {
                "size": "8Gi"
              }
            },
            "worker_pool": {
              "id": 12345678990,
              "provider": "ibm"
            }
          }
        }
      }
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_type",
          "message": "The `project_id` field needs to be a uuid v4, but is 12345.",
          "target": {
            "type": "field",
            "name": "project_id"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_auth_token",
          "message": "The IAM bearer token is not valid.",
          "target": {
            "type": "header",
            "name": "Authentication"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "endpoint_access_forbidden",
          "message": "max.mustermann@ibm.com is neither editor/admin of project b275be5f-10ff-47ee-bfc9-63f1ce5addbf nor allowlisted Service ID."
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "conflict",
          "message": "Document already exists."
        }
      ]
    }

Retrieve a hardware specification.

Returns a hardware specification of a given ID.

  1. To retrieve a global hardware specification, project_id or space_id is not required.
  2. To retrieve a scoped hardware specification that is scoped to a project or a space, you need to specify either project_id or space_id.
GET /v2/hardware_specifications/{hardware_specification_guid}

Request

Path Parameters

  • The guid of the hardware specification.

    Example: a1da1d73-5eb5-4dfb-808e-174eb153c20e

Query Parameters

  • The guid of the project.

    Example: 92ae0e27-9b11-4de9-a646-d46ca3c183d4

  • The guid of the space.

    Example: 82ae0e27-9b11-4de9-a646-d46ca3c183d4

  • curl -X "GET"   "${api_domain}/v2/hardware_specifications/${hardware_specification_guid}?project_id=$project_id"   -H "Accept: application/json"   -H "Authorization: Bearer ${bearer_auth_token}"
    

Response

A hardware specification.

Status Code

  • Success. Returned the hardware specification. Format follows v2/assets.

  • Bad request. One of the fields has invalid format/content.

  • Unauthorized. No/Malformed authentication provided.

  • Forbidden. User is not allowed to perform the target operation.

Example responses
  • {
      "metadata": {
        "name": "my hardware specification",
        "description": "this is my hardware specification",
        "asset_type": "hardware_specification",
        "asset_id": "2d5191ba-ff9b-4b48-a852-948d49dd9210",
        "project_id": "b275be5f-10ff-47ee-bfc9-63f1ce5addbf",
        "space_id": "1fd6d4b5-d592-4de2-a3e6-ae53a42d75d0",
        "owner_id": "IBMid-310000SG2Y",
        "created_at": "2021-08-02T12:00:24.269Z",
        "updated_at": "2021-08-02T12:00:24.269Z",
        "href": "/v2/hardware_specifications/2d5191ba-ff9b-4b48-a852-948d49dd9210"
      },
      "entity": {
        "hardware_specification": {
          "nodes": {
            "cpu": {
              "units": "100m",
              "model": "string"
            },
            "mem": {
              "size": "8Gi"
            },
            "gpu": {
              "num_gpu": 2,
              "name": "v100",
              "gpu_profile": "generic",
              "mig_profile": "N/A"
            },
            "node_selector": [
              {
                "label_name": "custom_lable_name",
                "label_value": "custom_lable_value"
              }
            ],
            "num_nodes": 1,
            "num_drivers": 1,
            "drivers": {
              "cpu": {
                "units": "100m",
                "model": "string"
              },
              "mem": {
                "size": "8Gi"
              }
            },
            "worker_pool": {
              "id": 12345678990,
              "provider": "ibm"
            }
          }
        }
      }
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_type",
          "message": "The `project_id` field needs to be a uuid v4, but is 12345.",
          "target": {
            "type": "field",
            "name": "project_id"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_auth_token",
          "message": "The IAM bearer token is not valid.",
          "target": {
            "type": "header",
            "name": "Authentication"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "endpoint_access_forbidden",
          "message": "max.mustermann@ibm.com is neither editor/admin of project b275be5f-10ff-47ee-bfc9-63f1ce5addbf nor allowlisted Service ID."
        }
      ]
    }

Delete a hardware specification.

Deletes a hardware specification of a given ID.

Only scoped hardware specifications can be deleted through the API.

You need to specify either project_id or space_id.

DELETE /v2/hardware_specifications/{hardware_specification_guid}

Request

Path Parameters

  • The guid of the hardware specification.

    Example: a1da1d73-5eb5-4dfb-808e-174eb153c20e

Query Parameters

  • The guid of the project.

    Example: 92ae0e27-9b11-4de9-a646-d46ca3c183d4

  • The guid of the space.

    Example: 82ae0e27-9b11-4de9-a646-d46ca3c183d4

  • curl -X "DELETE"   "${api_domain}/v2/hardware_specifications/${hardware_specification_guid}?project_id=$project_id"   -H "Accept: application/json"   -H "Authorization: Bearer ${bearer_auth_token}"
    

Response

Status Code

  • Success. The hardware specification is deleted.

  • Bad request. One of the fields has invalid format/content.

  • Unauthorized. No/Malformed authentication provided.

  • Forbidden. User is not allowed to perform the target operation.

Example responses
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_type",
          "message": "The `project_id` field needs to be a uuid v4, but is 12345.",
          "target": {
            "type": "field",
            "name": "project_id"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_auth_token",
          "message": "The IAM bearer token is not valid.",
          "target": {
            "type": "header",
            "name": "Authentication"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "endpoint_access_forbidden",
          "message": "max.mustermann@ibm.com is neither editor/admin of project b275be5f-10ff-47ee-bfc9-63f1ce5addbf nor allowlisted Service ID."
        }
      ]
    }

Update a hardware specification.

Updates a hardware specification of a given ID with the provided parameters.

Only scoped hardware specifications can be updated through the API.

PATCH /v2/hardware_specifications/{hardware_specification_guid}

Request

Path Parameters

  • The guid of the hardware specification.

    Example: a1da1d73-5eb5-4dfb-808e-174eb153c20e

Query Parameters

  • The guid of the project.

    Example: 92ae0e27-9b11-4de9-a646-d46ca3c183d4

Specification of changes.

Examples:

Update a hardware specification for nodes

{
  "/metadata/name": "my hardware specification",
  "/metadata/description": "this is my hardware specification",
  "/entity/hardware_specification/nodes/cpu/units": "100m",
  "/entity/hardware_specification/nodes/cpu/model": "string",
  "/entity/hardware_specification/nodes/mem/size": "8Gi",
  "/entity/hardware_specification/nodes/gpu/num_gpu": 2,
  "/entity/hardware_specification/nodes/gpu/name": "v100",
  "/entity/hardware_specification/nodes/num_nodes": 1,
  "/entity/hardware_specification/nodes/worker_pool/id": 12345678990,
  "/entity/hardware_specification/nodes/worker_pool/provider": "ibm"
}

Update a hardware specification for Spark

{
  "/metadata/name": "my hardware specification",
  "/metadata/description": "this is my hardware specification",
  "/entity/hardware_specification/spark/num_drivers": 1,
  "/entity/hardware_specification/spark/num_executors": 2,
  "/entity/hardware_specification/spark/driver/cpu/units": "100m",
  "/entity/hardware_specification/spark/driver/cpu/model": "string",
  "/entity/hardware_specification/spark/driver/mem/size": "8Gi",
  "/entity/hardware_specification/spark/executor/cpu/units": "100m",
  "/entity/hardware_specification/spark/executor/cpu/model": "string",
  "/entity/hardware_specification/spark/executor/mem/size": "8Gi"
}

Update a hardware specification for DataStage

{
  "/metadata/name": "my hardware specification",
  "/metadata/description": "this is my hardware specification",
  "/entity/hardware_specification/datastage/num_conductors": 1,
  "/entity/hardware_specification/datastage/num_computes": 2,
  "/entity/hardware_specification/datastage/conductor/cpu/units": "100m",
  "/entity/hardware_specification/datastage/conductor/cpu/model": "string",
  "/entity/hardware_specification/datastage/conductor/mem/size": "8Gi",
  "/entity/hardware_specification/datastage/compute/cpu/units": "100m",
  "/entity/hardware_specification/datastage/compute/cpu/model": "string",
  "/entity/hardware_specification/datastage/compute/mem/size": "8Gi",
  "/entity/hardware_specification/datastage/instance": "instance-1"
}
  • curl -X "PATCH"   "${api_domain}/v2/hardware_specifications/${hardware_specification_guid}?project_id=${project_id}"   -H "Accept: application/json"   -H "Content-Type: application/json"   -H "Authorization: Bearer ${bearer_auth_token}"   -d '{
      "/metadata/name": "my updated hardware specification",
      "/metadata/description": "this is my updated hardware specification.",
      "/entity/hardware_specification/nodes/cpu/units": "3"
    }'
    

Response

A hardware specification.

Status Code

  • Success. Updated the hardware specification.

  • Bad request. One of the fields has invalid format/content.

  • Unauthorized. No/Malformed authentication provided.

  • Forbidden. User is not allowed to perform the target operation.

Example responses
  • {
      "metadata": {
        "name": "my hardware specification",
        "description": "this is my hardware specification",
        "asset_type": "hardware_specification",
        "asset_id": "2d5191ba-ff9b-4b48-a852-948d49dd9210",
        "project_id": "b275be5f-10ff-47ee-bfc9-63f1ce5addbf",
        "space_id": "1fd6d4b5-d592-4de2-a3e6-ae53a42d75d0",
        "owner_id": "IBMid-310000SG2Y",
        "created_at": "2021-08-02T12:00:24.269Z",
        "updated_at": "2021-08-02T12:00:24.269Z",
        "href": "/v2/hardware_specifications/2d5191ba-ff9b-4b48-a852-948d49dd9210"
      },
      "entity": {
        "hardware_specification": {
          "nodes": {
            "cpu": {
              "units": "100m",
              "model": "string"
            },
            "mem": {
              "size": "8Gi"
            },
            "gpu": {
              "num_gpu": 2,
              "name": "v100",
              "gpu_profile": "generic",
              "mig_profile": "N/A"
            },
            "node_selector": [
              {
                "label_name": "custom_lable_name",
                "label_value": "custom_lable_value"
              }
            ],
            "num_nodes": 1,
            "num_drivers": 1,
            "drivers": {
              "cpu": {
                "units": "100m",
                "model": "string"
              },
              "mem": {
                "size": "8Gi"
              }
            },
            "worker_pool": {
              "id": 12345678990,
              "provider": "ibm"
            }
          }
        }
      }
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_type",
          "message": "The `project_id` field needs to be a uuid v4, but is 12345.",
          "target": {
            "type": "field",
            "name": "project_id"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_auth_token",
          "message": "The IAM bearer token is not valid.",
          "target": {
            "type": "header",
            "name": "Authentication"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "endpoint_access_forbidden",
          "message": "max.mustermann@ibm.com is neither editor/admin of project b275be5f-10ff-47ee-bfc9-63f1ce5addbf nor allowlisted Service ID."
        }
      ]
    }

List software specifications.

Returns a list of software specifications.

  1. If neither project_id nor space_id is given, it returns all base software specifications.
  2. If project_id or space_id is given, it returns all base and derived software specifications. In this case, you need to specify either project_id or space_id.
GET /v2/software_specifications

Request

Query Parameters

  • The guid of the space.

    Example: 82ae0e27-9b11-4de9-a646-d46ca3c183d4

  • The guid of the project.

    Example: 103d3fc4-2e46-4581-a23a-b4484e13519e

  • String of comma-separated package names that refers to the packages that a software specification should contain. If specified, each of the software specification in the returned list will contain all of the packages specified in the query.

    Example: pytorch,scikit-learn

  • The name of the software specification. If specified, each of the software specification in the returned list will have the specified name.

  • curl -X "GET"   "${api_domain}/v2/software_specifications"   -H "Accept: application/json"   -H "Authorization: Bearer ${bearer_auth_token}"
    

Response

A list of software specifications.

Status Code

  • Success. Returned a list of software specifications.

  • Bad request. One of the fields has invalid format/content.

  • Unauthorized. No/Malformed authentication provided.

  • Forbidden. User is not allowed to perform the target operation.

Example responses
  • {
      "total_results": 1,
      "resources": [
        {
          "metadata": {
            "name": "my software specification",
            "description": "this is my software specification",
            "asset_type": "software_specification",
            "asset_id": "45f12dfe-aa78-5b8d-9f38-0ee223c47309",
            "project_id": "b275be5f-10ff-47ee-bfc9-63f1ce5addbf",
            "space_id": "1fd6d4b5-d592-4de2-a3e6-ae53a42d75d0",
            "owner_id": "IBMid-310000SG2Y",
            "created_at": "2021-08-02T12:00:24.269Z",
            "updated_at": "2021-08-02T12:00:24.269Z",
            "href": "/v2/software_specifications/45f12dfe-aa78-5b8d-9f38-0ee223c47309"
          },
          "entity": {
            "software_specification": {
              "type": "derived",
              "display_name": "My Software Specification",
              "base_software_specification": {
                "guid": "ab9e1b80-f2ce-592c-a7d2-4f2344f77194"
              },
              "package_extensions": [
                {
                  "metadata": {
                    "name": "my package extension",
                    "description": "this is my package extension",
                    "asset_type": "package_extension",
                    "asset_id": "461db2c9-effb-4bfb-8319-f4acf8ba06a3",
                    "project_id": "b275be5f-10ff-47ee-bfc9-63f1ce5addbf",
                    "space_id": "1fd6d4b5-d592-4de2-a3e6-ae53a42d75d0",
                    "owner_id": "IBMid-310000SG2Y",
                    "created_at": "2021-08-02T12:00:24.269Z",
                    "updated_at": "2021-08-02T12:00:24.269Z"
                  },
                  "entity": {
                    "package_extension": {
                      "type": "conda_yml",
                      "interpreter": "mamba",
                      "object_key": "package_extension/Package_Extension_9GShiX8H0.yml"
                    }
                  }
                }
              ],
              "software_configuration": {
                "included_packages": [
                  {
                    "name": "ipython",
                    "version": "7.22.0"
                  }
                ],
                "platform": {
                  "name": "spark",
                  "version": 3.2
                },
                "language": {
                  "name": "python",
                  "version": 3.9
                }
              }
            }
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_type",
          "message": "The `project_id` field needs to be a uuid v4, but is 12345.",
          "target": {
            "type": "field",
            "name": "project_id"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_auth_token",
          "message": "The IAM bearer token is not valid.",
          "target": {
            "type": "header",
            "name": "Authentication"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "endpoint_access_forbidden",
          "message": "max.mustermann@ibm.com is neither editor/admin of project b275be5f-10ff-47ee-bfc9-63f1ce5addbf nor allowlisted Service ID."
        }
      ]
    }

Create a new software specification.

Returns a software specification created with provided parameters.

You need to specify either project_id or space_id.

The parameters name and base_software_specification are required in the request body.

You can customize the software specification by adding any number of package extensions.

POST /v2/software_specifications

Request

Query Parameters

  • The guid of the space.

    Example: 82ae0e27-9b11-4de9-a646-d46ca3c183d4

  • The guid of the project in which to create the software specification.

    Example: 103d3fc4-2e46-4581-a23a-b4484e13519e

Specification of the software specification to be created.

Examples:

Create a derived software specification

{
  "name": "my software specification",
  "description": "this is my software specification",
  "package_extensions": [
    {
      "guid": "b82b95df-fc3e-4273-98f7-473d62a03c2b"
    }
  ],
  "base_software_specification": {
    "guid": "ab9e1b80-f2ce-592c-a7d2-4f2344f77194"
  }
}
  • curl -X "POST"   "${api_domain}/v2/software_specifications?project_id=${project_id}"   -H "Accept: application/json"   -H "Content-Type: application/json"   -H "Authorization: Bearer ${bearer_auth_token}"   -d '{
      "name": "my software specification",
      "description": "this is my software specification",
      "base_software_specification": {
        "guid": "ab9e1b80-f2ce-592c-a7d2-4f2344f77194"
      }
    }'
    

Response

A software specification.

Status Code

  • Success. Created and returned a new software specification.

  • Bad request. One of the fields has invalid format/content.

  • Unauthorized. No/Malformed authentication provided.

  • Forbidden. User is not allowed to perform the target operation.

  • Conflict. Specification already exists with given name. Restriction applicable only for global specifications.

Example responses
  • {
      "metadata": {
        "name": "my software specification",
        "description": "this is my software specification",
        "asset_type": "software_specification",
        "asset_id": "45f12dfe-aa78-5b8d-9f38-0ee223c47309",
        "project_id": "b275be5f-10ff-47ee-bfc9-63f1ce5addbf",
        "space_id": "1fd6d4b5-d592-4de2-a3e6-ae53a42d75d0",
        "owner_id": "IBMid-310000SG2Y",
        "created_at": "2021-08-02T12:00:24.269Z",
        "updated_at": "2021-08-02T12:00:24.269Z",
        "href": "/v2/software_specifications/45f12dfe-aa78-5b8d-9f38-0ee223c47309"
      },
      "entity": {
        "software_specification": {
          "type": "derived",
          "display_name": "My Software Specification",
          "base_software_specification": {
            "guid": "ab9e1b80-f2ce-592c-a7d2-4f2344f77194"
          },
          "package_extensions": [
            {
              "metadata": {
                "name": "my package extension",
                "description": "this is my package extension",
                "asset_type": "package_extension",
                "asset_id": "461db2c9-effb-4bfb-8319-f4acf8ba06a3",
                "project_id": "b275be5f-10ff-47ee-bfc9-63f1ce5addbf",
                "space_id": "1fd6d4b5-d592-4de2-a3e6-ae53a42d75d0",
                "owner_id": "IBMid-310000SG2Y",
                "created_at": "2021-08-02T12:00:24.269Z",
                "updated_at": "2021-08-02T12:00:24.269Z"
              },
              "entity": {
                "package_extension": {
                  "type": "conda_yml",
                  "interpreter": "mamba",
                  "object_key": "package_extension/Package_Extension_9GShiX8H0.yml"
                }
              }
            }
          ],
          "software_configuration": {
            "included_packages": [
              {
                "name": "ipython",
                "version": "7.22.0"
              }
            ],
            "platform": {
              "name": "spark",
              "version": 3.2
            },
            "language": {
              "name": "python",
              "version": 3.9
            }
          }
        }
      }
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_type",
          "message": "The `project_id` field needs to be a uuid v4, but is 12345.",
          "target": {
            "type": "field",
            "name": "project_id"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_auth_token",
          "message": "The IAM bearer token is not valid.",
          "target": {
            "type": "header",
            "name": "Authentication"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "endpoint_access_forbidden",
          "message": "max.mustermann@ibm.com is neither editor/admin of project b275be5f-10ff-47ee-bfc9-63f1ce5addbf nor allowlisted Service ID."
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "conflict",
          "message": "Document already exists."
        }
      ]
    }

Update a software specification.

Updates a software specification of a given ID with the provided parameters.

Only derived software specifications can be updated through the API.

Updatable fields are name, description, display_name and package_extensions.

You need to specify either project_id or space_id.

PATCH /v2/software_specifications/{software_specification_guid}

Request

Path Parameters

  • A UUID v4 identifying the software specification.

    Example: c82b95df-fc3e-4273-98f7-473d62a03c2b

Query Parameters

  • The guid of the space.

    Example: 82ae0e27-9b11-4de9-a646-d46ca3c183d4

  • The guid of the project.

    Example: 103d3fc4-2e46-4581-a23a-b4484e13519e

Specification of the updates for a software specification.

Examples:

Update a software specification

{
  "/metadata/name": "my updated software specification",
  "/metadata/description": "this is my updated software specification.",
  "/entity/software_specification/display_name": "My Updated Software Specification.",
  "/entity/software_specification/package_extensions": [
    {
      "guid": "b82b95df-fc3e-4273-98f7-473d62a03c2b"
    }
  ]
}
  • curl -X "PATCH"   "${api_domain}/v2/software_specifications/${software_specification_guid}?project_id=${project_id}"   -H "Accept: application/json"   -H "Content-Type: application/json"   -H "Authorization: Bearer ${bearer_auth_token}"   -d '{
      "/metadata/name": "my updated software specification",
      "/metadata/description": "this is my updated software specification.",
      "/entity/software_specification/display_name": "My Updated Software Specification."
    }'
    

Response

Status Code

  • Success. Updated the software specification.

  • Bad request. One of the fields has invalid format/content.

  • Unauthorized. No/Malformed authentication provided.

  • Forbidden. User is not allowed to perform the target operation.

Example responses
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_type",
          "message": "The `project_id` field needs to be a uuid v4, but is 12345.",
          "target": {
            "type": "field",
            "name": "project_id"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_auth_token",
          "message": "The IAM bearer token is not valid.",
          "target": {
            "type": "header",
            "name": "Authentication"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "endpoint_access_forbidden",
          "message": "max.mustermann@ibm.com is neither editor/admin of project b275be5f-10ff-47ee-bfc9-63f1ce5addbf nor allowlisted Service ID."
        }
      ]
    }

Retrieve a software specification.

Returns a software specification of a given ID.

  1. To retrieve a base software specification, project_id or space_id is not required.
  2. To retrieve a derived software specification that is scoped to a project or a space, you need to specify either project_id or space_id. When a derived software specification is retrieved, the return value shows the software configuration inherited from the base software specification instead of the ID of the base software specification.
GET /v2/software_specifications/{software_specification_guid}

Request

Path Parameters

  • A UUID v4 identifying the software specification.

    Example: c82b95df-fc3e-4273-98f7-473d62a03c2b

Query Parameters

  • The guid of the space.

    Example: 82ae0e27-9b11-4de9-a646-d46ca3c183d4

  • The guid of the project.

    Example: 103d3fc4-2e46-4581-a23a-b4484e13519e

  • curl -X "GET"   "${api_domain}/v2/software_specifications/${software_specification_guid}?project_id=$project_id"   -H "Accept: application/json"   -H "Authorization: Bearer ${bearer_auth_token}"
    

Response

A software specification.

Status Code

  • Success. Returned the given software specification.

  • Bad request. One of the fields has invalid format/content.

  • Unauthorized. No/Malformed authentication provided.

  • Forbidden. User is not allowed to perform the target operation.

Example responses
  • {
      "metadata": {
        "name": "my software specification",
        "description": "this is my software specification",
        "asset_type": "software_specification",
        "asset_id": "45f12dfe-aa78-5b8d-9f38-0ee223c47309",
        "project_id": "b275be5f-10ff-47ee-bfc9-63f1ce5addbf",
        "space_id": "1fd6d4b5-d592-4de2-a3e6-ae53a42d75d0",
        "owner_id": "IBMid-310000SG2Y",
        "created_at": "2021-08-02T12:00:24.269Z",
        "updated_at": "2021-08-02T12:00:24.269Z",
        "href": "/v2/software_specifications/45f12dfe-aa78-5b8d-9f38-0ee223c47309"
      },
      "entity": {
        "software_specification": {
          "type": "derived",
          "display_name": "My Software Specification",
          "base_software_specification": {
            "guid": "ab9e1b80-f2ce-592c-a7d2-4f2344f77194"
          },
          "package_extensions": [
            {
              "metadata": {
                "name": "my package extension",
                "description": "this is my package extension",
                "asset_type": "package_extension",
                "asset_id": "461db2c9-effb-4bfb-8319-f4acf8ba06a3",
                "project_id": "b275be5f-10ff-47ee-bfc9-63f1ce5addbf",
                "space_id": "1fd6d4b5-d592-4de2-a3e6-ae53a42d75d0",
                "owner_id": "IBMid-310000SG2Y",
                "created_at": "2021-08-02T12:00:24.269Z",
                "updated_at": "2021-08-02T12:00:24.269Z"
              },
              "entity": {
                "package_extension": {
                  "type": "conda_yml",
                  "interpreter": "mamba",
                  "object_key": "package_extension/Package_Extension_9GShiX8H0.yml"
                }
              }
            }
          ],
          "software_configuration": {
            "included_packages": [
              {
                "name": "ipython",
                "version": "7.22.0"
              }
            ],
            "platform": {
              "name": "spark",
              "version": 3.2
            },
            "language": {
              "name": "python",
              "version": 3.9
            }
          }
        }
      }
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_type",
          "message": "The `project_id` field needs to be a uuid v4, but is 12345.",
          "target": {
            "type": "field",
            "name": "project_id"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_auth_token",
          "message": "The IAM bearer token is not valid.",
          "target": {
            "type": "header",
            "name": "Authentication"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "endpoint_access_forbidden",
          "message": "max.mustermann@ibm.com is neither editor/admin of project b275be5f-10ff-47ee-bfc9-63f1ce5addbf nor allowlisted Service ID."
        }
      ]
    }

Delete a software specification.

Deletes a software specification of a given ID.

Only derived software specifications can be deleted through the API.

You need to specify either project_id or space_id.

DELETE /v2/software_specifications/{software_specification_guid}

Request

Path Parameters

  • A UUID v4 identifying the software specification.

    Example: c82b95df-fc3e-4273-98f7-473d62a03c2b

Query Parameters

  • The guid of the space.

    Example: 82ae0e27-9b11-4de9-a646-d46ca3c183d4

  • The guid of the project. The deleted software specification must be scoped to the specified project.

    Example: 103d3fc4-2e46-4581-a23a-b4484e13519e

  • curl -X "DELETE"   "${api_domain}/v2/software_specifications/${software_specification_guid}?project_id=$project_id"   -H "Accept: application/json"   -H "Authorization: Bearer ${bearer_auth_token}"
    

Response

Status Code

  • Success. Deleted the software specification.

  • Bad request. One of the fields has invalid format/content.

  • Unauthorized. No/Malformed authentication provided.

  • Forbidden. User is not allowed to perform the target operation.

Example responses
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_type",
          "message": "The `project_id` field needs to be a uuid v4, but is 12345.",
          "target": {
            "type": "field",
            "name": "project_id"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_auth_token",
          "message": "The IAM bearer token is not valid.",
          "target": {
            "type": "header",
            "name": "Authentication"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "endpoint_access_forbidden",
          "message": "max.mustermann@ibm.com is neither editor/admin of project b275be5f-10ff-47ee-bfc9-63f1ce5addbf nor allowlisted Service ID."
        }
      ]
    }

Add a package extension to a software specification.

When successful, the specified package extension is appended to the array entity.software_specification.package_extensions. It is then the last package extension in that array.

You need to specify either project_id or space_id.

The request is valid if and only if:

  1. The software specification identified by software_specification_guid and the package extension identified by package_extension_guid exist in the same scope (either project or space).
  2. A successful POST /v2/package_extensions/{package_extension_guid}/upload_complete has been called before this request is initiated. I.e., the upload of the referenced pip_zip or conda_yml file has been indicated to have been successful.
  3. The user is authorized to update the software specification asset.
PUT /v2/software_specifications/{software_specification_guid}/package_extensions/{package_extension_guid}

Request

Path Parameters

  • A UUID v4 identifying the software specification.

    Example: c82b95df-fc3e-4273-98f7-473d62a03c2b

  • A UUID v4 identifying the package extension.

    Example: b82b95df-fc3e-4273-98f7-473d62a03c2b

Query Parameters

  • The guid of the space.

    Example: 82ae0e27-9b11-4de9-a646-d46ca3c183d4

  • The guid of the project.

    Example: 103d3fc4-2e46-4581-a23a-b4484e13519e

  • curl -X "PUT"   "${api_domain}/v2/software_specifications/${software_specification_guid}/package_extensions/${package_extension_guid}?project_id=$project_id"   -H "Authorization: Bearer ${bearer_auth_token}"
    

Response

Status Code

  • Success. Added the package extension to the software specification.

  • Bad request. One of the fields has invalid format/content.

  • Unauthorized. No/Malformed authentication provided.

  • Forbidden. User is not allowed to perform the target operation.

  • Conflict. The software specification already references this package extension.

Example responses
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_type",
          "message": "The `project_id` field needs to be a uuid v4, but is 12345.",
          "target": {
            "type": "field",
            "name": "project_id"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_auth_token",
          "message": "The IAM bearer token is not valid.",
          "target": {
            "type": "header",
            "name": "Authentication"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "endpoint_access_forbidden",
          "message": "max.mustermann@ibm.com is neither editor/admin of project b275be5f-10ff-47ee-bfc9-63f1ce5addbf nor allowlisted Service ID."
        }
      ]
    }

Remove a package extension from a software specification.

When successful, the specified package extension is removed from the array entity.software_specification.package_extensions.

You need to specify either project_id or space_id.

DELETE /v2/software_specifications/{software_specification_guid}/package_extensions/{package_extension_guid}

Request

Path Parameters

  • A UUID v4 identifying the software specification.

    Example: c82b95df-fc3e-4273-98f7-473d62a03c2b

  • A UUID v4 identifying the package extension.

    Example: b82b95df-fc3e-4273-98f7-473d62a03c2b

Query Parameters

  • The guid of the space.

    Example: 82ae0e27-9b11-4de9-a646-d46ca3c183d4

  • The guid of the project.

    Example: 103d3fc4-2e46-4581-a23a-b4484e13519e

  • curl -X "DELETE"   "${api_domain}/v2/software_specifications/${software_specification_guid}/package_extensions/${package_extension_guid}?project_id=$project_id"   -H "Authorization: Bearer ${bearer_auth_token}"
    

Response

Status Code

  • Success. Removed the package extension from the software specification.

  • Bad request. One of the fields has invalid format/content.

  • Unauthorized. No/Malformed authentication provided.

  • Forbidden. User is not allowed to perform the target operation.

Example responses
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_type",
          "message": "The `project_id` field needs to be a uuid v4, but is 12345.",
          "target": {
            "type": "field",
            "name": "project_id"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_auth_token",
          "message": "The IAM bearer token is not valid.",
          "target": {
            "type": "header",
            "name": "Authentication"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "endpoint_access_forbidden",
          "message": "max.mustermann@ibm.com is neither editor/admin of project b275be5f-10ff-47ee-bfc9-63f1ce5addbf nor allowlisted Service ID."
        }
      ]
    }

List package extensions.

Returns all package extensions within the given project or space. You need to specify either project_id or space_id.

GET /v2/package_extensions

Request

Query Parameters

  • The guid of the space.

    Example: 82ae0e27-9b11-4de9-a646-d46ca3c183d4

  • The guid of the project.

    Example: 103d3fc4-2e46-4581-a23a-b4484e13519e

  • Returning only those package extensions that have a particular name.

    Example: my Package Extension

  • Returning only those package extensions that have a particular type.

    Allowable values: [conda_yml,pip_zip]

    Example: conda_yml or pip_zip

  • curl -X "GET"   "${api_domain}/v2/package_extensions?project_id=${project_id}"   -H "Accept: application/json"   -H "Authorization: Bearer ${bearer_auth_token}"
    

Response

A list of package extensions.

Status Code

  • Success. Returned a list of Package Extensions.

  • Bad request. One of the fields has invalid format/content.

  • Unauthorized. No/Malformed authentication provided.

  • Forbidden. User is not allowed to perform the target operation.

Example responses
  • {
      "total_results": 1,
      "resources": [
        {
          "metadata": {
            "name": "my package extension",
            "description": "this is my package extension",
            "asset_type": "package_extension",
            "asset_id": "461db2c9-effb-4bfb-8319-f4acf8ba06a3",
            "project_id": "b275be5f-10ff-47ee-bfc9-63f1ce5addbf",
            "space_id": "1fd6d4b5-d592-4de2-a3e6-ae53a42d75d0",
            "owner_id": "IBMid-310000SG2Y",
            "created_at": "2021-08-02T12:00:24.269Z",
            "updated_at": "2021-08-02T12:00:24.269Z"
          },
          "entity": {
            "package_extension": {
              "type": "conda_yml",
              "interpreter": "mamba",
              "object_key": "package_extension/Package_Extension_9GShiX8H0.yml"
            }
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_type",
          "message": "The `project_id` field needs to be a uuid v4, but is 12345.",
          "target": {
            "type": "field",
            "name": "project_id"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_auth_token",
          "message": "The IAM bearer token is not valid.",
          "target": {
            "type": "header",
            "name": "Authentication"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "endpoint_access_forbidden",
          "message": "max.mustermann@ibm.com is neither editor/admin of project b275be5f-10ff-47ee-bfc9-63f1ce5addbf nor allowlisted Service ID."
        }
      ]
    }

Create a new package extension.

Returns the new package extension created in the given project or space. You need to specify either project_id or space_id.

For uploading the pip_zip or conda_yml, once you have created a package extension, the response also contains a pre-signed URL which allows you to upload its contents. When the upload is complete, you must call POST /v2/package_extensions/{package_extension_guid}/upload_complete to indicate to the API that the package extension is usable. If the /upload_complete returns successfully, the package extension is usable, i.e., can be assigned to a software specification.

POST /v2/package_extensions

Request

Query Parameters

  • The guid of the space.

    Example: 82ae0e27-9b11-4de9-a646-d46ca3c183d4

  • The guid of the project in which to create the package extension.

    Example: 103d3fc4-2e46-4581-a23a-b4484e13519e

Specification of the package extension to be created.

Examples:

Create a package extension

{
  "name": "my package extension",
  "description": "this is my package extension",
  "type": "conda_yml",
  "interpreter": "mamba"
}
  • curl -X "POST"   "${api_domain}/v2/package_extensions?project_id=${project_id}"   -H "Accept: application/json"   -H "Content-Type: application/json"   -H "Authorization: Bearer ${bearer_auth_token}"   -d '{
      "name": "my package extension",
      "description": "this is my package extension",
      "type": "conda_yml",
      "interpreter": "mamba"
    }'
    

Response

A package extension with signed URL.

Status Code

  • Success. Created and returned a new package extension.

  • Bad request. One of the fields has invalid format/content.

  • Unauthorized. No/Malformed authentication provided.

  • Forbidden. User is not allowed to perform the target operation.

Example responses
  • {
      "metadata": {
        "name": "my package extension",
        "description": "this is my package extension",
        "asset_type": "package_extension",
        "asset_id": "461db2c9-effb-4bfb-8319-f4acf8ba06a3",
        "project_id": "b275be5f-10ff-47ee-bfc9-63f1ce5addbf",
        "space_id": "1fd6d4b5-d592-4de2-a3e6-ae53a42d75d0",
        "owner_id": "IBMid-310000SG2Y",
        "created_at": "2021-08-02T12:00:24.269Z",
        "updated_at": "2021-08-02T12:00:24.269Z"
      },
      "entity": {
        "package_extension": {
          "type": "conda_yml",
          "interpreter": "mamba",
          "href": "/package_extension/Package_Extension_9GShiX8H0.yml"
        }
      }
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_type",
          "message": "The `project_id` field needs to be a uuid v4, but is 12345.",
          "target": {
            "type": "field",
            "name": "project_id"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_auth_token",
          "message": "The IAM bearer token is not valid.",
          "target": {
            "type": "header",
            "name": "Authentication"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "endpoint_access_forbidden",
          "message": "max.mustermann@ibm.com is neither editor/admin of project b275be5f-10ff-47ee-bfc9-63f1ce5addbf nor allowlisted Service ID."
        }
      ]
    }

Mark file upload complete.

Indicates that the upload of the library file attached to the package extension is complete and this package extension is usable. You need to specify either project_id or space_id.

POST /v2/package_extensions/{package_extension_guid}/upload_complete

Request

Path Parameters

  • A UUID v4 identifying the package extension.

    Example: b82b95df-fc3e-4273-98f7-473d62a03c2b

Query Parameters

  • The guid of the space.

    Example: 82ae0e27-9b11-4de9-a646-d46ca3c183d4

  • The guid of the project.

    Example: 103d3fc4-2e46-4581-a23a-b4484e13519e

  • curl -X "GET"   "${api_domain}/v2/package_extensions/${package_extension_guid}?project_id=${project_id}"   -H "Accept: application/json"   -H "Authorization: Bearer ${bearer_auth_token}"
    

Response

Status Code

  • Success. Marked the upload complete, the package extension is now usable.

  • Bad request. One of the fields has invalid format/content.

  • Unauthorized. No/Malformed authentication provided.

  • Forbidden. User is not allowed to perform the target operation.

Example responses
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_type",
          "message": "The `project_id` field needs to be a uuid v4, but is 12345.",
          "target": {
            "type": "field",
            "name": "project_id"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_auth_token",
          "message": "The IAM bearer token is not valid.",
          "target": {
            "type": "header",
            "name": "Authentication"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "endpoint_access_forbidden",
          "message": "max.mustermann@ibm.com is neither editor/admin of project b275be5f-10ff-47ee-bfc9-63f1ce5addbf nor allowlisted Service ID."
        }
      ]
    }

Update a package extension.

Updates a package extension of a given ID with the provided parameters.

PATCH /v2/package_extensions/{package_extension_guid}

Request

Path Parameters

  • A UUID v4 identifying the package extension.

    Example: b82b95df-fc3e-4273-98f7-473d62a03c2b

Query Parameters

  • The guid of the project.

    Example: 103d3fc4-2e46-4581-a23a-b4484e13519e

Specification of the updates for a package extension.

Examples:

Update a package extension

{
  "/metadata/name": "my updated package extension",
  "/metadata/description": "this is my updated package extension",
  "/entity/package_extension/type": "pip_zip"
}
  • curl -X "PATCH"   "${api_domain}/v2/package_extensions/${package_extension_guid}?project_id=${project_id}"   -H "Accept: application/json"   -H "Content-Type: application/json"   -H "Authorization: Bearer ${bearer_auth_token}"   -d '{
      "/metadata/name": "my updated package extension",
      "/metadata/description": "this is my updated package extension"
    }'
    

Response

Status Code

  • Success. Updated the pacakge extension.

  • Bad request. One of the fields has invalid format/content.

  • Unauthorized. No/Malformed authentication provided.

  • Forbidden. User is not allowed to perform the target operation.

Example responses
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_type",
          "message": "The `project_id` field needs to be a uuid v4, but is 12345.",
          "target": {
            "type": "field",
            "name": "project_id"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_auth_token",
          "message": "The IAM bearer token is not valid.",
          "target": {
            "type": "header",
            "name": "Authentication"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "endpoint_access_forbidden",
          "message": "max.mustermann@ibm.com is neither editor/admin of project b275be5f-10ff-47ee-bfc9-63f1ce5addbf nor allowlisted Service ID."
        }
      ]
    }

Retrieve a package extension.

Retrieves a package extension of a given ID. You need to specify either project_id or space_id.

GET /v2/package_extensions/{package_extension_guid}

Request

Path Parameters

  • A UUID v4 identifying the package extension.

    Example: b82b95df-fc3e-4273-98f7-473d62a03c2b

Query Parameters

  • The guid of the space.

    Example: 82ae0e27-9b11-4de9-a646-d46ca3c183d4

  • The guid of the project.

    Example: 103d3fc4-2e46-4581-a23a-b4484e13519e

  • curl -X "GET"   "${api_domain}/v2/package_extensions/${package_extension_guid}?project_id=${project_id}"   -H "Accept: application/json"   -H "Authorization: Bearer ${bearer_auth_token}"
    

Response

A package extension with object key and signed URL.

Status Code

  • Success. Returned the given package extension.

  • Bad request. One of the fields has invalid format/content.

  • Unauthorized. No/Malformed authentication provided.

  • Forbidden. User is not allowed to perform the target operation.

Example responses
  • {
      "metadata": {
        "name": "my package extension",
        "description": "this is my package extension",
        "asset_type": "package_extension",
        "asset_id": "461db2c9-effb-4bfb-8319-f4acf8ba06a3",
        "project_id": "b275be5f-10ff-47ee-bfc9-63f1ce5addbf",
        "space_id": "1fd6d4b5-d592-4de2-a3e6-ae53a42d75d0",
        "owner_id": "IBMid-310000SG2Y",
        "created_at": "2021-08-02T12:00:24.269Z",
        "updated_at": "2021-08-02T12:00:24.269Z"
      },
      "entity": {
        "package_extension": {
          "type": "conda_yml",
          "interpreter": "mamba",
          "object_key": "package_extension/Package_Extension_9GShiX8H0.yml",
          "href": "/package_extension/Package_Extension_9GShiX8H0.yml"
        }
      }
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_type",
          "message": "The `project_id` field needs to be a uuid v4, but is 12345.",
          "target": {
            "type": "field",
            "name": "project_id"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_auth_token",
          "message": "The IAM bearer token is not valid.",
          "target": {
            "type": "header",
            "name": "Authentication"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "endpoint_access_forbidden",
          "message": "max.mustermann@ibm.com is neither editor/admin of project b275be5f-10ff-47ee-bfc9-63f1ce5addbf nor allowlisted Service ID."
        }
      ]
    }

Delete a package extension.

Deletes a package extension of a given ID. You need to specify either project_id or space_id.

DELETE /v2/package_extensions/{package_extension_guid}

Request

Path Parameters

  • A UUID v4 identifying the package extension.

    Example: b82b95df-fc3e-4273-98f7-473d62a03c2b

Query Parameters

  • The guid of the space.

    Example: 82ae0e27-9b11-4de9-a646-d46ca3c183d4

  • The guid of the project.

    Example: 103d3fc4-2e46-4581-a23a-b4484e13519e

  • curl -X "DELETE"   "${api_domain}/v2/package_extensions/${package_extension_guid}?project_id=${project_id}"   -H "Authorization: Bearer ${bearer_auth_token}"
    

Response

Status Code

  • Success. Deleted the package extension.

  • Bad request. One of the fields has invalid format/content.

  • Unauthorized. No/Malformed authentication provided.

  • Forbidden. User is not allowed to perform the target operation.

Example responses
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_type",
          "message": "The `project_id` field needs to be a uuid v4, but is 12345.",
          "target": {
            "type": "field",
            "name": "project_id"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "invalid_auth_token",
          "message": "The IAM bearer token is not valid.",
          "target": {
            "type": "header",
            "name": "Authentication"
          }
        }
      ]
    }
  • {
      "trace": "b12692e1-8582-4628-88ca-7a13fefb73e2",
      "errors": [
        {
          "code": "endpoint_access_forbidden",
          "message": "max.mustermann@ibm.com is neither editor/admin of project b275be5f-10ff-47ee-bfc9-63f1ce5addbf nor allowlisted Service ID."
        }
      ]
    }

Archive the asset container

Archive the assets database of the asset container.

Archiving the assets database of not used asset containers helps saving storage and computing resources of the database, therefore reduce the footprint of CAMS.The information stored in the archived asset containers will not be accessible until the asset containers are restored.

POST /v2/asset_containers/archive

Request

Query Parameters

  • You must provide either a catalog id, a project id, or a space id, but not more than one

  • You must provide either a catalog id, a project id, or a space id, but not more than one

  • You must provide either a catalog id, a project id, or a space id, but not more than one

Archive request

Response

Status Code

  • Accepted

  • Bad Request

  • Unauthorized

  • Forbidden

  • Internal Server Error

No Sample Response

This method does not specify any sample responses.

Get archive information of the asset container

Get archive information of the asset container.

GET /v2/asset_containers/archive_info

Request

Query Parameters

  • You must provide either a catalog id, a project id, or a space id, but not more than one

  • You must provide either a catalog id, a project id, or a space id, but not more than one

  • You must provide either a catalog id, a project id, or a space id, but not more than one

Response

Status Code

  • OK

  • Bad Request

  • Unauthorized

  • Forbidden

  • Internal Server Error

No Sample Response

This method does not specify any sample responses.

Get configurations

Get the configurations of a catalog/project/space.

GET /v2/asset_containers/configurations

Request

Query Parameters

  • You must provide either a catalog id, a project id, or a space id, but not more than one

  • You must provide either a catalog id, a project id, or a space id, but not more than one

  • You must provide either a catalog id, a project id, or a space id, but not more than one

Response

Status Code

  • OK

  • Bad Request

  • Unauthorized

  • Forbidden

  • Not Found

No Sample Response

This method does not specify any sample responses.

Replace or create configurations

Replace the configurations of a catalog/project/space or create the configurations if they do not exist.

PUT /v2/asset_containers/configurations

Request

Query Parameters

  • You must provide either a catalog id, a project id, or a space id, but not more than one

  • You must provide either a catalog id, a project id, or a space id, but not more than one

  • You must provide either a catalog id, a project id, or a space id, but not more than one

Configurations

Response

Status Code

  • OK

  • Bad Request

  • Unauthorized

  • Forbidden

  • Internal Server Error

No Sample Response

This method does not specify any sample responses.

Restore the asset container

Restore the assets database of the archived asset container. Only successfully archived asset container can be restored.

POST /v2/asset_containers/restore

Request

Query Parameters

  • You must provide either a catalog id, a project id, or a space id, but not more than one

  • You must provide either a catalog id, a project id, or a space id, but not more than one

  • You must provide either a catalog id, a project id, or a space id, but not more than one

Response

Status Code

  • OK

  • Accepted

  • Bad Request

  • Unauthorized

  • Forbidden

  • Internal Server Error

No Sample Response

This method does not specify any sample responses.

List all asset lists defined for an account

Retrieve a paginated list of asset lists defined for an account.

GET /v2/asset_lists

Request

Query Parameters

  • Query to retrieve a paginated list of assetlist metadata and asset metadata of assetlists based on masking conditions, for which the request user has permission to view.

    Search query in Common Expression Language, with special characters encoded. For example, & is %26.

    Examples of query parameters:
    * id
    * type
    * state
    * access_control.owner
    * created_at
    * last_updated_at

    Possible values: 1 ≤ length ≤ 1024, Value must match regular expression ^[\w\.,:$%&=|\(\)\s\-\_\^"]+$

    Example: created_at%3E%3D%222023-08-23T21%3A10%3A40Z%22%26%26limit%3D10%26%26archived%3D%22false%22

  • Start token for pagination

    Possible values: 1 ≤ length ≤ 512, Value must match regular expression ^[\w\.,:$&\(\)\s\-\_\^"]+$

  • Search result limit

    Possible values: 1 ≤ value ≤ 200

    Default: 200

    Example: 10

  • This parameter can be repeated to add additional sort fields.

    Default: null

    Examples of sort fields (these are case insensitive):

    • created_at
    • -created_at
    • last_updated_at
    • -last_updated_at

    Possible values: 1 ≤ length ≤ 1024, Value must match regular expression ^[\w\.,:$&\(\)\s\-\_\^"]+$

  • curl --request GET --url '{url}/v2/asset_lists' --header 'authorization: Bearer {access_token}' --header 'accept: application/json'

Response

The Asset list collection response API model.

Status Code

  • OK

  • Bad Request

  • Unauthorized

  • Forbidden

  • Internal Server Error

Example responses
  • {
      "limit": 200,
      "total_count": 1,
      "first": {
        "href": "https://api.dataplatform.cloud.ibm.com/v2/asset_lists"
      },
      "next": {
        "href": "https://api.dataplatform.cloud.ibm.com/v2/asset_lists?start=start_token",
        "start": "start_token"
      },
      "asset_lists": [
        {
          "name": "my_order",
          "description": "Order of multiple items",
          "type": "order",
          "state": "default_state",
          "id": "3204c622-dcb8-4728-869f-484b6ac73dff",
          "asset": {
            "id": "701f4af4-679c-42d1-80b5-0de5796a7514",
            "type": "ibm_data_product_version",
            "container": {
              "id": "71993ab5-3374-4355-8a38-fc4c32debc00",
              "type": "catalog"
            }
          },
          "access_control": {
            "owner": "userId",
            "bss_account_id": "bss_account_id"
          },
          "created_at": "2023-09-17T23:19:08Z",
          "last_updated_at": "2023-09-17T23:19:08Z",
          "last_updated_by": "userId"
        }
      ]
    }

Create a new asset list

Use this API to creates a new asset list.

If the state is not specified, the asset list will be created in DEFAULT state.
The list may be created with items, or without items.
The list will be owned by the request user.

POST /v2/asset_lists

Request

The asset list for creation.

Examples:

Example REST body for asset list creation of type ORDER.

{
  "name": "my_order",
  "description": "Order of multiple items",
  "type": "order",
  "items": [
    {
      "asset": {
        "id": "8509d09e-b3d0-4e8b-9682-726a7b95f69a",
        "type": "data_asset",
        "container": {
          "id": "71993ab5-3374-4355-8a38-fc4c32debc00",
          "type": "catalog"
        }
      },
      "properties": {
        "my_property_1": "Value 1",
        "my_property_2": "Value 2"
      }
    },
    {
      "asset": {
        "id": "8509d09e-b3d0-4e8b-9682-726a7b95f69b",
        "type": "data_asset",
        "container": {
          "id": "71993ab5-3374-4355-8a38-fc4c32debc00",
          "type": "catalog"
        }
      },
      "properties": {
        "my_property_1": "Value 1",
        "my_property_map": {
          "my_property_map_key": "Value 2"
        }
      }
    }
  ]
}
  • curl --request POST --url '{url}/v2/asset_lists' --header 'accept: application/json' --header 'authorization: Bearer {access_token}' --header 'content-type: application/json' --data '{"name": "my_order","description": "Order of multiple items","items": [{"asset": {"metadata": {"id": "8509d09e-b3d0-4e8b-9682-726a7b95f69a","type": "data_asset","container": {"id": "71993ab5-3374-4355-8a38-fc4c32debc00","type": "catalog"}}},"properties": {"my_property_1": "Value 1","my_property_2": "Value 2"}},{"asset": {"metadata": {"id": "8509d09e-b3d0-4e8b-9682-726a7b95f69b","type": "data_asset","container": {"id": "71993ab5-3374-4355-8a38-fc4c32debc00","type": "catalog"}}},"properties": {"my_property_1": "Value 1","my_property_map": {"my_property_map_key": "Value 2"}}}],"type": "order"}'

Response

The Asset list summary API model for retrieval.

Status Code

  • Created

  • Bad Request

  • Unauthorized

  • Forbidden

  • Conflict

  • Too Many Requests

  • Internal Server Error

Example responses
  • {
      "name": "my_order",
      "description": "Order of multiple items",
      "type": "order",
      "state": "default_state",
      "id": "3204c622-dcb8-4728-869f-484b6ac73dff",
      "asset": {
        "id": "701f4af4-679c-42d1-80b5-0de5796a7514",
        "type": "ibm_data_product_version",
        "container": {
          "id": "71993ab5-3374-4355-8a38-fc4c32debc00",
          "type": "catalog"
        }
      },
      "access_control": {
        "owner": "userId",
        "bss_account_id": "bss_account_id"
      },
      "created_at": "2023-09-17T23:19:08Z",
      "last_updated_at": "2023-09-17T23:19:08Z",
      "last_updated_by": "userId"
    }

Delete asset lists

Deletes asset lists based on a query in Common Expression Language format.

DELETE /v2/asset_lists

Request

Query Parameters

  • Query to delete asset lists for which the request user has permission.

    Search query in Common Expression Language, with special characters encoded. For example, & is %26.

    Examples of query parameters:
    * id
    * type
    * state
    * access_control.owner
    * created_at
    * last_updated_at

    Possible values: 1 ≤ length ≤ 1024, Value must match regular expression ^[\w\.,:$%&=|\(\)\s\-\_\^"]+$

    Example: created_at%3E%3D%222023-08-23T21%3A10%3A40Z%22%26%26limit%3D10%26%26archived%3D%22false%22

  • curl --request DELETE --url '{url}/v2/asset_lists?query=created_at%3E%3D2023-08-23T21%3A10%3A40Z' --header 'accept: application/json' --header 'authorization: Bearer {access_token}'

Response

Status Code

  • No Content

  • Bad Request

  • Unauthorized

  • Forbidden

  • Not Found

  • Too Many Requests

  • Internal Server Error

No Sample Response

This method does not specify any sample responses.

Retrieve an asset list identified by ID

Retrieves the metadata of an asset list of a given identified by ID.

GET /v2/asset_lists/{asset_list_id}

Request

Path Parameters

  • Asset list id (GUID, or [type]_[userId])

    Possible values: length = 36, Value must match regular expression ^[\w\.,:$&\(\)\s\-\_\^"]+$

    Example: aaff9159-8ba4-4ae5-a9d7-3e59d5903d72

  • curl --request GET --url '{url}/v2/asset_lists/{asset_list_id}' --header 'authorization: Bearer {access_token}' --header 'accept: application/json'

Response

The Asset list summary API model for retrieval.

Status Code

  • OK

  • Bad Request

  • Unauthorized

  • Forbidden

  • Not Found

  • Internal Server Error

Example responses
  • {
      "name": "my_order",
      "description": "Order of multiple items",
      "type": "order",
      "state": "default_state",
      "id": "3204c622-dcb8-4728-869f-484b6ac73dff",
      "asset": {
        "id": "701f4af4-679c-42d1-80b5-0de5796a7514",
        "type": "ibm_data_product_version",
        "container": {
          "id": "71993ab5-3374-4355-8a38-fc4c32debc00",
          "type": "catalog"
        }
      },
      "access_control": {
        "owner": "userId",
        "bss_account_id": "bss_account_id"
      },
      "created_at": "2023-09-17T23:19:08Z",
      "last_updated_at": "2023-09-17T23:19:08Z",
      "last_updated_by": "userId"
    }

Delete an asset list identified by ID

Deletes an asset list identified by ID. The user must have permission to perform this action.

DELETE /v2/asset_lists/{asset_list_id}

Request

Path Parameters

  • Asset list id (GUID, or [type]_[userId])

    Possible values: length = 36, Value must match regular expression ^[\w\.,:$&\(\)\s\-\_\^"]+$

    Example: aaff9159-8ba4-4ae5-a9d7-3e59d5903d72

  • curl --request DELETE --url '{url}/v2/asset_lists/{asset_list_id}' --header 'accept: application/json' --header 'authorization: Bearer {access_token}'

Response

Status Code

  • No Content

  • Bad Request

  • Unauthorized

  • Forbidden

  • Not Found

  • Conflict

  • Too Many Requests

  • Internal Server Error

No Sample Response

This method does not specify any sample responses.

Update the metadata of an asset list

Use this API to update the asset list metadata. Specify patch operations using http://jsonpatch.com/ syntax.

Fields that can be patched:

  • /name
  • /description
  • /type
  • /state (Approvers and Functional users only)
  • /message (Approvers and Functional users only)
  • /properties (Functional users)
  • /archived (Functional users and Asset Owner only)

Note: The ownership cannot be modified after creation.

PATCH /v2/asset_lists/{asset_list_id}

Request

Path Parameters

  • Asset list id (GUID, or [type]_[userId])

    Possible values: length = 36, Value must match regular expression ^[\w\.,:$&\(\)\s\-\_\^"]+$

    Example: aaff9159-8ba4-4ae5-a9d7-3e59d5903d72

JSON array of patch operations as defined in RFC 6902. See http://jsonpatch.com/ for more info.

Examples:

Example REST body for asset list update of the state parameter.

[
  {
    "op": "replace",
    "path": "/state",
    "value": "confirmed"
  }
]
  • curl --request PATCH --url '{url}/v2/asset_lists/{asset_list_id}' --header 'accept: application/json' --header 'authorization: Bearer {access_token}' --header 'content-type: application/json' --data '[{"op": "replace","path": "/state","value": "confirmed"}]'

Response

The Asset list summary API model for retrieval.

Status Code

  • OK

  • Bad Request

  • Unauthorized

  • Forbidden

  • Conflict

  • Unsupported Media Type

  • Internal Server Error

Example responses
  • {
      "name": "my_order",
      "description": "Order of multiple items",
      "type": "order",
      "state": "default_state",
      "id": "3204c622-dcb8-4728-869f-484b6ac73dff",
      "asset": {
        "id": "701f4af4-679c-42d1-80b5-0de5796a7514",
        "type": "ibm_data_product_version",
        "container": {
          "id": "71993ab5-3374-4355-8a38-fc4c32debc00",
          "type": "catalog"
        }
      },
      "access_control": {
        "owner": "userId",
        "bss_account_id": "bss_account_id"
      },
      "created_at": "2023-09-17T23:19:08Z",
      "last_updated_at": "2023-09-17T23:19:08Z",
      "last_updated_by": "userId"
    }

List the items of an asset list identified by ID

Retrieves the list items of an asset list identified by ID.

GET /v2/asset_lists/{asset_list_id}/items