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

# Restore Warm Pool Snapshot

> Creates a new warm-pool generation from a retained snapshot without rerunning the warm hook. Existing workspaces from the selected generation remain the serving fallback until the new generation is ready. This restores the pool filesystem state but does not change the environment's currently saved warm-hook script. Only available for enabled pools on snapshot-capable providers. Source-backed personal environments must restore snapshots through their source environment.



## OpenAPI

````yaml /openapi.json post /v1/environments/{environmentId}/warm-pool-snapshots/{snapshotId}/restore
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
  - 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: 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/{environmentId}/warm-pool-snapshots/{snapshotId}/restore:
    post:
      tags:
        - Environments
      summary: Restore Warm Pool Snapshot
      description: >-
        Creates a new warm-pool generation from a retained snapshot without
        rerunning the warm hook. Existing workspaces from the selected
        generation remain the serving fallback until the new generation is
        ready. This restores the pool filesystem state but does not change the
        environment's currently saved warm-hook script. Only available for
        enabled pools on snapshot-capable providers. Source-backed personal
        environments must restore snapshots through their source environment.
      operationId: restoreEnvironmentWarmPoolSnapshot
      parameters:
        - name: environmentId
          in: path
          required: true
          description: Environment UUID, or the literal string `global`.
          schema:
            type: string
        - name: snapshotId
          in: path
          required: true
          description: >-
            Snapshot record UUID from the `snapshots` array returned by GET
            `/v1/environments/{environmentId}/warm-hooks`.
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Snapshot restore started
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestoreWarmPoolSnapshotResponse'
        '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:
    RestoreWarmPoolSnapshotResponse:
      type: object
      properties:
        warm_pool:
          $ref: '#/components/schemas/WarmPoolConfigWithStats'
        restored_generation:
          type: integer
          description: Generation of the snapshot that was restored and is now installed
      required:
        - warm_pool
        - restored_generation
    WarmPoolConfigWithStats:
      type: object
      description: Warm pool configuration plus current pool counts.
      properties:
        id:
          type: string
          format: uuid
        organization_id:
          type: string
          format: uuid
        environment_id:
          type: string
          format: uuid
        enabled:
          type: boolean
        target_size:
          type: integer
          description: Target number of pre-warmed workspaces (platform-controlled)
        generation:
          type: integer
          description: >-
            Monotonic counter bumped on every invalidation. Workspaces and
            snapshots carry the generation they were built for; anything older
            is stale by derivation.
        error_count:
          type: integer
          description: >-
            Consecutive reconcile failures since the last success. Resets to 0
            on success; drives exponential backoff via `next_retry_at`.
        next_retry_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Earliest time the next reconcile pass may run for this config. Null
            when not in backoff.
        last_error_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            When the most recent reconcile error was recorded (null if no
            current error).
        last_error_message:
          type:
            - string
            - 'null'
          description: Most recent reconcile error message (null if no current error).
        has_base_snapshot:
          type: boolean
          description: >-
            True when a base snapshot is installed for the current generation.
            For snapshot-capable providers (E2B), distinguishes the initial
            seed-build phase (false + warming > 0) from the clone-refill phase
            (true + warming > 0). Always false on providers without live
            snapshots.
        updated_at:
          type: string
          format: date-time
        ready_count:
          type: integer
          description: >-
            Number of pre-warmed workspaces at the current generation that are
            ready to be assigned
        stale_count:
          type: integer
          description: >-
            Number of ready workspaces at older generations. Still claimable as
            a fallback; trimmed by reconcile when over target.
        warming_count:
          type: integer
          description: >-
            Number of workspaces at the current generation that are currently
            warming (warm hooks running)
        snapshotting_count:
          type: integer
          description: >-
            Number of seed workspaces currently capturing a base snapshot (E2B
            only). Always 0 on providers without live snapshots.
        last_failure_at:
          type:
            - string
            - 'null'
          format: date-time
          description: When the most recent warm-up failure occurred (null if never)
        last_failure_reason:
          type:
            - string
            - 'null'
          description: Reason for the most recent warm-up failure
      required:
        - id
        - organization_id
        - environment_id
        - enabled
        - target_size
        - generation
        - error_count
        - next_retry_at
        - last_error_at
        - last_error_message
        - has_base_snapshot
        - updated_at
        - ready_count
        - stale_count
        - warming_count
        - snapshotting_count
        - last_failure_at
        - last_failure_reason
    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.

````