Skip to main content
PUT
Update an institution

Authorizations

x-access-token
string
header
required

JWT token passed in x-access-token header

Path Parameters

id
string
required

Institution ID

Body

application/json

Any combination of institution fields; only the keys sent are written.

conversationModel
string

Conversation model for the twin ('' = the platform default).

conversationFallbackModel
string

Fallback conversation model — answers when the conversation model fails before any reply started. '' inherits the platform default (System Models → Conversation Fallback, unset until an operator picks one); otherwise a catalog conversation model or a custom:<aimodelId> reference to one of this twin's active custom conversation models. Any other value is rejected with 400.

presentationShareAudiences
enum<string>[]

Presentation videos — the audiences a share link may have (default [public, twin]; twin admins). An unknown or repeated value is rejected with 400.

Available options:
public,
twin
presentationDefaultLook
enum<string> | null

Presentation videos — the twin's default look for new videos (twin admins, not super-only). null or absent = no default. Any other value is rejected with 400.

Available options:
dark-tech,
editorial,
bold,
minimal,
warm-human,
null
presentationFilePicturesPublic
boolean
default:false

Presentation videos — vault file pictures may show on PUBLIC share links and in public-footer exports (twin admins, not super-only; default false = twin-audience links only). A non-boolean is rejected with 400; a change is audited.

roleModels
object

Twin-wide role-model pins (All modes): role slot → model id. Slots: conductorModel, plannerModel, designerModel, coderModel, testerModel, writerModel, researcherModel, agenticLoopModel, preflightModel, specWriterModel, planReviewerModel, judgeModel, vision (legacy visionModel). The coder level slots are refused here (use tierModels). '' or null clears a pin; an unknown slot, a non-slug value or a model the catalog does not allow for that role is refused with 400.

roleEfforts
object

Twin-wide reasoning effort per role slot (All modes); same slots as roleModels. Empty clears a slot.

tierModels
object

Per-mode model pins (Map mode → role slot → model id), authorized like roleModels (institutions.edit). Modes: basic, advanced, expert, mythical (auto has no pool). Slots: the roleModels slots plus the coder level slots coderUpgradeModel (harder tasks) and coderVisualModel (games and simulations), which are accepted ONLY here, never in roleModels. A mode pin outranks the twin-wide roleModels pin and the platform per-mode pick; '' or null clears one pin, a null mode clears that mode. A coder level pin is used when the run's coder dispatch picks that level; with a twin-wide or mode coder pin and no level pins, the automatic level choice stays off. Values must be model-id slugs the catalog allows for that role (400 otherwise).

tierEfforts
object

Per-mode reasoning effort (Map mode → role slot → effort), same vocabulary, authorization and whole-map semantics as roleEfforts. Modes: basic, advanced, expert, mythical. Slots: the roleEfforts slots except conductorModel (the conductor has no per-mode effort), plus coderUpgradeModel and coderVisualModel (the effort for a coder dispatch that ran that level). Order on a run: this mode cell, then roleEfforts, then the platform effort, else the model's own default. Empty clears a cell.

ltiContextIds
string[]

Canvas course ids connected to this twin. Only NEW ids (not already held by this twin) are claim-checked: one already held by a usable Digital Twin is refused (400, naming it) before anything is written — one twin per course; after the write, each new id is moved off any disabled/deleted holders that still listed it.

Response

Institution updated

success
boolean
Example:

true

message
string

Success message

Example:

"User institution deleted successfully"