> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://developers.awork.com/apiv1/agent-runtime/get-models/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developers.awork.com/_mcp/server. # Returns the AI models available to agents. GET https://api.awork.com/api/v1/agents/models Returns the agent model catalog with effective availability for the current workspace. The response includes model providers, model details, defaults, and available image capabilities. Use these values when selecting a model for an agent or conversation.Any authenticated user. Reference: https://developers.awork.com/apiv1/agent-runtime/get-models ## Authentication - `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer `, where token is your auth token. ## Response ### 200 OK - `defaultProvider` (string, optional, nullable) — The default provider. - `defaultModel` (string, optional, nullable) — The default model. - `providers` (list of AgentRuntimeProviderModelsResponseModel, optional, nullable) — The available providers and their models. - `performanceLevels` (list of AgentRuntimePerformanceLevelResponseModel, optional, nullable) — The predefined performance levels that resolve to available models. - `workspaceSettings` (AgentRuntimeWorkspaceModelSettingsResponseModel, optional) — Represents effective workspace AI model policy. - `availableImageCapabilities` (list of string, optional, nullable) — Image capability keys available in this workspace. - `imageCapabilityModels` (map from string to AgentRuntimeModelResponseModel, optional, nullable) — The configured runtime model for each image capability, using the workspace catalog metadata. ## Errors ### 401 Unauthorized Error Unauthorized - `code` (string, required) — The error code. - `description` (string, required) — The description of the error. - `link` (string, required) — The link to the API documentation page. - `details` (list of string, optional, nullable) — A list of details describing the error. - `validationErrors` (list of ValidationErrorResponse, optional, nullable) — If a validation error occurred, this contains the validation errors for each property. - `traceId` (string, optional, nullable) — The request trace id for tracking the request. ## Types ### AgentRuntimeProviderModelsResponseModel Describes the models available from one provider. - `provider` (string, optional, nullable) — The stable provider key. - `displayName` (string, optional, nullable) — The provider name shown to users. - `defaultModel` (string, optional, nullable) — The provider model selected by default. - `models` (list of string, optional, nullable) — The available provider model keys. - `modelDetails` (list of AgentRuntimeModelResponseModel, optional, nullable) — Rich model metadata for model pickers. ### AgentRuntimePerformanceLevelResponseModel Represents a predefined performance level for the agent model selector. - `id` (string, optional, nullable) — The stable identifier used by clients to present the performance level. - `provider` (string, optional, nullable) — The selected model provider. - `model` (string, optional, nullable) — The selected model name. - `reasoningLevel` (string, optional, nullable) — The selected reasoning level. - `isDefault` (boolean, optional) — Whether this is the default performance level for new personal agent chats. ### AgentRuntimeWorkspaceModelSettingsResponseModel Represents effective workspace AI model policy. - `autoEnableNewModels` (boolean, optional) — Whether new models in enabled parents are enabled automatically. - `vendors` (list of AgentRuntimeWorkspaceModelSwitchResponseModel, optional, nullable) — The effective vendor states. - `regions` (list of AgentRuntimeWorkspaceModelSwitchResponseModel, optional, nullable) — The effective region states. - `presets` (list of AgentRuntimeWorkspaceModelPresetResponseModel, optional, nullable) — Effective Fast, Balanced, and Deep preset assignments. - `models` (list of AgentRuntimeModelResponseModel, optional, nullable) — The full effective catalog used by workspace model settings. - `availableImageCapabilities` (list of string, optional, nullable) — Image capability keys available in this workspace. ### AgentRuntimeModelResponseModel Represents one agent runtime model exposed by the catalog. - `id` (string, optional, nullable) — The model id used by the provider API. - `key` (string, optional, nullable) — The stable catalog key. - `kind` (string, optional, nullable) — The model kind. - `vendorKey` (string, optional, nullable) — The stable vendor key. - `vendorCountry` (string, optional, nullable) — The vendor country shown in the model picker. - `regionKey` (string, optional, nullable) — The stable serving-region key. - `displayName` (string, optional, nullable) — The display label. - `status` (string, optional, nullable) — The lifecycle status of the model. - `isNew` (boolean, optional) — Whether the model is newly published. - `isWorkspaceEnabled` (boolean, optional) — Whether workspace policy enables the model. - `isInUse` (boolean, optional) — Whether a current workspace configuration or thread uses the model. - `isAvailable` (boolean, optional) — Whether provider readiness makes the model available. - `disabledReason` (string, optional, nullable) — The reason the model is unavailable. - `canToggle` (boolean, optional) — Whether the workspace can change this model's switch. - `creditFactor` (double, optional, nullable) — The Terra-relative cost factor for the representative cached-input workload. - `servedFrom` (string, optional, nullable) — The serving region label. - `servingFlag` (string, optional, nullable) — The serving region flag. - `supportsImageInput` (boolean, optional) — Whether the model accepts native image input. - `supportedReasoningLevels` (list of string, optional, nullable) — The reasoning levels supported by this model. ### ValidationErrorResponse The validation error response. - `property` (string, optional, nullable) — The name of the property that failed validation. - `message` (string, optional, nullable) — The reason why this property failed validation. ### AgentRuntimeWorkspaceModelSwitchResponseModel Represents one effective workspace model switch. - `key` (string, optional, nullable) — The stable switch key. - `displayName` (string, optional, nullable) — The display name. - `country` (string, optional, nullable) — The vendor country, when this switch represents a vendor. - `isEnabled` (boolean, optional) — Whether the switch is enabled. - `isNew` (boolean, optional) — Whether this switch is newly published. - `canToggle` (boolean, optional) — Whether this parent switch can be changed. - `disabledReason` (string, optional, nullable) — The authoritative reason the switch or its children are unavailable. ### AgentRuntimeWorkspaceModelPresetResponseModel Represents one effective workspace preset assignment. - `presetKey` (string, optional, nullable) — The preset key. - `isAuto` (boolean, optional) — Whether the preset uses central Auto resolution. - `modelKey` (string, optional, nullable) — The explicit model key. - `reasoningLevel` (string, optional, nullable) — The effective reasoning level. - `modelStatus` (string, optional, nullable) — The stored model lifecycle status. - `warning` (string, optional, nullable) — The warning shown for a deprecated stored reference. - `error` (string, optional, nullable) — The error shown for a removed or unavailable stored reference. ## Examples **Response** ```json { "defaultProvider": "openai", "defaultModel": "gpt-5.6-terra", "providers": [ { "provider": "openai", "displayName": "OpenAI", "defaultModel": "gpt-5.6-terra", "models": [ "string" ], "modelDetails": [ { "id": "gpt-5.6-terra", "key": "openai:gpt-5.6-terra", "kind": "text", "vendorKey": "openai", "vendorCountry": "EU", "regionKey": "europe", "displayName": "GPT-5.6 Terra", "status": "active", "isNew": false, "isWorkspaceEnabled": true, "isInUse": true, "isAvailable": true, "disabledReason": "Its vendor or region is disabled.", "canToggle": true, "creditFactor": 1, "servedFrom": "Europe", "servingFlag": "🇪🇺", "supportsImageInput": true, "supportedReasoningLevels": [ "string" ] } ] } ], "performanceLevels": [ { "id": "balanced", "provider": "openai", "model": "gpt-5.6-terra", "reasoningLevel": "medium", "isDefault": true } ], "workspaceSettings": { "autoEnableNewModels": true, "vendors": [ { "key": "openai", "displayName": "OpenAI", "country": "US", "isEnabled": true, "isNew": false, "canToggle": true, "disabledReason": "Its vendor or region is disabled." } ], "regions": [ { "key": "openai", "displayName": "OpenAI", "country": "US", "isEnabled": true, "isNew": false, "canToggle": true, "disabledReason": "Its vendor or region is disabled." } ], "presets": [ { "presetKey": "balanced", "isAuto": false, "modelKey": "openai:gpt-5.6-terra", "reasoningLevel": "medium", "modelStatus": "active", "warning": "This preset uses a deprecated model and remains visible for existing agents.", "error": "This preset model is disabled by workspace settings." } ], "models": [ { "id": "gpt-5.6-terra", "key": "openai:gpt-5.6-terra", "kind": "text", "vendorKey": "openai", "vendorCountry": "EU", "regionKey": "europe", "displayName": "GPT-5.6 Terra", "status": "active", "isNew": false, "isWorkspaceEnabled": true, "isInUse": true, "isAvailable": true, "disabledReason": "Its vendor or region is disabled.", "canToggle": true, "creditFactor": 1, "servedFrom": "Europe", "servingFlag": "🇪🇺", "supportsImageInput": true, "supportedReasoningLevels": [ "string" ] } ], "availableImageCapabilities": [ "string" ] }, "availableImageCapabilities": [ "string" ], "imageCapabilityModels": {} } ``` **SDK Code** ```python import requests url = "https://api.awork.com/api/v1/agents/models" headers = {"Authorization": "Bearer "} response = requests.get(url, headers=headers) print(response.json()) ``` ```javascript const url = 'https://api.awork.com/api/v1/agents/models'; const options = {method: 'GET', headers: {Authorization: 'Bearer '}}; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go package main import ( "fmt" "net/http" "io" ) func main() { url := "https://api.awork.com/api/v1/agents/models" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("Authorization", "Bearer ") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby require 'uri' require 'net/http' url = URI("https://api.awork.com/api/v1/agents/models") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) request["Authorization"] = 'Bearer ' response = http.request(request) puts response.read_body ``` ```java import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.get("https://api.awork.com/api/v1/agents/models") .header("Authorization", "Bearer ") .asString(); ``` ```php request('GET', 'https://api.awork.com/api/v1/agents/models', [ 'headers' => [ 'Authorization' => 'Bearer ', ], ]); echo $response->getBody(); ``` ```csharp using RestSharp; var client = new RestClient("https://api.awork.com/api/v1/agents/models"); var request = new RestRequest(Method.GET); request.AddHeader("Authorization", "Bearer "); IRestResponse response = client.Execute(request); ``` ```swift import Foundation let headers = ["Authorization": "Bearer "] let request = NSMutableURLRequest(url: NSURL(string: "https://api.awork.com/api/v1/agents/models")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "GET" request.allHTTPHeaderFields = headers let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```