Create an intern
Creates an intern in an explicit workspace. The operation also creates its private vault. It can start provisioning immediately or wait for a later provision call. A retry with the same idempotency key and body resumes unfinished work. 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.
Headers
Key that makes retries resume the same create operation, from 1 through 255 characters. An empty or longer key is refused with 400. Without the header, the server derives a stable key from the request body.
Key that makes retries resume the same create operation, from 1 through 255 characters. An empty or longer key is refused with 400. Without the header, the server derives a stable key from the request body.
Request body
Example request
{
"name": "research-assistant",
"provision": true,
"workspace_id": "89f9f5b2-3f89-4eaf-83ca-5ceae149e8bb"
}Response
A completed create operation was replayed.
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.14126
- ○
added the non-success response with the status
response-non-success-status-added
- ○
- ●
for the
headerrequest parameterIdempotency-Key, the maxLength was set to255request-parameter-max-length-set
- ○
added the optional property
/to the response with the statusresponse-optional-property-added
- ○
added the optional property
/to the response with the statusresponse-optional-property-added
- ○
added the optional property
/to the response with the statusresponse-optional-property-added
- ○
added the optional property
/to the response with the statusresponse-optional-property-added
- ○
added the optional property
/to the response with the statusresponse-optional-property-added
- ○
added the optional property
/to the response with the statusresponse-optional-property-added
- ○
added the optional property
/to the response with the statusresponse-optional-property-added
- ○
added the optional property
/to the response with the statusresponse-optional-property-added
- ○
added the optional property
/to the response with the statusresponse-optional-property-added
- ●
- ○
the request property
became optionalrequest-property-became-optional
- ○
- ▲
removed the required property
from the response with the statusresponse-required-property-removed
- ▲
removed the required property
from the response with the statusresponse-required-property-removed
- ▲
removed the required property
from the response with the statusresponse-required-property-removed
- ▲
removed the required property
from the response with the statusresponse-required-property-removed
- ▲
removed the required property
/from the response with the statusresponse-required-property-removed
- ▲
removed the required property
/from the response with the statusresponse-required-property-removed
- ▲
removed the required property
/from the response with the statusresponse-required-property-removed
- ▲
removed the required property
/from the response with the statusresponse-required-property-removed
- ▲
removed the required property
/from the response with the statusresponse-required-property-removed
- ▲
removed the required property
/from the response with the statusresponse-required-property-removed
- ▲
removed the required property
from the response with the statusresponse-required-property-removed
- ▲
removed the required property
from the response with the statusresponse-required-property-removed
- ▲
removed the required property
from the response with the statusresponse-required-property-removed
- ▲
removed the required property
from the response with the statusresponse-required-property-removed
- ○
added the required property
to the response with the statusresponse-required-property-added
- ○
added the required property
to the response with the statusresponse-required-property-added
- ○
added the required property
to the response with the statusresponse-required-property-added
- ○
added the required property
to the response with the statusresponse-required-property-added
- ○
added the required property
/to the response with the statusresponse-required-property-added
- ○
added the required property
/to the response with the statusresponse-required-property-added
- ○
added the required property
/to the response with the statusresponse-required-property-added
- ○
added the required property
/to the response with the statusresponse-required-property-added
- ○
added the required property
/to the response with the statusresponse-required-property-added
- ○
added the required property
/to the response with the statusresponse-required-property-added
- ○
added the required property
to the response with the statusresponse-required-property-added
- ○
added the required property
to the response with the statusresponse-required-property-added
- ○
added the required property
to the response with the statusresponse-required-property-added
- ○
added the required property
to the response with the statusresponse-required-property-added
- ▲
- ○
endpoint added
endpoint-added
- ○