> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developers.awork.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developers.awork.com/_mcp/server.

# Gets the default agent options for a personal or custom agent.

GET https://api.awork.com/api/v1/agents/defaults

Returns default model, tool access, connector, and skill options for a personal-agent or custom-agent conversation.
Set type to 'personal-agent' for the requesting user's defaults, or 'custom-agent' and provide agentId for a custom agent.
The response also includes the effective model catalog for the workspace.
The user must have read access to the selected custom agent.

Reference: https://developers.awork.com/apiv1/agent-runtime/get-agent-defaults

## Authentication

- `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer <token>`, where token is your auth token.

## Request

### Query parameters

- `type` (string, required) — The agent type to resolve defaults for ('personal-agent' or 'custom-agent').
- `agentId` (string, optional) — The id of the custom agent when is 'custom-agent'.

## Response

### 200

OK

- `type` (string, optional, nullable) — The matching agent thread type.
- `modelProvider` (string, optional, nullable) — The default model provider.
- `modelName` (string, optional, nullable) — The default model name.
- `presetKey` (string, optional, nullable) — The stored preset identity for preset-based agents.
- `reasoningLevel` (string, optional, nullable) — The default reasoning level.
- `toolAccess` (AgentToolAccessDefaultsModel, optional) — Represents default agent tool access settings.
- `connectorIds` (list of string, optional, nullable) — The default connector ids.
- `skillIds` (list of string, optional, nullable) — The default skill ids.
- `availableModels` (AgentRuntimeModelsResponseModel, optional) — Describes the models available to the workspace.

## Errors

### 400 Bad Request Error

Bad Request

- `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.

### 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.

### 404 Not Found Error

Not Found

- `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

### AgentToolAccessDefaultsModel

Represents default agent tool access settings.

- `awork` (boolean, optional) — A value indicating whether awork tools are enabled by default.
- `webSearch` (boolean, optional) — A value indicating whether web search is enabled by default.
- `googleGenAi` (boolean, optional) — A value indicating whether Google GenAI tools are enabled by default.
- `openAiImageGeneration` (boolean, optional) — A value indicating whether OpenAI image generation is enabled by default.
- `availableImageCapabilities` (list of string, optional, nullable) — Image capability keys available in the workspace.

### AgentRuntimeModelsResponseModel

Describes the models available to the workspace.

- `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.

### 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.

### 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.

### 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
{
  "type": "custom-agent",
  "modelProvider": "openai",
  "modelName": "gpt-5.6-terra",
  "presetKey": "balanced",
  "reasoningLevel": "medium",
  "toolAccess": {
    "awork": true,
    "webSearch": true,
    "googleGenAi": false,
    "openAiImageGeneration": false,
    "availableImageCapabilities": [
      "string"
    ]
  },
  "connectorIds": [
    "string"
  ],
  "skillIds": [
    "string"
  ],
  "availableModels": {
    "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/defaults"

querystring = {"type":"type"}

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript
const url = 'https://api.awork.com/api/v1/agents/defaults?type=type';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

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/defaults?type=type"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	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/defaults?type=type")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.awork.com/api/v1/agents/defaults?type=type")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.awork.com/api/v1/agents/defaults?type=type', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.awork.com/api/v1/agents/defaults?type=type");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.awork.com/api/v1/agents/defaults?type=type")! 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()
```