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

# Update Environment

> Updates a non-global environment. Only provided fields are changed. `PATCH /v1/environments/global` returns 400 with a pointer to the nested resource endpoints (variables, files, skills, MCPs, warm hooks) — the Global env's metadata cannot be edited directly. Source-backed personal environments cannot change `repository_id`, `repository_set_id`, or `system_prompt`, but may set `personal_preferences`, instructions appended after the inherited system prompt. Returns 409 when an automation still references the environment in a way that blocks the requested change.



## OpenAPI

````yaml /openapi.json patch /v1/environments/{id}
openapi: 3.1.0
info:
  title: Replica API
  version: 2.0.0
  description: >-
    The Replica API allows you to programmatically manage cloud workspaces for
    AI agents. Use this API to manage environments (the org-scoped primitive
    workspaces are created from — including variables, files, skills, MCPs, warm
    hooks, start hooks, and warm pools), create and manage replicas, send
    messages, manage chats, stream events, read connected repositories and
    repository sets, and configure automations.
servers:
  - url: https://api.tryreplicas.com
    description: Production API
security:
  - apiKey: []
tags:
  - name: Environments
    description: >-
      Manage environments — the primitive that workspaces are created from.
      Variables, files, skills, MCPs, warm-hooks, and warm-pools are all scoped
      to an environment. Every organization has a singleton Global environment
      whose values apply to every workspace. Personal environments are scoped to
      the authenticated user and can be standalone or source-backed by a team
      environment.
  - name: Repository
    description: >-
      Read repositories and repository sets connected to your organization.
      Repositories are the underlying GitHub-connection layer; bind them to an
      environment to use them in workspaces.
  - name: Replica
    description: >-
      Manage replicas (workspaces) for AI agents. `/v1/replica` endpoints accept
      API keys and workspace engine-secret authentication; user-session JWTs are
      not accepted.
  - name: Terminal
    description: Manage interactive terminal sessions in active workspaces
  - name: Preview
    description: Manage public preview URLs for workspace ports
  - name: Profile
    description: Read and update the authenticated user's profile
  - name: Credentials
    description: >-
      Manage coding-agent credentials for an organization or the authenticated
      user
  - name: Google Search Console
    description: >-
      Read Search Console properties, performance, sitemaps, and URL inspection
      results through a connected Google account
  - name: Slack
    description: Connect Slack identities and route threads to Replicas workspaces
  - name: Linear
    description: Connect Linear identities to Replicas accounts
  - name: Automation
    description: >-
      Create and manage automations that trigger replicas on a schedule or in
      response to events
  - name: Downloads
    description: Download Replicas applications
  - name: Media
    description: >-
      Read workspace media and obtain short-lived download or inline preview
      URLs
  - name: Analytics
    description: >-
      Read aggregated activity and usage metrics for your organization: compute
      minutes, workspaces created by source, and pull request throughput over a
      time range.
  - name: Presence
    description: >-
      Read and report ephemeral member presence: who is online, where they are
      (environment or workspace), and whether they are typing. Presence is
      backed by short-lived keys rather than the database and broadcast to other
      members over the events stream.
paths:
  /v1/environments/{id}:
    patch:
      tags:
        - Environments
      summary: Update Environment
      description: >-
        Updates a non-global environment. Only provided fields are changed.
        `PATCH /v1/environments/global` returns 400 with a pointer to the nested
        resource endpoints (variables, files, skills, MCPs, warm hooks) — the
        Global env's metadata cannot be edited directly. Source-backed personal
        environments cannot change `repository_id`, `repository_set_id`, or
        `system_prompt`, but may set `personal_preferences`, instructions
        appended after the inherited system prompt. Returns 409 when an
        automation still references the environment in a way that blocks the
        requested change.
      operationId: updateEnvironment
      parameters:
        - name: id
          in: path
          required: true
          description: >-
            Environment UUID. The literal `global` is rejected with 400 — see
            endpoint description.
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateEnvironmentRequest'
      responses:
        '200':
          description: Environment updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnvironmentResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    UpdateEnvironmentRequest:
      type: object
      description: >-
        Request body for updating an environment. Only provided fields are
        changed. `repository_id` and `repository_set_id` remain mutually
        exclusive when both are supplied.
      properties:
        name:
          type: string
        description:
          type:
            - string
            - 'null'
        repository_id:
          type:
            - string
            - 'null'
          format: uuid
        repository_set_id:
          type:
            - string
            - 'null'
          format: uuid
        system_prompt:
          type:
            - string
            - 'null'
        mobile_testing_enabled:
          type: boolean
          description: >-
            Enable or disable mobile testing. Only valid on team environments;
            enabling requires a trial, Team, or Enterprise plan and otherwise
            returns `PLAN_UPGRADE_REQUIRED`.
        personal_preferences:
          type:
            - string
            - 'null'
          description: >-
            Only settable on personal environments. Appended after the
            (inherited) system prompt.
    EnvironmentResponse:
      type: object
      properties:
        environment:
          $ref: '#/components/schemas/Environment'
      required:
        - environment
    Environment:
      type: object
      description: >-
        An environment — the config bundle workspaces are created from. Holds an
        optional repository binding plus the runtime variables, files, skills,
        MCPs, and warm hook applied to every workspace built from it. Every
        organization has a singleton Global environment (`is_global: true`)
        whose values are layered onto every other environment. Personal
        environments have `user_id` set and are visible only to their owner.
        Source-backed personal environments expose source-derived repository
        binding and system prompt values while keeping the source link in
        `source_environment_id`.
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier
        organization_id:
          type: string
          format: uuid
          description: Owning organization
        user_id:
          type:
            - string
            - 'null'
          format: uuid
          description: Owning user for personal environments. Null for team environments.
        name:
          type: string
          description: Human-readable name
        description:
          type:
            - string
            - 'null'
          description: Optional description
        is_global:
          type: boolean
          description: >-
            True for the org's singleton Global environment, whose values apply
            to every workspace. Global envs cannot be deleted, cannot be edited
            via PATCH, and have no repository binding.
        repository_id:
          type:
            - string
            - 'null'
          format: uuid
          description: >-
            Bound repository ID. Mutually exclusive with `repository_set_id`.
            Both null = unbound repo-less workspace.
        repository_set_id:
          type:
            - string
            - 'null'
          format: uuid
          description: Bound repository set ID. Mutually exclusive with `repository_id`.
        system_prompt:
          type:
            - string
            - 'null'
          description: Optional system prompt prepended to every workspace's coding agent.
        mobile_testing_enabled:
          type: boolean
          description: >-
            Whether workspaces from this environment receive mobile simulator
            access. Available on trial, Team, and Enterprise plans and
            configurable only on team environments.
        personal_preferences:
          type:
            - string
            - 'null'
          description: >-
            User-authored instructions appended after the (inherited) system
            prompt. Only settable on personal environments, and editable even
            when source-backed.
        source_environment_id:
          type:
            - string
            - 'null'
          format: uuid
          description: >-
            Source team environment for source-backed personal environments.
            Null for standalone personal environments and team environments.
        variable_count:
          type: integer
          description: Number of variables attached to this environment
        file_count:
          type: integer
          description: Number of files
        skill_count:
          type: integer
          description: Number of enabled skills
        mcp_count:
          type: integer
          description: Number of MCPs
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
      required:
        - id
        - organization_id
        - user_id
        - name
        - description
        - is_global
        - repository_id
        - repository_set_id
        - system_prompt
        - mobile_testing_enabled
        - personal_preferences
        - source_environment_id
        - created_at
        - updated_at
    Error:
      type: object
      properties:
        error:
          type: string
          description: Error message
        details:
          type:
            - string
            - 'null'
          description: Additional error details
      required:
        - error
  responses:
    BadRequest:
      description: Bad request - Missing or invalid parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Unauthorized - Invalid or missing API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Conflict:
      description: >-
        Conflict - Resource already exists or operation conflicts with current
        state
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    InternalServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: >-
        API key authentication. Obtain your API key from the Replicas dashboard
        under Organization → Settings → API Keys. User-session JWTs are not
        accepted by `/v1/replica` endpoints.

````