Interns

Update an intern

Changes the intern name, description, instructions or model. Omitted fields stay unchanged. The request body is capped at 1048576 bytes and a larger body is refused with 413. The API key selects the caller, workspace and visible interns. There is no default workspace fallback. Requests on regional hostnames such as eu.openrouter.ai are refused. API key required.

patch/interns/{internId}

Path parameters

internIdstring required

ID of an intern visible to the authenticated API key.

Example:7c9e6679-7425-40de-944b-e07fc1f90ae7

ID of an intern visible to the authenticated API key.

Request body

descriptionstring nullable

New free-form description. Null clears it.

instructionsstring nullable

New standing instructions. Null clears them.

modelstring nullable

New OpenRouter model slug. Null restores the workspace default.

namestring

New intern name, unique per creator within the workspace.

Example request

{
  "description": "Researches customer questions",
  "model": "openai/gpt-5.4"
}

Response

Updated intern.

attached_vault_idstring nullable required

Vault the intern borrows from another intern, or null when it borrows none.

createdAtstring required

ISO 8601 creation time.

descriptionstring nullable required

Free-form description.

hostnamestring nullable required

Public hostname the intern is reachable at, or null until provisioning has assigned one.

idstring required

Intern id.

instructionsstring nullable required

Standing instructions the intern boots with.

lastFailureMessagestring nullable required

Why the last provisioning attempt failed, when status is failed.

modelstring nullable required

OpenRouter model slug the intern runs, or null for the workspace default.

namestring required

Intern name, unique per creator within a workspace.

status'awaiting_slack_install' | 'queued' | 'provisioning' | 'running' | 'failed' | 'stopped' | 'destroying' | 'destroy_failed' required

Lifecycle status.

updatedAtstring required

ISO 8601 last update time.

vault_idstring nullable required

Vault the intern owns, or null before it has been created.

workspaceIdstring required

Workspace that owns the intern and scopes its secrets.

Example response

{
  "attached_vault_id": null,
  "createdAt": "2026-09-16T08:30:00.000Z",
  "description": "Researches customer questions",
  "hostname": "research-assistant.openrouter.ai",
  "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "instructions": null,
  "lastFailureMessage": null,
  "model": "openai/gpt-5.4",
  "name": "research-assistant",
  "progress": null,
  "status": "running",
  "updatedAt": "2026-09-16T08:45:00.000Z",
  "vault_id": "b431c59d-6eed-41ac-bc89-9a89be79a121",
  "workspaceId": "89f9f5b2-3f89-4eaf-83ca-5ceae149e8bb"
}

Changes