- CLARIFAI API 基础知识
- API 接口
- annotation_filters
- annotations
- apps
- bulk_operations
- {id}
- List all the bulk operations
- delete one or more terminated 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 ListBulkOperations or GetBulkOperation to check the status.
- Cancel one or more bulk operations
- collectors
- {collectorId}
- List all the collectors.
- Delete multiple collectors in one request. This call is asynchronous. Use DeleteCollector if you want a synchronous version.
- Add a list of Collectors to an app. In the handler of this endpoint we also check for all the scopes of the POST /inputs endpoint. Those current scopes are listed here as a hard requirement. They are needed when adding the collectors just so we now that
- Patch one or more collectors.
- concepts
- datasets
- inputs
- {datasetId}
- inputs
- {inputId}
- List all the dataset inputs in a dataset.
- Delete one or more dataset inputs in a single request.
- 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 dataset inputs were added, - MIXED_STATUS if only some dataset inputs wer
- versions
- Get a specific dataset.
- inputs
- List all the datasets.
- Delete one or more datasets in a single request.
- 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 return the error.
- 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 and return the error.
- evaluations
- inputs
- label_orders
- models
- searches
- types
- {modelId}
- check_consents
- inputs
- languages
- output_info
- outputs
- publish
- references
- toolkits
- unpublish
- usecases
- versions
- Get a specific model from an app.
- Delete a single model.
- List all the models.
- Delete multiple models in one request.
- Add a models to an app.
- Patch one or more models.
- modules
- my_scopes
- myscopes
- myscopesroot
- open_source_licenses
- resource_counts
- searches
- stats
- status_codes
- tasks
- trending_metrics
- uploads
- users
- {userAppId.userId}
- apps
- ids
- searches
- {userAppId.appId}
- annotation_filters
- annotations
- bulk_operations
- {id}
- List all the bulk operations
- delete one or more terminated 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 ListBulkOperations or GetBulkOperation to check the status.
- Cancel one or more bulk operations
- collaborators
- collectors
- {collectorId}
- List all the collectors.
- Delete multiple collectors in one request. This call is asynchronous. Use DeleteCollector if you want a synchronous version.
- Add a list of Collectors to an app. In the handler of this endpoint we also check for all the scopes of the POST /inputs endpoint. Those current scopes are listed here as a hard requirement. They are needed when adding the collectors just so we now that
- Patch one or more collectors.
- concepts
- knowledge_graphs
- mappings
- relations
- searches
- status
- {conceptId}
- languages
- 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 relations in the app.
- Post concept relations to create relations between concepts in the platform.
- Post concept relations to create relations between concepts in the platform.
- Get a specific concept from an app.
- List all the concepts.
- Add a concept to an app.
- Patch one or more concepts.
- datasets
- inputs
- {datasetId}
- inputs
- {inputId}
- List all the dataset inputs in a dataset.
- Delete one or more dataset inputs in a single request.
- 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 dataset inputs were added, - MIXED_STATUS if only some dataset inputs wer
- versions
- Get a specific dataset.
- inputs
- List all the datasets.
- Delete one or more datasets in a single request.
- 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 return the error.
- 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 and return the error.
- duplications
- evaluations
- inputs
- installed_module_versions
- {installedModuleVersionId}
- List installed modules vesrions for an app.
- Uninstall an installed module version which will deploy the specific ModuleVersion to the app in the url. This cleaned up any associated caller keys so needs the Keys_Delete scope.
- Install a new module version which will deploy the specific ModuleVersion to the app in the url.
- keys
- label_orders
- models
- ids
- searches
- types
- {modelId}
- check_consents
- concepts
- inputs
- languages
- output_info
- outputs
- publish
- references
- toolkits
- unpublish
- usecases
- versions
- Get a specific model from an app.
- Delete a single model.
- List all the models.
- Delete multiple models in one request.
- Add a models to an app.
- Patch one or more models.
- modules
- myscopes
- resource_counts
- searches
- stats
- task
- tasks
- trending_metrics
- uploads
- workflows
- Get a specific app from an app.GET
- 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.DELETE
- Patch one app.PATCH
- List all the apps.GET
- 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.POST
- Patch one or more apps.PATCH
- collaborations
- datasets
- duplications
- evaluations
- keys
- models
- modules
- myscopes
- runners
- scopes
- validate_password
- workflows
- Get user informationGET
- validate_password
- workflows
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/users/{userAppId.userId}/apps/{userAppId.appId}/myscopes
V2
请求参数
Path 参数
userAppId.userId
string
必需
userAppId.appId
string
必需
示例代码
Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
请求示例请求示例
Shell
JavaScript
Java
Swift
curl --location --request GET 'http://dev-cn.your-api-server.com/v2/users//apps//myscopes'
返回响应
🟢200A successful response.
application/json
Body
status
object (apistatusStatus)
可选
code
object
可选
description
string
可选
details
string
可选
stackTrace
array[string]
可选
any issues.
percentCompleted
integer <int64>
specifically for long running jobs
timeRemaining
integer <int64>
if status is pending, how much time is remaining (in seconds)
reqId
string
If we want to return a request id in the base status field
internalDetails
string
可选
redirectInfo
object (statusRedirectInfo)
可选
scopes
array[string]
可选
app
object (Application with tasks and datasets)
可选
id
string
可选
name
string
可选
defaultLanguage
string
可选
defaultWorkflowId
string
Default workflow id deprecated in favor of default_workflow
defaultWorkflow
object (Workflow)
可选
userId
string
why is user_id present here when this message type is used in PostApps but completely ignored there? PostApp already
specifies the userid in path but doesn't even actually use neither of userids, it instead used the id from auth context.
This creates a lot of ambiguity, should always have different message types for Post/Get endpoints so that the minimum interface for each op can be described
createdAt
string <date-time>
When the app was created. We follow the XXXX timestamp
format. We use https://www.ietf.org/rfc/rfc3339.txt format:
"2006-01-02T15:04:05.999999Z" so you can expect results like
the following from the API:
"2017-04-11T21:50:50.223962Z"
modifiedAt
string <date-time>
When the app was last modified
legalConsentStatus
integer <int64>
if user accept legal consent for face recognition
metadata
object
To handle arbitrary json metadata you can use a struct field:
https://github.com/google/protobuf/blob/master/src/google/protobuf/struct.proto
description
string
可选
sampleMs
integer <int64>
Default value for model predictions on video: Sample delay for video predicting (1 frame per N milliseconds)
visibility
object (clarifaiapiVisibility)
可选
When authenticating a request we can tell if a user is a collaborator or a teammate for the
the app that contains the resource and set their allowed visibility. We use that to restrict
what they are allowed to see:
If AllowedVisibility is PRIVATE then we allow PRIVATE (10), ORG (30), PUBLIC (50)
If AllowedVisibility is ORG then we allow ORG (30), PUBLIC (50)
If AllowedVisibility is PUBLIC then we allow PUBLIC (50) only.
dataTierId
string
可选
isStarred
boolean
Is starred by the requesting user (only showed on get/list requests)
Please use PostAppStars/DeleteAppStars endpoints to star/unstar an app
starCount
integer <int32>
How many users have starred the app (only showed on get/list requests)
Computed value, not editable
notes
string
可选
This field should be used for in-depth notes and supports up to 64Kbs.
image
object (Image)
可选
endpoints
array[string]
可选
userFeatureFlags
string
可选
示例
{
"status": {
"code": {},
"description": "string",
"details": "string",
"stackTrace": [
"string"
],
"percentCompleted": 0,
"timeRemaining": 0,
"reqId": "string",
"internalDetails": "string",
"redirectInfo": {
"url": "string",
"resourceType": "string",
"oldResourceId": "string",
"newResourceId": "string"
}
},
"scopes": [
"string"
],
"app": {
"id": "string",
"name": "string",
"defaultLanguage": "string",
"defaultWorkflowId": "string",
"defaultWorkflow": {
"id": "string",
"appId": "string",
"createdAt": "2019-08-24T14:15:22Z",
"nodes": [
{
"id": "string",
"model": {},
"nodeInputs": [
{
"nodeId": "string"
}
],
"suppressOutput": true,
"outputInfoOverride": {}
}
],
"metadata": {},
"visibility": {
"gettable": "UNKNOWN_VISIBILITY"
},
"userId": "string",
"modifiedAt": "2019-08-24T14:15:22Z",
"version": {
"id": "string",
"workflowId": "string",
"createdAt": "2019-08-24T14:15:22Z",
"modifiedAt": "2019-08-24T14:15:22Z",
"visibility": {
"gettable": "UNKNOWN_VISIBILITY"
},
"nodes": [
{
"id": "string",
"model": {},
"nodeInputs": [
{
"nodeId": "string"
}
],
"suppressOutput": true,
"outputInfoOverride": {}
}
],
"metadata": {},
"appId": "string",
"userId": "string",
"description": "string",
"license": "string"
},
"isStarred": true,
"starCount": 0,
"description": "string",
"notes": "string",
"useCases": [
"string"
],
"checkConsents": [
"string"
],
"bookmarkOrigin": {
"id": "string",
"appId": "string",
"userId": "string",
"resourceType": "unknown"
}
},
"userId": "string",
"createdAt": "2019-08-24T14:15:22Z",
"modifiedAt": "2019-08-24T14:15:22Z",
"legalConsentStatus": 0,
"metadata": {},
"description": "string",
"sampleMs": 0,
"visibility": {
"gettable": "UNKNOWN_VISIBILITY"
},
"dataTierId": "string",
"isStarred": true,
"starCount": 0,
"notes": "string",
"image": {
"url": "string",
"base64": "string",
"allowDuplicateUrl": true,
"hosted": {
"prefix": "string",
"suffix": "string",
"sizes": [
"string"
],
"crossorigin": "string"
},
"imageInfo": {
"width": 0,
"height": 0,
"format": "string",
"colorMode": "string"
}
}
},
"endpoints": [
"string"
],
"userFeatureFlags": "string"
}
🔴500An unexpected error response.
修改于 2023-12-11 04:16:54