> ## Documentation Index
> Fetch the complete documentation index at: https://openrouter.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Intern

Public lifecycle state and settings for one intern.

## Fields

| Field | Type | Required | Description |
| - | - | - | - |
| `attached_vault_id` | *Nullable\[str]* | :heavy\_check\_mark: | Vault the intern borrows from another intern, or null when it borrows none. |
| `created_at` | *str* | :heavy\_check\_mark: | ISO 8601 creation time. |
| `description` | *Nullable\[str]* | :heavy\_check\_mark: | Free-form description. |
| `hostname` | *Nullable\[str]* | :heavy\_check\_mark: | Public hostname the intern is reachable at, or null until provisioning has assigned one. |
| `id` | *str* | :heavy\_check\_mark: | Intern id. |
| `instructions` | *Nullable\[str]* | :heavy\_check\_mark: | Standing instructions the intern boots with. |
| `last_failure_message` | *Nullable\[str]* | :heavy\_check\_mark: | Why the last provisioning attempt failed, when status is failed. |
| `model` | *Nullable\[str]* | :heavy\_check\_mark: | OpenRouter model slug the intern runs, or null for the workspace default. |
| `name` | *str* | :heavy\_check\_mark: | Intern name, unique per creator within a workspace. |
| `progress` | [Nullable\[components.Progress\]](../components/progress.mdx) | :heavy\_check\_mark: | Active provisioning step, or null once provisioning has settled. |
| `status` | [components.InternStatus](../components/internstatus.mdx) | :heavy\_check\_mark: | Lifecycle status. |
| `updated_at` | *str* | :heavy\_check\_mark: | ISO 8601 last update time. |
| `vault_id` | *Nullable\[str]* | :heavy\_check\_mark: | Vault the intern owns, or null before it has been created. |
| `workspace_id` | *str* | :heavy\_check\_mark: | Workspace that owns the intern and scopes its secrets. |
