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. A non-empty body must declare Content-Type: application/json or it is refused with 415. 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 in author/slug form (an optional :variant suffix is accepted). Other shapes are refused with 400. Null restores the workspace default. Takes effect on the next provision: until then GET shows this configured model while chat chunks show the model the running intern reports.

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.

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

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

updated_atstring required

ISO 8601 last update time.

vault_idstring nullable required

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

workspace_idstring required

Workspace that owns the intern and scopes its secrets.

Example response

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

Changes

Changed in 5 of the 303 revisions of this API.917

    • ○

      added the non-success response with the status

      response-non-success-status-added

    • ○

      added the non-success response with the status

      response-non-success-status-added

    • ○

      added the optional property / to the response with the status

      response-optional-property-added

    • ○

      added the optional property / to the response with the status

      response-optional-property-added

    • ○

      added the optional property / to the response with the status

      response-optional-property-added

    • ○

      added the optional property / to the response with the status

      response-optional-property-added

    • ○

      added the optional property / to the response with the status

      response-optional-property-added

    • ○

      added the optional property / to the response with the status

      response-optional-property-added

    • ○

      added the optional property / to the response with the status

      response-optional-property-added

    • ▲

      the request property's minLength was increased from 0 to 1

      request-property-min-length-increased

    • ▲

      added the pattern ^[A-Za-z0-9~._:@+-]+\/[A-Za-z0-9~._:@+-]+$ to the request property

      request-property-pattern-added

  • c4cafb1919d177See the full diff
    • ▲

      removed the required property from the response with the status

      response-required-property-removed

    • ▲

      removed the required property from the response with the status

      response-required-property-removed

    • ▲

      removed the required property / from the response with the status

      response-required-property-removed

    • ▲

      removed the required property / from the response with the status

      response-required-property-removed

    • ▲

      removed the required property / from the response with the status

      response-required-property-removed

    • ▲

      removed the required property from the response with the status

      response-required-property-removed

    • ▲

      removed the required property from the response with the status

      response-required-property-removed

    • ○

      added the required property to the response with the status

      response-required-property-added

    • ○

      added the required property to the response with the status

      response-required-property-added

    • ○

      added the required property / to the response with the status

      response-required-property-added

    • ○

      added the required property / to the response with the status

      response-required-property-added

    • ○

      added the required property / to the response with the status

      response-required-property-added

    • ○

      added the required property to the response with the status

      response-required-property-added

    • ○

      added the required property to the response with the status

      response-required-property-added

    • ○

      endpoint added

      endpoint-added