Appearance
Models
Model operations include discovery from configured providers, adding/removing models in your namespace, and simple listing endpoints.
Endpoints
GET /v1/models
Returns a combined list of your models plus chat-eligible agents.
- Owned agents appear here only when they are published.
- Shared agents appear here when they are published and explicitly shared to the authenticated caller.
- Shared agents use a canonical id of
shared/<ownerUsername>/<slug>.
Each entry:
json
{ "id": "my-gpt4", "object": "model", "owned_by": "user" }Shared agent example:
json
{ "id": "shared/john_doe/customer-support-bot", "object": "agent", "owned_by": "john_doe" }Example:
ts
await fetch("https://agents.missionsquad.ai/v1/models", {
headers: { "x-api-key": process.env.MSQ_API_KEY! }
});GET /v1/modelmap
Returns a detailed map keyed by name. Secrets are masked.
ts
await fetch("https://agents.missionsquad.ai/v1/modelmap", {
headers: { "x-api-key": process.env.MSQ_API_KEY! }
});POST /v1/core/models — Discover provider models
Body:
ts
{
providerKey: string,
url?: string, // optional override
apiKey?: string // optional ad-hoc; stored creds take precedence if already configured
}Notes:
- If the provider is already configured for your account, stored credentials are used and any
apiKey/urlin the request body are ignored.
POST /v1/core/add/model — Add a model in your namespace
Body:
json
{
"name": "my-claude",
"description": "Claude Sonnet 4.6",
"providerKey": "anthropic",
"model": "claude-sonnet-4-6",
"testResponse": true,
"getAllApiModels": false,
"extractEmbeddingModels": false,
"programmaticToolCalling": true
}Full body fields:
ts
{
name: string;
description: string;
providerKey: string;
model: string; // the provider's model id
testResponse?: boolean;
getAllApiModels?: boolean;
extractEmbeddingModels?: boolean;
programmaticToolCalling?: boolean; // accepts boolean or "true"/"false"; see below
}Notes:
- Do not include
apiKeyorurlhere; they resolve from your provider configuration. - Embedding models: If
nameincludes"embed"or you pass"extractEmbeddingModels": true, the model is stored as an embedding model. - Requests using unsupported embedding models return
400with a specific message (e.g.,text-embedding-3-largeis not supported). programmaticToolCallingaccepts a boolean or the strings"true"/"false"; an invalid value returns400.
Programmatic tool calling
Programmatic tool calling (PTC) is Anthropic's "code execution"–style tool use, where the model writes and runs code to invoke tools instead of emitting normal tool-use blocks. In MissionSquad it is a property of the model configuration, set with the programmaticToolCalling field on POST /v1/core/add/model.
- It is not a chat-completions request parameter and not an agent-config field. An agent inherits PTC from its underlying model.
- When you omit
programmaticToolCalling, it defaults based on the model: it is enabled automatically for Anthropic Claude Sonnet/Opus 4.6 and newer, and disabled for Haiku and for Claude 4.5 and earlier. PassprogrammaticToolCalling: falseto force it off, ortrueto force it on. - PTC requires tools to be available to the model and is enforced/mapped downstream by the provider adapter; it has no effect on providers other than Anthropic.
POST /v1/core/delete/model — Delete a model or embedding model
Body:
json
{ "modelId": "my-gpt4" }