Skip to content
Get started

Models

Manage LLM models available to a workspace. Models represent provider and family pairs (e.g., “anthropic/claude-sonnet-4.6”). Workspaces are seeded with the supported models and you can enable or disable each one.

List models
client.Models.List(ctx, workspaceID, query) (*CursorPagination[Model], error)
GET/v1/workspaces/{workspaceId}/models
Get a model by ID
client.Models.Get(ctx, workspaceID, id) (*Model, error)
GET/v1/workspaces/{workspaceId}/models/{id}
Set model status
client.Models.SetStatus(ctx, workspaceID, id, body) (*Model, error)
PUT/v1/workspaces/{workspaceId}/models/{id}/status
ModelsExpand Collapse
type Model struct{…}

Standard metadata for persistent, named resources (e.g., agents, tools, prompts)

ID string

Unique identifier for the resource (prefixed ULID, e.g., “agent_01HXK…”)

AccountID string

Account this resource belongs to for multi-tenant isolation (prefixed ULID)

CreatedAt Time

Timestamp when this resource was created

formatdate-time
Name string

Human-readable name for the resource (e.g., “Customer Support Agent”, “Email Tool”) Required for resources that users interact with directly

ProfileID string

ID of the actor (user or service account) that created this resource

WorkspaceID string

Workspace this resource belongs to for organizational grouping (prefixed ULID)

BundleKey stringOptional

Optional bundle ownership key. When set, indicates the resource is managed by a configuration bundle identified by this key. Used by BulkWorkspaceResources.Apply to track which resources belong to which bundle for reconciliation / soft-delete on re-apply.

ExternalID stringOptional

External ID for the resource (e.g., a workflow ID from an external system)

Labels map[string, string]Optional

Arbitrary key-value pairs for categorization and filtering Examples: {“environment”: “production”, “team”: “platform”, “version”: “v2”}

Model specification

Family stringOptional

The model family (e.g., “claude-sonnet-4.6”, “gpt-5.4”, “gemini-2.5-flash”)

InputPricePerMillionTokens stringOptional

Cost per million input tokens in cents (e.g., 300 = $3.00)

MaxInputTokens int64Optional

Maximum number of input tokens the model supports

formatint32
MaxOutputTokens int64Optional

Maximum number of output tokens the model can generate

formatint32
OutputPricePerMillionTokens stringOptional

Cost per million output tokens in cents (e.g., 1500 = $15.00)

Provider stringOptional

The model provider (e.g., “anthropic”, “openai”, “google”)

Status ModelSpecStatusOptional

The status of the model in the workspace

formatenum
One of the following:
const ModelSpecStatusModelStatusUnspecified ModelSpecStatus = "MODEL_STATUS_UNSPECIFIED"
const ModelSpecStatusModelStatusEnabled ModelSpecStatus = "MODEL_STATUS_ENABLED"
const ModelSpecStatusModelStatusDisabled ModelSpecStatus = "MODEL_STATUS_DISABLED"
type ModelSpec struct{…}
Family stringOptional

The model family (e.g., “claude-sonnet-4.6”, “gpt-5.4”, “gemini-2.5-flash”)

InputPricePerMillionTokens stringOptional

Cost per million input tokens in cents (e.g., 300 = $3.00)

MaxInputTokens int64Optional

Maximum number of input tokens the model supports

formatint32
MaxOutputTokens int64Optional

Maximum number of output tokens the model can generate

formatint32
OutputPricePerMillionTokens stringOptional

Cost per million output tokens in cents (e.g., 1500 = $15.00)

Provider stringOptional

The model provider (e.g., “anthropic”, “openai”, “google”)

Status ModelSpecStatusOptional

The status of the model in the workspace

formatenum
One of the following:
const ModelSpecStatusModelStatusUnspecified ModelSpecStatus = "MODEL_STATUS_UNSPECIFIED"
const ModelSpecStatusModelStatusEnabled ModelSpecStatus = "MODEL_STATUS_ENABLED"
const ModelSpecStatusModelStatusDisabled ModelSpecStatus = "MODEL_STATUS_DISABLED"