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 herehttps://cloud.ibm.com/apidocs/data-ai-common-core-cpd. For more information, see these resources: - Documentation for IBM watsonx as a Servicehttps://dataplatform.cloud.ibm.com/docs/content/wsj/getting-started/welcome-main.html?context=wx - Documentation for Cloud Pak for Data as a Servicehttps://dataplatform.cloud.ibm.com/docs/content/wsj/getting-started/welcome-main.html?context=cpdaas 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: - Dallas: https://api.dataplatform.cloud.ibm.com - Frankfurt: https://api.eu-de.dataplatform.cloud.ibm.com - London: https://api.eu-gb.dataplatform.cloud.ibm.com - Tokyo: https://api.jp-tok.dataplatform.cloud.ibm.com - Sydney: https://api.au-syd.dai.cloud.ibm.com - Toronto: https://api.ca-tor.dai.cloud.ibm.com Authentication Before you can call a common core API you must first create an IAMhttps://cloud.ibm.com/docs/account?topic=account-iamoverview 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 Cloudhttps://cloud.ibm.com/ 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 keyshttps://cloud.ibm.com/docs/account?topic=account-manapikey documentation page. 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 'granttype=urn:ibm:params:oauth:grant-type:apikey&apikey=MYAPIKEY' Response json { "accesstoken": "eyJhbGciOiJIUz......sgrKIi8hdFs", "refreshtoken": "SPrXw5tBE3......KBQ+luWQVY=", "tokentype": "Bearer", "expiresin": 3600, "expiration": 1473188353 } 4. Use the value of the accesstoken property for your API calls. Set the accesstoken value as the authorization header parameter for requests to the APIs. The format is Authorization: Bearer Method Path Summary POST /v2/asset_containers/archive Archive the asset container GET /v2/asset_containers/archive_info Get archive information of the asset container GET /v2/asset_containers/configurations Get configurations PUT /v2/asset_containers/configurations Replace or create configurations POST /v2/asset_containers/restore Restore the asset container GET /v2/asset_lists List all asset lists defined for an account POST /v2/asset_lists Create a new asset list DELETE /v2/asset_lists Delete asset lists GET /v2/asset_lists/{asset_list_id} Retrieve an asset list identified by ID DELETE /v2/asset_lists/{asset_list_id} Delete an asset list identified by ID PATCH /v2/asset_lists/{asset_list_id} Update the metadata of an asset list GET /v2/asset_lists/{asset_list_id}/items List the items of an asset list identified by ID GET /v2/asset_lists/{asset_list_id}/items/{asset_list_item_id} Retrieve an item in an asset list PATCH /v2/asset_lists/{asset_list_id}/items/{asset_list_item_id} Update an asset list item GET /v2/asset_relationship_types Searches for relationship types POST /v2/asset_relationship_types Creates an asset relationship type POST /v2/asset_relationship_types/search_ends Searches for relationship type ends POST /v2/asset_relationship_types/search_used_ends Finds relationship types that are used by an asset, column or governance artifact DELETE /v2/asset_relationship_types/{relationship_type_id} deleteRelationshipType PATCH /v2/asset_relationship_types/{relationship_type_id} Patches a relationship type GET /v2/asset_types List all asset types defined for an account, catalog, project or space. POST /v2/asset_types Creates an asset type in an account, catalog, project or space. GET /v2/asset_types/{type_name} Retrieves an asset type of a given name. PUT /v2/asset_types/{type_name} Replace an asset type DELETE /v2/asset_types/{type_name} Deletes an asset type GET /v2/asset_types/{type_name}/relationships Finds relationship types for an asset type POST /v2/asset_types/{type_name}/search Search for asset metadata within assets of the specified type GET /v2/asset_types/{type_name}/status Get the status of an account scope or global scope asset type. POST /v2/assets Create an asset GET /v2/assets/bulk Get one or more assets. DELETE /v2/assets/bulk Marks existing assets for delete POST /v2/assets/bulk_copy Copies one or more assets and, if deep copy option is on, their related assets from a source container to a target container. POST /v2/assets/bulk_create Create one or more assets. POST /v2/assets/bulk_patch Patch one or more assets. GET /v2/assets/copy_status/{copy_task_id} Gets the status of asset copy operation POST /v2/assets/create_object_url Create a PUT signed url for an object or a file GET /v2/assets/deepcopy/{deep_copy_task_id} Gets the status of a deep copy operation POST /v2/assets/duplicates/bulk_search Bulk search duplicate assets POST /v2/assets/duplicates/search Search duplicate assets GET /v2/assets/ibm_data_source Get an ibm_data_source asset POST /v2/assets/publish Publish an asset from a project which is only referenced in that project GET /v2/assets/{asset_id} Get an asset DELETE /v2/assets/{asset_id} Marks an existing asset for delete PATCH /v2/assets/{asset_id} Update an asset POST /v2/assets/{asset_id}/clone Clone an asset PATCH /v2/assets/{asset_id}/collaborators Add/Update asset collaborators POST /v2/assets/{asset_id}/deepcopy Deep copies an asset and its related assets to a catalog, project, or space PUT /v2/assets/{asset_id}/owner Update the owner of an asset PUT /v2/assets/{asset_id}/perms Example Update Asset ROV Mode response. POST /v2/assets/{asset_id}/promote Promote an asset POST /v2/assets/{asset_id}/publish Publish an asset POST /v2/assets/get_relationships Finds related assets POST /v2/assets/search_relationships Searches for relationships POST /v2/assets/set_relationships Create asset relationships POST /v2/assets/unset_relationships Deletes asset relationships GET /v2/assets/{asset_id}/relationship_types Finds relationship types used by an asset GET /v2/assets/{asset_id}/relationships Finds related assets PUT /v2/assets/{asset_id}/relationships/{relationship_name} Create asset relationships DELETE /v2/assets/{asset_id}/relationships/{relationship_name} Deletes asset relationships HEAD /v2/assets/{asset_id}/relationships/{relationship_name} Determine if a relationship exists between an asset and a target asset or governance artifact POST /v2/assets/{asset_id}/relationships/{relationship_name}/exists Determine if a relationship exists between an asset and a target asset or governance artifact POST /v2/assets/{asset_id}/attachments Create an attachment GET /v2/assets/{asset_id}/attachments/{attachment_id} Get an attachment DELETE /v2/assets/{asset_id}/attachments/{attachment_id} Delete an attachment PATCH /v2/assets/{asset_id}/attachments/{attachment_id} Update attachment metadata POST /v2/assets/{asset_id}/attachments/{attachment_id}/complete Mark an attachment as transfer complete PATCH /v2/assets/{asset_id}/attachments/{attachment_id}/datasource_type Auto update attachment's datasource_type from connection asset GET /v2/assets/{asset_id}/attachments/{attachment_id}/resources Get resources info for an attachment PUT /v2/assets/{asset_id}/attachments/{attachment_id}/resources Increase resources for an attachment GET /v2/assets/{asset_id}/attributes List all attributes POST /v2/assets/{asset_id}/attributes Create an attribute GET /v2/assets/{asset_id}/attributes/{attribute_key} Get an attribute DELETE /v2/assets/{asset_id}/attributes/{attribute_key} Delete an attribute PATCH /v2/assets/{asset_id}/attributes/{attribute_key} Update attributes GET /v2/assets/{asset_id}/conflicts Get asset document conflicts DELETE /v2/assets/{asset_id}/conflicts Delete asset document conflicts GET /v2/assets/{asset_id}/images Get the image of asset PUT /v2/assets/{asset_id}/images Upload an image for asset DELETE /v2/assets/{asset_id}/images/{image_id} Delete the image of asset GET /v2/assets/{asset_id}/notes Get asset or column notes POST /v2/assets/{asset_id}/notes Create notes on an asset GET /v2/assets/{asset_id}/notes/{note_id} Get an asset or column note DELETE /v2/assets/{asset_id}/notes/{note_id} Delete an asset or a column note PATCH /v2/assets/{asset_id}/notes/{note_id} Update an asset or column note GET /v2/assets/{asset_id}/ratings Get ratings of an asset POST /v2/assets/{asset_id}/ratings Rate an asset GET /v2/assets/{asset_id}/ratings/stats Get the count of each rating value for the specified asset DELETE /v2/assets/{asset_id}/ratings/{asset_rating_id} Delete an asset rating PATCH /v2/assets/{asset_id}/ratings/{asset_rating_id} Use this API to update an asset rating. GET /v2/assets/{asset_id}/revisions Get a list of revisions for an asset POST /v2/assets/{asset_id}/revisions Commit a revision of an asset DELETE /v2/assets/{asset_id}/revisions Delete a revision GET /v2/catalogs List all catalogs for a specific account POST /v2/catalogs Create a catalog GET /v2/catalogs/default Retrieve the default catalog POST /v2/catalogs/default Create the default catalog POST /v2/catalogs/default/rehome Rehome one or more synced assets. GET /v2/catalogs/default/rehome/status Monitor status of rehome task GET /v2/catalogs/{catalog_id} Get a catalog by catalog ID DELETE /v2/catalogs/{catalog_id} Delete a catalog by catalog ID PATCH /v2/catalogs/{catalog_id} Update catalog GET /v2/catalogs/{catalog_id}/properties List all properties of a catalog PATCH /v2/catalogs/{catalog_id}/properties Update catalog properties GET /v2/catalogs/{catalog_id}/properties/{property_key} Get a single property in a catalog PATCH /v2/catalogs/{catalog_id}/reconfigure Update catalog connections GET /v2/catalogs/{catalog_id}/state Get the catalog state POST /v2/catalogs/export_assets Export as a zip file containing appropriate csv files for the selected assets POST /v2/catalogs/import_assets Process an import asset POST /v2/catalogs/temporary_credentials Request temporary security credentials GET /v2/catalogs/{catalog_id}/members List all members of the catalog POST /v2/catalogs/{catalog_id}/members Add members to a catalog DELETE /v2/catalogs/{catalog_id}/members/bulk Delete members from a catalog POST /v2/data_assets Create a data asset GET /v2/data_assets/{data_asset_id} Get a data asset GET /v2/data_assets/{data_asset_id}/columns Get columns of a data asset POST /v2/folder_assets Create a folder asset GET /v2/folder_assets/{asset_id} Get a folder asset GET /v2/folder_assets/{asset_id}/contents Get a signed URL of an item to be downloaded GET /v2/trashed_assets List all assets in the trash (Marked for delete) GET /v2/trashed_assets/count Get count of all assets in the trash (Marked for delete) DELETE /v2/trashed_assets/purge_all Delete all assets from trash GET /v2/trashed_assets/{asset_id} Get a soft-deleted object from trash DELETE /v2/trashed_assets/{asset_id} Delete an asset from the trash POST /v2/trashed_assets/{asset_id}/restore Restore an asset from the trash GET /v2/connections List defined connections POST /v2/connections Define connection GET /v2/connections/{connection_id} Get connection DELETE /v2/connections/{connection_id} Delete connection PATCH /v2/connections/{connection_id} Update connection POST /v2/connections/assets Discover assets GET /v2/connections/{connection_id}/assets Discover assets GET /v2/connections/assets/{data_asset_id} Discover data asset GET /v2/connections/{connection_id}/actions List actions PUT /v2/connections/{connection_id}/actions/{action_name} Perform action GET /v2/connections/files/{file_name} Download a custom JDBC driver jar file POST /v2/connections/files/{file_name} Upload a custom JDBC driver jar file (deprecated - use /v2/connections/streamed_files instead) DELETE /v2/connections/files/{file_name} Delete a custom JDBC driver jar file GET /v2/connections/files List custom JDBC drivers jar files GET /v2/datasource_types List defined types of data sources POST /v2/datasource_types Define data source type GET /v2/datasource_types/{datasource_type} Get details for type of data source DELETE /v2/datasource_types/{datasource_type} Delete data source type PATCH /v2/datasource_types/{datasource_type} Update datasource type GET /v2/environments List environments. POST /v2/environments Create a new environment. GET /v2/environments/{environment_guid} Retrieve an environment. DELETE /v2/environments/{environment_guid} Delete an environment. PATCH /v2/environments/{environment_guid} Update an environment. GET /v2/hardware_specifications List hardware specifications. POST /v2/hardware_specifications Create a new hardware specification. GET /v2/hardware_specifications/{hardware_specification_guid} Retrieve a hardware specification. DELETE /v2/hardware_specifications/{hardware_specification_guid} Delete a hardware specification. PATCH /v2/hardware_specifications/{hardware_specification_guid} Update a hardware specification. GET /v2/software_specifications List software specifications. POST /v2/software_specifications Create a new software specification. PATCH /v2/software_specifications/{software_specification_guid} Update a software specification. GET /v2/software_specifications/{software_specification_guid} Retrieve a software specification. DELETE /v2/software_specifications/{software_specification_guid} Delete a software specification. PUT /v2/software_specifications/{software_specification_guid}/package_extensions/{package_extension_guid} Add a package extension to a software specification. DELETE /v2/software_specifications/{software_specification_guid}/package_extensions/{package_extension_guid} Remove a package extension from a software specification. GET /v2/package_extensions List package extensions. POST /v2/package_extensions Create a new package extension. POST /v2/package_extensions/{package_extension_guid}/upload_complete Mark file upload complete. PATCH /v2/package_extensions/{package_extension_guid} Update a package extension. GET /v2/package_extensions/{package_extension_guid} Retrieve a package extension. DELETE /v2/package_extensions/{package_extension_guid} Delete a package extension. POST /v3/search/update_by_query A update operation allowing you to update artifacts based on a simple query. GET /v3/search Execute a query based on the Lucene Syntax POST /v3/search Structured search query conforming to the Elasticsearch Domain Specific Language. GET /v3/search/search_facet This API will return all available pre search filters GET /v2/jobs Get list of jobs under a project or a space. POST /v2/jobs Create a new job. GET /v2/jobs/{job_id} Get the information of job identified by the ID. DELETE /v2/jobs/{job_id} Delete a specific job. PATCH /v2/jobs/{job_id} Update information of a job. GET /v2/jobs/serving_name/{serving_name} Get the availability of a given serving_name GET /v2/jobs/{job_id}/runs Get list of runs of a job. POST /v2/jobs/{job_id}/runs Start a run for a job. GET /v2/jobs/{job_id}/runs/{run_id} Get a specific run of a job. DELETE /v2/jobs/{job_id}/runs/{run_id} Delete a run. GET /v2/jobs/{job_id}/runs/{run_id}/logs Retrieve runtime log of a run. POST /v2/jobs/{job_id}/runs/{run_id}/cancel Cancel a run. POST /v2/jobs/{job_id}/runs/{run_id}/pause Pause a run. POST /v2/jobs/{job_id}/runs/{run_id}/resume Resume a run. GET /v2/projects List projects GET /v2/projects/total Get project total GET /v2/projects/{project_id} Get project PATCH /v2/projects/{project_id} Update project GET /v2/projects/{project_id}/members List members POST /v2/projects/{project_id}/members Create members DELETE /v2/projects/{project_id}/members Delete members PATCH /v2/projects/{project_id}/members Update members GET /v2/projects/{project_id}/members/{user_name} Get member DELETE /v2/projects/{project_id}/members/{user_name} Delete member PATCH /v2/projects/{project_id}/storage/properties Update project storage properties GET /v2/projects/{project_id}/tags List tags POST /v2/projects/{project_id}/tags Create tags DELETE /v2/projects/{project_id}/tags Delete tags PATCH /v2/projects/{project_id}/tags Update tags POST /v2/projects/{project_id}/tags/{tag_name} Create tag DELETE /v2/projects/{project_id}/tags/{tag_name} Delete tag GET /v2/projects/{project_id}/settings/audit_events Get audit events settings PUT /v2/projects/{project_id}/settings/audit_events Update audit events settings GET /v2/projects/{project_id}/settings/access_restrictions Get access restrictions settings PUT /v2/projects/{project_id}/settings/access_restrictions Update access restrictions settings GET /v2/projects/{project_id}/settings/folders Get folders settings PUT /v2/projects/{project_id}/settings/folders Update folders settings GET /v2/projects/{project_id}/integrations/jupyterlab Get JupyterLab integration PUT /v2/projects/{project_id}/integrations/jupyterlab Update JupyterLab integration DELETE /v2/projects/{project_id}/integrations/jupyterlab Delete JupyterLab integration GET /v2/projects/{project_id}/tokens List tokens POST /v2/projects/{project_id}/tokens Create token DELETE /v2/projects/{project_id}/tokens Revoke all tokens GET /v2/projects/{project_id}/tokens/{token_id} Get token DELETE /v2/projects/{project_id}/tokens/{token_id} Revoke token GET /v2/projects/tokens/introspect Introspect token POST /v2/spaces Create a new space GET /v2/spaces Retrieve the spaces GET /v2/spaces/{space_id} Retrieve the space DELETE /v2/spaces/{space_id} Delete the space PATCH /v2/spaces/{space_id} Update the space GET /v2/spaces/{space_id}/members Retrieve the space members POST /v2/spaces/{space_id}/members Add a member to space GET /v2/spaces/{space_id}/members/{member_id} Retrieve the space member information DELETE /v2/spaces/{space_id}/members/{member_id} Remove the space member PATCH /v2/spaces/{space_id}/members/{member_id} Update the space member GET /v2/asset_exports Retrieve the asset exports POST /v2/asset_exports Start the asset export process DELETE /v2/asset_exports/{export_id} Cancel the asset export process GET /v2/asset_exports/{export_id} Retrieve the asset export GET /v2/asset_exports/{export_id}/content Download the asset export content GET /v2/asset_imports Retrieve the asset imports POST /v2/asset_imports Start the asset import process DELETE /v2/asset_imports/{import_id} Cancel the asset import process GET /v2/asset_imports/{import_id} Retrieve the asset import POST /transactional/v2/projects Create project as a transaction DELETE /transactional/v2/projects/{project_id} Delete project as a transaction GET /transactional/v2/projects/{project_id}/transactions/{transaction_id} Get status of import transaction