Clarifai V2 API

The V2 API from Clarifai — 297 operation(s) for v2.

Operations 466

Showing the first 250 of 466. The full set is in the contract, and via get_provider_operations.

GET /v2/annotation_filters List all the annotation filters. #
DELETE /v2/annotation_filters Delete one or more annotation filters in a single request. #
POST /v2/annotation_filters Add annotation filters. #
PATCH /v2/annotation_filters Patch one or more annotation filters. #
GET /v2/annotation_filters/{annotation_filter_id} Get a specific annotation filter. #
GET /v2/annotations List all the annotation. #
DELETE /v2/annotations Delete multiple annotations in one request. #
POST /v2/annotations Post annotations. #
PATCH /v2/annotations Patch one or more annotations. #
POST /v2/annotations/searches Execute a search over annotations #
PATCH /v2/annotations/searches Patch saved annotations searches by ids. #
GET /v2/annotations/workers ListAnnotationWorkers lists users, models, and workflows (collectively known as "workers") that have added annotations to the application. #
GET /v2/app Get a specific app from an app. #
GET /v2/apps List all the apps. #
POST /v2/artifact_versions/upload This is a streaming endpoint, the request has a field, upload_data, which can either be the config for the upload or the actual data to upload. The config must be sent first before #
GET /v2/bulk_operations List all the bulk operations #
DELETE /v2/bulk_operations delete one or more terminated bulk operations #
POST /v2/bulk_operations Perform bulk operations on a list of inputs based on input source. Operation include add, update, delete of concepts, metadata and geo data. This is an Asynchronous process. Use Li #
PATCH /v2/bulk_operations Cancel one or more bulk operations #
GET /v2/bulk_operations/{id} Get the bulk operation details by ID #
GET /v2/cloud_providers List Available Cloud Providers #
GET /v2/cloud_providers/{cloud_provider.id}/regions List Regions for given Cloud Provider #
GET /v2/cloud_providers/{cloud_provider.id}/regions/{region}/instance_types Get InstanceTypes given Cloud Provider and Region #
GET /v2/compute_clusters #
POST /v2/compute_plane_metrics #
GET /v2/concepts List all the concepts. #
POST /v2/concepts Add a concept to an app. #
PATCH /v2/concepts Patch one or more concepts. #
GET /v2/concepts/knowledge_graphs List all domain graphs. #
POST /v2/concepts/knowledge_graphs Post domain graphs. #
POST /v2/concepts/searches Search over the concepts to find one or more you're looking for. This leverage the "body" parameter because we also have page and per_page as url query param variables in this requ #
GET /v2/concepts/status List all the concepts with their positive and negative counts #
GET /v2/concepts/{concept_id} Get a specific concept from an app. #
GET /v2/concepts/{concept_id}/languages List the concept in all the translated languages. #
POST /v2/concepts/{concept_id}/languages Add a new translation for this concept. #
PATCH /v2/concepts/{concept_id}/languages Patch the name for a given language names by passing in a list of concepts with the new names for the languages. #
GET /v2/concepts/{concept_id}/languages/{language} Get a specific concept from an app. #
GET /v2/datasets List all the datasets. #
DELETE /v2/datasets Delete one or more datasets in a single request. #
POST /v2/datasets Add datasets to an app. The process is atomic, i.e. either all or no datasets are added. If there is an error for one dataset, the process will stop, revert the transaction and ret #
PATCH /v2/datasets Patch one or more datasets. The process is atomic, i.e. either all or no datasets are patched. If there is an error for one dataset, the process will stop, revert the transaction a #
GET /v2/datasets/{dataset_id} Get a specific dataset. #
GET /v2/datasets/{dataset_id}/inputs List all the dataset inputs in a dataset. #
DELETE /v2/datasets/{dataset_id}/inputs Delete one or more dataset inputs in a single request. #
POST /v2/datasets/{dataset_id}/inputs Add dataset inputs to a dataset. The process is not atomic, i.e. if there are errors with some dataset inputs, others might still be added. The response reports - SUCCESS if all da #
GET /v2/datasets/{dataset_id}/inputs/{input_id} Get a specific dataset input. #
GET /v2/datasets/{dataset_id}/versions List all the dataset versions. #
DELETE /v2/datasets/{dataset_id}/versions Delete one or more dataset versions in a single request. #
POST /v2/datasets/{dataset_id}/versions Add dataset versions to a dataset. #
PATCH /v2/datasets/{dataset_id}/versions Patch one or more dataset versions. #
GET /v2/datasets/{dataset_id}/versions/{dataset_version_id} Get a specific dataset version. #
PUT /v2/datasets/{dataset_id}/versions/{dataset_version_id}/exports Create export of a dataset version. #
GET /v2/datasets/{dataset_id}/versions/{dataset_version_id}/metrics #
GET /v2/deployments #
GET /v2/evaluations #
POST /v2/evaluations #
GET /v2/evaluations/{evaluation_id} #
GET /v2/inputs List all the inputs. #
DELETE /v2/inputs Delete multiple inputs in one request. This call is asynchronous. #
POST /v2/inputs PostInputs adds one or more inputs to the app. Takes a list of image/video/audio/text URLs, image/video/audio bytes or raw text Optionally, include concepts or dataset ids to link #
PATCH /v2/inputs Patch one or more inputs. #
DELETE /v2/inputs/annotations Delete multiple annotations in one request. #
POST /v2/inputs/data_sources Initiates retrieval of inputs from cloud storage from a user provided data source. Will create and return an inputs-add-job for tracking progress. Archives will be extracted and th #
GET /v2/inputs/jobs/add List all the inputs add jobs #
GET /v2/inputs/jobs/add/{id} Get the input add job details by ID #
PATCH /v2/inputs/jobs/add/{id} cancel the input add job by ID #
GET /v2/inputs/jobs/extraction List all the input extraction jobs #
PATCH /v2/inputs/jobs/extraction #
GET /v2/inputs/jobs/extraction/{inputs_extraction_job_id} Get the input extraction job details by ID #
POST /v2/inputs/searches Execute a search over inputs #
PATCH /v2/inputs/searches Patch saved inputs searches by ids. #
GET /v2/inputs/status Get input count per status. #
GET /v2/inputs/stream Streams all the inputs starting from oldest assets. #
POST /v2/inputs/uploads Create new upload job with a file archive containing inputs (images, videos, text, audio) Actual file upload happens in next steps by calling `PutUploadContentParts` endpoint and p #
GET /v2/inputs/{input_id} Get a specific input from an app. #
DELETE /v2/inputs/{input_id} Delete a single input asynchronously. #
GET /v2/inputs/{input_id}/annotation_tracks List all the annotation tracks. #
DELETE /v2/inputs/{input_id}/annotation_tracks Delete multiple annotation tracks in one request. #
POST /v2/inputs/{input_id}/annotation_tracks Post annotation tracks. #
PATCH /v2/inputs/{input_id}/annotation_tracks Patch one or more annotation tracks. #
POST /v2/inputs/{input_id}/annotations/stream/live Stream live video annotations as soon as they are available. This endpoint will NOT replay old annotations, but only stream new annotations that are generated after the stream is o #
GET /v2/inputs/{input_id}/annotations/{annotation_id} Get a specific annotation from an app. #
DELETE /v2/inputs/{input_id}/annotations/{annotation_id} Delete a single annotation. #
POST /v2/inputs/{input_id}/track_annotations/searches List video track annotations for a specific input. #
POST /v2/inputs/{input_id}/track_annotations/searches/stream Stream annotations for a specific input one-by-one. #
GET /v2/inputs/{input_id}/video_manifest Get a MPEG-DASH manifest for video-type inputs that were added via PostInputs and successfully processed Experimental. Manifest is used by browser and desktop clients that implemen #
GET /v2/label_orders List label orders. #
DELETE /v2/label_orders Delete multiple label orders in one request. this do not change task status #
POST /v2/label_orders Add Label orders. #
PATCH /v2/label_orders Patch one or more label orders. #
GET /v2/label_orders/{label_order_id} Get a label order. #
POST /v2/log_entries #
GET /v2/models List all the models. #
DELETE /v2/models Delete multiple models in one request. #
POST /v2/models Add a models to an app. #
PATCH /v2/models Patch one or more models. #
POST /v2/models/outputs/stream Stream of requests and stream of responses #
POST /v2/models/searches Search over the models to find one or more you're looking for. This leverage the "body" parameter because we also have page and per_page as url query param variables in this reques #
GET /v2/models/types List all the model types available in the platform. This MUST be above ListModels so that the /models/types endpoint takes precedence. #
GET /v2/models/types/{model_type_id} Get a specific model type. #
POST /v2/models/versions/upload This is a streaming endpoint, the request has a field, upload_data, which can either be the config for the upload or the actual data to upload. The config must be sent first before #
GET /v2/models/{model_id} Get a specific model from an app. #
DELETE /v2/models/{model_id} Delete a single model. #
PATCH /v2/models/{model_id}/check_consents Update model check consents #
GET /v2/models/{model_id}/inputs Deprecated: Unmaintained and ideally replaced with usage of datasets The server may refuse to accept requests to this endpoint. #
PATCH /v2/models/{model_id}/languages Update model languages tags #
GET /v2/models/{model_id}/output_info Get a the output info for a given model_id or model_id/version_id combo. #
POST /v2/models/{model_id}/outputs Get predicted outputs from the model. #
POST /v2/models/{model_id}/publish PostModelVersionsPublish #
GET /v2/models/{model_id}/references Lists model references tied to a particular model id. #
PATCH /v2/models/{model_id}/toolkits Update model toolkits tags #
POST /v2/models/{model_id}/unpublish PostModelVersionsUnPublish #
PATCH /v2/models/{model_id}/usecases Update model use_cases tags #
GET /v2/models/{model_id}/versions List all the models. #
POST /v2/models/{model_id}/versions Create a new model version to trigger training of the model. #
POST /v2/models/{model_id}/versions/time_estimate Get the training time estimate based off train request and estimated input count. #
GET /v2/models/{model_id}/versions/{model_version_id}/evaluations Deprecated, use GetEvaluation instead List the evaluation metrics for a model version. #
POST /v2/models/{model_id}/versions/{model_version_id}/evaluations Deprecated, use PostEvaluations instead #
GET /v2/models/{model_id}/versions/{model_version_id}/evaluations/{evaluation_id} Deprecated, use GetEvaluation instead Get an evaluation metrics for a model version. #
GET /v2/models/{model_id}/versions/{model_version_id}/input_examples ListModelVersionInputExamples #
GET /v2/models/{model_id}/versions/{model_version_id}/input_examples/{example_id} GetModelVersionInputExample #
GET /v2/models/{model_id}/versions/{version_id} Get a specific model from an app. #
DELETE /v2/models/{model_id}/versions/{version_id} Delete a single model. #
GET /v2/models/{model_id}/versions/{version_id}/exports GetModelVersionExport #
PUT /v2/models/{model_id}/versions/{version_id}/exports Export a model #
GET /v2/models/{model_id}/versions/{version_id}/inputs Deprecated: Unmaintained and ideally replaced with usage of datasets The server may refuse to accept requests to this endpoint. #
GET /v2/models/{model_id}/versions/{version_id}/metrics Get the evaluation metrics for a model version. Deprecated: Use GetEvaluation instead The server may refuse to accept requests to this endpoint. #
POST /v2/models/{model_id}/versions/{version_id}/metrics Deprecated, use PostEvaluations instead Run the evaluation metrics for a model version. #
GET /v2/models/{model_id}/versions/{version_id}/output_info Get a the output info for a given model_id or model_id/version_id combo. #
POST /v2/models/{model_id}/versions/{version_id}/outputs Get predicted outputs from the model. #
GET /v2/my_scopes API Keys in the public API -- request is itself Key authorized, and will tell the user the scopes/access of the key/credential they're providing, as computed by our authorizer: #
GET /v2/myscopes API Keys in the public API -- request is itself Key authorized, and will tell the user the scopes/access of the key/credential they're providing, as computed by our authorizer: #
GET /v2/myscopesroot #
GET /v2/nodepools #
GET /v2/open_source_licenses List all the supported open source licenses in the platform. #
POST /v2/pipeline_step_versions/upload This is a streaming endpoint, the request has a field, upload_data, which can either be the config for the upload or the actual data to upload. The config must be sent first before #
GET /v2/pipeline_templates Lists pipeline templates, which are ready-to-use templates that can simply be run on demand. #
GET /v2/pipelines #
GET /v2/pipelines/{pipeline_id} #
GET /v2/pipelines/{pipeline_id}/versions #
GET /v2/pipelines/{pipeline_id}/versions/{pipeline_version_id} #
GET /v2/pipelines/{pipeline_id}/versions/{pipeline_version_id}/runs/{pipeline_version_run_id} #
GET /v2/resource_counts List the resource counts for the app. #
POST /v2/runners/items/process This maintains a single request for asking the API if there is any work to be done, processing it and streaming back results. To do that first handshake the MultiRunnerItemOutputRe #
GET /v2/searches List all saved legacy searches. #
POST /v2/searches Execute a new search and optionally save it. #
PATCH /v2/searches Patch saved legacy searches by ids. #
GET /v2/searches/{id} Get a saved legacy search. #
DELETE /v2/searches/{id} Delete a saved search. #
POST /v2/searches/{id} Execute a previously saved legacy search. #
GET /v2/status_codes List all status codes. #
GET /v2/status_codes/{status_code_id} Get more details for a status code. #
GET /v2/tasks List tasks from an app. #
DELETE /v2/tasks Delete multiple tasks in one request. #
POST /v2/tasks Add tasks to an app. #
PATCH /v2/tasks Patch one or more tasks. #
GET /v2/tasks/{task_id} Get a specific task from an app. #
GET /v2/tasks/{task_id}/annotations/count Task annotation count #
GET /v2/tasks/{task_id}/assignments Deprecated: Use PutTaskAssignments with action=LABEL_START. This endpoint has initially been designed as a GET request, but has been re-designed to serve a PUT logic. In order to c #
GET /v2/tasks/{task_id}/inputs/count Task Input count #
GET /v2/tasks/{task_id}/inputs/samples #
GET /v2/uploads #
DELETE /v2/uploads #
POST /v2/uploads PostUploads is used to upload files. Note that this does not create inputs. returns job with uploadID, job has UPLOAD_IN_PROGRESS status Actual upload content can be done in multip #
GET /v2/uploads/{upload_id} #
PUT /v2/uploads/{upload_id}/content_parts Upload a part of a multipart upload. Behaviour on completion depends on the endpoint that was used to initiate the upload. #
POST /v2/users/{runner_selector.deployment.user_id}/deployments/{runner_selector.deployment.id}/outputs Get predicted outputs from the model. #
POST /v2/users/{user_app_id.user_id_1}/compute_clusters/{compute_cluster_id}/nodepools/{nodepool_id}/runners Patch runners of a user. #
GET /v2/users/{user_app_id.user_id_1}/compute_clusters/{compute_cluster_id}/nodepools/{nodepool_id}/runners/{runner_id}/{log_type}/logs #
GET /v2/users/{user_app_id.user_id_1}/compute_clusters/{compute_cluster_user_id}/{compute_cluster_id}/nodepools/{nodepool_id}/versions/{model_version_id}/{log_type}/logs #
GET /v2/users/{user_app_id.user_id} Get user information #
GET /v2/users/{user_app_id.user_id}/apps List all the apps. #
POST /v2/users/{user_app_id.user_id}/apps Add a app to an app. This needs to load the default workflow to make a copy, validating all the models in it, and then writing the new workflow back to this new app. #
PATCH /v2/users/{user_app_id.user_id}/apps Patch one or more apps. #
PATCH /v2/users/{user_app_id.user_id}/apps/ids Patch apps ids. #
POST /v2/users/{user_app_id.user_id}/apps/searches Search over the applications to find one or more you're looking for. #
GET /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id} Get a specific app from an app. #
DELETE /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id} Search over the apps to find one or more you're looking for. This leverage the "body" parameter because we also have page and per_page as url query param variables in this request. #
PATCH /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id} Patch one app. #
GET /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/annotation_filters List all the annotation filters. #
DELETE /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/annotation_filters Delete one or more annotation filters in a single request. #
POST /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/annotation_filters Add annotation filters. #
PATCH /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/annotation_filters Patch one or more annotation filters. #
GET /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/annotation_filters/{annotation_filter_id} Get a specific annotation filter. #
DELETE /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/annotation_tracks Delete multiple annotation tracks in one request. #
GET /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/annotations List all the annotation. #
DELETE /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/annotations Delete multiple annotations in one request. #
POST /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/annotations Post annotations. #
PATCH /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/annotations Patch one or more annotations. #
POST /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/annotations/searches Execute a search over annotations #
PATCH /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/annotations/searches Patch saved annotations searches by ids. #
GET /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/annotations/workers ListAnnotationWorkers lists users, models, and workflows (collectively known as "workers") that have added annotations to the application. #
GET /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/artifacts #
DELETE /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/artifacts #
POST /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/artifacts #
GET /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/artifacts/{artifact_id} #
GET /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/artifacts/{artifact_id}/versions #
DELETE /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/artifacts/{artifact_id}/versions #
GET /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/artifacts/{artifact_id}/versions/{artifact_version_id} #
GET /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/bulk_operations List all the bulk operations #
DELETE /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/bulk_operations delete one or more terminated bulk operations #
POST /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/bulk_operations Perform bulk operations on a list of inputs based on input source. Operation include add, update, delete of concepts, metadata and geo data. This is an Asynchronous process. Use Li #
PATCH /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/bulk_operations Cancel one or more bulk operations #
GET /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/bulk_operations/{id} Get the bulk operation details by ID #
GET /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/collaborators owner list users who the app is shared with #
DELETE /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/collaborators Delete existing collaborators. #
POST /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/collaborators add collaborators to an app. #
PATCH /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/collaborators Patch existing collaborators. #
GET /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/concepts List all the concepts. #
POST /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/concepts Add a concept to an app. #
PATCH /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/concepts Patch one or more concepts. #
GET /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/concepts/knowledge_graphs List all domain graphs. #
POST /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/concepts/knowledge_graphs Post domain graphs. #
GET /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/concepts/relations List concept relations between concepts in the platform. MUST be above ListConcepts so that if concept_id is empty this will still match /concepts/relations to list all the concept #
POST /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/concepts/searches Search over the concepts to find one or more you're looking for. This leverage the "body" parameter because we also have page and per_page as url query param variables in this requ #
GET /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/concepts/status List all the concepts with their positive and negative counts #
GET /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/concepts/{concept_id} Get a specific concept from an app. #
GET /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/concepts/{concept_id}/languages List the concept in all the translated languages. #
POST /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/concepts/{concept_id}/languages Add a new translation for this concept. #
PATCH /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/concepts/{concept_id}/languages Patch the name for a given language names by passing in a list of concepts with the new names for the languages. #
GET /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/concepts/{concept_id}/languages/{language} Get a specific concept from an app. #
GET /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/concepts/{concept_id}/relations List concept relations between concepts in the platform. MUST be above ListConcepts so that if concept_id is empty this will still match /concepts/relations to list all the concept #
DELETE /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/concepts/{concept_id}/relations Post concept relations to create relations between concepts in the platform. #
POST /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/concepts/{concept_id}/relations Post concept relations to create relations between concepts in the platform. #
GET /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/datasets List all the datasets. #
DELETE /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/datasets Delete one or more datasets in a single request. #
POST /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/datasets Add datasets to an app. The process is atomic, i.e. either all or no datasets are added. If there is an error for one dataset, the process will stop, revert the transaction and ret #
PATCH /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/datasets Patch one or more datasets. The process is atomic, i.e. either all or no datasets are patched. If there is an error for one dataset, the process will stop, revert the transaction a #
GET /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/datasets/{dataset_id} Get a specific dataset. #
GET /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/datasets/{dataset_id}/inputs List all the dataset inputs in a dataset. #
DELETE /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/datasets/{dataset_id}/inputs Delete one or more dataset inputs in a single request. #
POST /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/datasets/{dataset_id}/inputs Add dataset inputs to a dataset. The process is not atomic, i.e. if there are errors with some dataset inputs, others might still be added. The response reports - SUCCESS if all da #
GET /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/datasets/{dataset_id}/inputs/{input_id} Get a specific dataset input. #
GET /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/datasets/{dataset_id}/versions List all the dataset versions. #
DELETE /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/datasets/{dataset_id}/versions Delete one or more dataset versions in a single request. #
POST /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/datasets/{dataset_id}/versions Add dataset versions to a dataset. #
PATCH /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/datasets/{dataset_id}/versions Patch one or more dataset versions. #
GET /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/datasets/{dataset_id}/versions/{dataset_version_id} Get a specific dataset version. #
PUT /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/datasets/{dataset_id}/versions/{dataset_version_id}/exports Create export of a dataset version. #
GET /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/datasets/{dataset_id}/versions/{dataset_version_id}/metrics #
POST /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/duplications Deprecated: App duplication is no longer supported. PostAppDuplications starts async app duplication jobs which copy resources (inputs, annotations, models etc) from one applicatio #
GET /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/evaluations #
POST /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/evaluations #
GET /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/evaluations/{evaluation_id} #
GET /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/inputs List all the inputs. #
DELETE /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/inputs Delete multiple inputs in one request. This call is asynchronous. #
POST /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/inputs PostInputs adds one or more inputs to the app. Takes a list of image/video/audio/text URLs, image/video/audio bytes or raw text Optionally, include concepts or dataset ids to link #
PATCH /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/inputs Patch one or more inputs. #
DELETE /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/inputs/annotations Delete multiple annotations in one request. #
POST /v2/users/{user_app_id.user_id}/apps/{user_app_id.app_id}/inputs/data_sources Initiates retrieval of inputs from cloud storage from a user provided data source. Will create and return an inputs-add-job for tracking progress. Archives will be extracted and th #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/clarifai-v2-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

clarifai-v2-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: proto/clarifai/api/service.proto V2 API
  version: version not set
servers:
- url: https://api.clarifai.com/v2
tags:
- name: V2
paths:
  /v2/annotation_filters:
    get:
      summary: List all the annotation filters.
      operationId: V2_ListAnnotationFilters2
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiMultiAnnotationFilterResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: user_app_id.user_id
        description: Note user_id 'me' is reserved - it is the alias for the id of authorized user
        in: query
        required: false
        schema:
          type: string
      - name: user_app_id.app_id
        in: query
        required: false
        schema:
          type: string
      - name: page
        description: '(optional URL parameter) The page number. Pagination is used to split the results into chunks.

          Defaults to 1.'
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: per_page
        description: '(optional URL parameter) The number of results that will be contained in each page. Defaults

          to 128.'
        in: query
        required: false
        schema:
          type: integer
          format: int64
      tags:
      - V2
    delete:
      summary: Delete one or more annotation filters in a single request.
      operationId: V2_DeleteAnnotationFilters2
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/statusBaseResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      tags:
      - V2
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/apiDeleteAnnotationFiltersRequest'
        description: Request to delete several annotation filters by list of ids.
        required: true
    post:
      summary: Add annotation filters.
      operationId: V2_PostAnnotationFilters2
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiMultiAnnotationFilterResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      tags:
      - V2
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/apiPostAnnotationFiltersRequest'
        description: Request to add one or more annotation filters.
        required: true
    patch:
      summary: Patch one or more annotation filters.
      operationId: V2_PatchAnnotationFilters2
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiMultiAnnotationFilterResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      tags:
      - V2
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/apiPatchAnnotationFiltersRequest'
        description: Request to patch several annotation filters.
        required: true
  /v2/annotation_filters/{annotation_filter_id}:
    get:
      summary: Get a specific annotation filter.
      operationId: V2_GetAnnotationFilter2
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSingleAnnotationFilterResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: annotation_filter_id
        description: Identify annotation filter by id.
        in: path
        required: true
        schema:
          type: string
      - name: user_app_id.user_id
        description: Note user_id 'me' is reserved - it is the alias for the id of authorized user
        in: query
        required: false
        schema:
          type: string
      - name: user_app_id.app_id
        in: query
        required: false
        schema:
          type: string
      tags:
      - V2
  /v2/annotations:
    get:
      summary: List all the annotation.
      operationId: V2_ListAnnotations2
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiMultiAnnotationResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: user_app_id.user_id
        description: Note user_id 'me' is reserved - it is the alias for the id of authorized user
        in: query
        required: false
        schema:
          type: string
      - name: user_app_id.app_id
        in: query
        required: false
        schema:
          type: string
      - name: ids
        description: List annotations for these IDs
        in: query
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: input_ids
        description: 'List annotations for these Input IDs

          Note that ''ids'' are optional but if the are provided the number and order in

          ''ids'' and ''input_ids'' should match

          If you do not specify ''ids'' all the annotations for ''input_ids'' are returned

          If a you do not specify both ''input_ids'' and ''ids'' all the annotations in the app are returned'
        in: query
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: user_ids
        description: 'Only return the annotations that has one of these user IDs, effectively operating as an

          OR among them to filter down the results.

          If model_version_ids or workflow_version_ids are also provided, these user_ids are OR''d with them as well because

          we want the union of all worker (user, model or workflow) annotations in the results of ListAnnotations request.

          Setting user_ids does also set list_all_annotations=True.'
        in: query
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: model_version_ids
        description: 'Only return the annotations that has one of these model version IDs, effectively operating as an

          OR among them to filter down the results.

          If user_ids or workflow_version_ids are also provided, these model_version_ids are OR''d with them as well because

          we want the union of all worker (user, model or workflow) annotations in the results of ListAnnotations request.

          Setting model_version_ids does also set list_all_annotations=True.'
        in: query
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: workflow_version_ids
        description: 'Only return the annotations that has one of these workflow version IDs, effectively operating as an

          OR among them to filter down the results.

          If user_ids or model_version_ids are also provided, these workflow_version_ids are OR''d with them as well because

          we want the union of all worker (user, model or workflow) annotations in the results of ListAnnotations request.

          Setting workflow_version_ids does also set list_all_annotations=True.'
        in: query
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: list_all_annotations
        description: 'Set this flag to list both trusted and not trusted annotations

          by default it''s listing only trusted annotations'
        in: query
        required: false
        schema:
          type: boolean
      - name: return_model_output
        description: Set this flag to return the model output for model annotations in the response.
        in: query
        required: false
        schema:
          type: boolean
      - name: page
        description: '(optional URL parameter) The page number. Pagination is used to split the results into chunks.

          Defaults to 1.'
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: per_page
        description: '(optional URL parameter) The number of results that will be contained in each page. Defaults

          to 128.'
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: task_id
        description: Flag to filter annotations by task_id
        in: query
        required: false
        schema:
          type: string
      tags:
      - V2
    delete:
      summary: Delete multiple annotations in one request.
      operationId: V2_DeleteAnnotations4
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/statusBaseResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      tags:
      - V2
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/apiDeleteAnnotationsRequest'
        description: Request to delete several things by the list of ids.
        required: true
    post:
      summary: Post annotations.
      operationId: V2_PostAnnotations2
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiMultiAnnotationResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      tags:
      - V2
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/apiPostAnnotationsRequest'
        required: true
    patch:
      summary: Patch one or more annotations.
      operationId: V2_PatchAnnotations2
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiMultiAnnotationResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      tags:
      - V2
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/apiPatchAnnotationsRequest'
        required: true
  /v2/annotations/searches:
    post:
      summary: Execute a search over annotations
      operationId: V2_PostAnnotationsSearches2
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiMultiSearchResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      tags:
      - V2
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/apiPostAnnotationsSearchesRequest'
        required: true
    patch:
      summary: Patch saved annotations searches by ids.
      operationId: V2_PatchAnnotationsSearches2
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiMultiSearchResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      tags:
      - V2
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/apiPatchAnnotationsSearchesRequest'
        required: true
  /v2/annotations/workers:
    get:
      summary: 'ListAnnotationWorkers lists users, models, and workflows (collectively

        known as "workers") that have added annotations to the application.'
      operationId: V2_ListAnnotationWorkers2
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiMultiWorkerResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: user_app_id.user_id
        description: Note user_id 'me' is reserved - it is the alias for the id of authorized user
        in: query
        required: false
        schema:
          type: string
      - name: user_app_id.app_id
        in: query
        required: false
        schema:
          type: string
      - name: page
        description: '(optional URL parameter) The page number. Pagination is used to split the results into chunks.

          Defaults to 1.'
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: per_page
        description: '(optional URL parameter) The number of results that will be contained in each page. Defaults

          to 128.'
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: additional_fields
        description: '(optional URL parameter) List of additional fields to be included in the response.

          Currently supported: all, names'
        in: query
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: trusted_only
        description: (optional URL parameter) Only list workers that have created trusted annotations.
        in: query
        required: false
        schema:
          type: boolean
      tags:
      - V2
  /v2/app:
    get:
      summary: Get a specific app from an app.
      operationId: V2_GetApp2
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSingleAppResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: user_app_id.user_id
        description: Note user_id 'me' is reserved - it is the alias for the id of authorized user
        in: query
        required: false
        schema:
          type: string
      - name: user_app_id.app_id
        in: query
        required: false
        schema:
          type: string
      - name: additional_fields
        description: '(optional URL parameter) List of additional fields to be included in the response. Currently supported: all, stars, counts'
        in: query
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      tags:
      - V2
  /v2/apps:
    get:
      summary: List all the apps.
      operationId: V2_ListApps2
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiMultiAppResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: user_app_id.user_id
        description: Note user_id 'me' is reserved - it is the alias for the id of authorized user
        in: query
        required: false
        schema:
          type: string
      - name: user_app_id.app_id
        in: query
        required: false
        schema:
          type: string
      - name: page
        description: '(optional URL parameter) The page number. Pagination is used to split the results into chunks.

          Defaults to 1.'
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: per_page
        description: '(optional URL parameter) The number of results that will be contained in each page. Defaults

          to 128.'
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: additional_fields
        description: '(optional URL parameter) List of additional fields to be included in the response. Currently supported: all, stars, counts'
        in: query
        required: false
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: sort_ascending
        description: 'Sorting options:

          Whether to sort in ascending order. If false, will order in descending order.'
        in: query
        required: false
        schema:
          type: boolean
      - name: sort_by_name
        description: Whether to order by the name.
        in: query
        required: false
        schema:
          type: boolean
      - name: sort_by_modified_at
        description: 'Whether to order by the modified_at time.

          If none of the sort options is set to true, will sort by modified_at.'
        in: query
        required: false
        schema:
          type: boolean
      - name: sort_by_created_at
        description: Whether to order by the created_at time.
        in: query
        required: false
        schema:
          type: boolean
      - name: sort_by_star_count
        description: Whether to order by the number of users stared the app
        in: query
        required: false
        schema:
          type: boolean
      - name: sort_by_id
        description: Whether to order by the id
        in: query
        required: false
        schema:
          type: boolean
      - name: sort_by_relevance
        description: Whether to order by search query relevance. Can only be used if search is not empty.
        in: query
        required: false
        schema:
          type: boolean
      - name: featured_only
        description: 'Filtering options:

          If true, we only return apps that are handpicked by clarifai staff'
        in: query
        required: false
        schema:
          type: boolean
      - name: starred_only
        description: If true, we only return apps that are starred by the requesting user
        in: query
        required: false
        schema:
          type: boolean
      - name: template_only
        description: If true, we only return apps that are marked as a template by the app owner.
        in: query
        required: false
        schema:
          type: boolean
      - name: visibility.gettable
        description: " - UNKNOWN_VISIBILITY: Default value not allowed.\n - PRIVATE: PRIVATE requires collaborator or team permissions in order to GET this resource.\n - ORG: ORG requires you to be in the same org in order to GET this resource, but don't have to be a\nteammate or collaborator.\n - PUBLIC: PUBLIC opens up GET access to the resource to any user on the platform even if they are not\na teammate or collaborator."
        in: query
        required: false
        schema:
          type: string
          enum:
          - UNKNOWN_VISIBILITY
          - PRIVATE
          - ORG
          - PUBLIC
          default: UNKNOWN_VISIBILITY
      - name: search
        description: "Searching options:\nSpecify a search parameter in order to perform keyword search on the\nfollowing fields of the application:\n  - id\n  - name\n  - description\n  - notes\n  - user_id (unless user_app_id.user_id is already set)\n\nKeywords are both normalized for search (so searching for \"satisfy\" matches \"satisfied\")\nand used for partial prefix-matching (so searching for \"clari\" matches \"clarifai\").\n\nNOTE: Both the list of fields searched and the exact keyword matching\nrules are subject to change and not guaranteed to be backwards-compatible."
        in: query
        required: false
        schema:
          type: string
      - name: query
        description: 'Query various text fields (id, name, description, and notes) that can contain the words in the query string

          Deprecated: use search instead.'
        in: query
        required: false
        schema:
          type: string
      - name: name
        description: 'Filter by the id, name and notes of the app. This supports wilcard queries like "gen*" to match "general" as an example.

          Deprecated: use search instead.'
        in: query
        required: false
        schema:
          type: string
      - name: id
        description: 'Filter by the user-unique-id of the app. This supports wilcard queries like "gen*" to match "general" as an example.

          Deprecated: use search instead.'
        in: query
        required: false
        schema:
          type: string
      tags:
      - V2
  /v2/artifact_versions/upload:
    post:
      summary: 'This is a streaming endpoint, the request has a field, upload_data, which can either be the config for the upload or the actual data to upload.

        The config must be sent first before the artifact_bytes can be uploaded.

        Once the config has been sent, the server will respond with a confirmation containing the artifact_version_id.

        This is so that if your upload is interrupted, you can resume the upload by sending the config again with the artifact_version_id specified for your artifact_version.

        The actual upload will be done via a multipart upload, the latest successful part_id will be sent from the server in the response to the artifact_bytes.'
      operationId: V2_PostArtifactVersionsUpload
      responses:
        '200':
          description: A successful response.(streaming responses)
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: '#/components/schemas/apiPostArtifactVersionsUploadResponse'
                  error:
                    $ref: '#/components/schemas/googlerpcStatus'
                title: Stream result of apiPostArtifactVersionsUploadResponse
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      tags:
      - V2
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/apiPostArtifactVersionsUploadRequest'
        description: ' (streaming inputs)'
        required: true
  /v2/bulk_operations:
    get:
      summary: List all the bulk operations
      operationId: V2_ListBulkOperations2
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiMultiBulkOperationsResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: user_app_id.user_id
        description: Note user_id 'me' is reserved - it is the alias for the id of authorized user
        in: query
        required: false
        schema:
          type: string
      - name: user_app_id.app_id
        in: query
        required: false
        schema:
          type: string
      - name: page
        description: '(optional URL parameter) The page number. Pagination is used to split the results into chunks.

          Defaults to 1.'
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: per_page
        description: '(optional URL parameter) The number of results that will be contained in each page. Defaults

          to 128.'
        in: query
        required: false
        schema:
          type: integer
          format: int64
      tags:
      - V2
    delete:
      summary: delete one or more terminated bulk operations
      operationId: V2_DeleteBulkOperations2
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/statusBaseResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      tags:
      - V2
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/apiDeleteBulkOperationRequest'
        description: 'Request to delete the terminated bulk operations by ID

          Only operations in terminated state can be deleted.'
        required: true
    post:
      summary: 'Perform bulk operations on a list of inputs based on input source.

        Operation include add, update, delete of concepts, metadata and geo data.

        This is an Asynchronous process. Use ListBulkOperations or GetBulkOperation to check the status.'
      operationId: V2_PostBulkOperations2
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiMultiBulkOperationsResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      tags:
      - V2
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/apiPostBulkOperationsRequest'
        description: Request to perform bulk operations on a list of inputs based on input source.
        required: true
    patch:
      summary: Cancel one or more bulk operations
      operationId: V2_CancelBulkOperations2
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiMultiBulkOperationsResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      tags:
      - V2
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/apiCancelBulkOperationRequest'
        required: true
  /v2/bulk_operations/{id}:
    get:
      summary: Get the bulk operation details by ID
      operationId: V2_GetBulkOperation2
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSingleBulkOperationsResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: id
        description: The bulk operation id
        in: path
        required: true
        schema:
          type: string
      - name: user_app_id.user_id
        description: Note user_id 'me' is reserved - it is the alias for the id of authorized user
        in: query
        required: false
        schema:
          type: string
      - name: user_app_id.app_id
        in: query
        required: false
        schema:
          type: string
      tags:
      - V2
  /v2/cloud_providers:
    get:
      summary: List Available Cloud Providers
      operationId: V2_ListCloudProviders
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiMultiCloudProviderResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      tags:
      - V2
  /v2/cloud_providers/{cloud_provider.id}/regions:
    get:
      summary: List Regions for given Cloud Provider
      operationId: V2_ListCloudRegions
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiMultiCloudRegionResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: cloud_provider.id
        description: Unique identifier of the cloud provider.
        in: path
        required: true
        schema:
          type: string
      - name: cloud_provider.name
        description: Name of the cloud provider.
        in: query
        required: false
        schema:
          type: string
      tags:
      - V2
  /v2/cloud_providers/{cloud_provider.id}/regions/{region}/instance_types:
    get:
      summary: Get InstanceTypes given Cloud Provider and Region
      operationId: V2_ListInstanceTypes
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiMultiInstanceTypeResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - name: cloud_provider.id
        description: Unique identifier of the cloud provider.
        in: path
        required: true
        schema:
          type: string
      - name: region
        description: 'The region to list for so when there are multiple regions we get only the clusters

          that are supposed to be up in that region.'
        in: path
        required: true
        schema:
          type: string
      - na

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