> ## Documentation Index
> Fetch the complete documentation index at: https://ravion-b90c0359-changelog-week-2026-10-12.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Get ExecutionEnvironment by id

> Retrieve a single AWS execution environment by ID. Returns its full configuration and current state. GET /execution-environments/{id} in the Ravion API…



## OpenAPI

````yaml https://api.ravion.com/openapi.yaml get /execution-environments/{id}
openapi: 3.0.0
info:
  title: Ravion
  version: 0.0.0
servers:
  - url: https://api.ravion.com
security:
  - BearerAuth: []
tags:
  - name: Projects
  - name: Environments
  - name: FeatureFlags
  - name: Pipelines
  - name: PipelineRuns
  - name: TerraformResources
  - name: TerraformExecutionSummaries
  - name: PipelineStepExecutions
  - name: AwsCloudWatch
  - name: PipelineVersions
  - name: Organizations
  - name: Stacks
  - name: StackWorkspaces
  - name: Auth
  - name: OAuth
  - name: User
  - name: Health
  - name: Memberships
  - name: ServiceAccounts
  - name: AwsDefaultNetworks
  - name: AwsAccounts
  - name: ApiKeys
  - name: AwsAmp
  - name: EksPrometheus
  - name: EksLoki
  - name: ExecutionEnvironments
  - name: ModuleDefinitions
  - name: ModuleCategories
  - name: ModuleVersions
  - name: ModuleInstances
  - name: DefaultValueDefinitions
  - name: DefaultValues
  - name: CodeSources
  - name: Github
  - name: GitHub Actions
  - name: Gitlab
  - name: Git
  - name: Values
  - name: Deployments
  - name: DeploymentResources
  - name: InfrastructureEvents
  - name: WebSocket
  - name: Domains
  - name: AcmCertificates
  - name: Describe
  - name: Reports
  - name: BillingPlans
  - name: BillingAccounts
  - name: BillingCycles
  - name: BillingUsageSummaries
  - name: BillingAddOns
  - name: BillingInvoices
  - name: Authorization
paths:
  /execution-environments/{id}:
    get:
      tags:
        - ExecutionEnvironments
      summary: Get ExecutionEnvironment by id
      description: >-
        Retrieve a single AWS execution environment by ID. Returns its full
        configuration and current state.
      operationId: GetExecutionEnvironment
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties: false
                properties:
                  data:
                    $ref: '#/components/schemas/ExecutionEnvironment.Union'
                required:
                  - data
                type: object
          description: The request has succeeded.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors.UserFacingErrorData'
          description: The request is invalid or malformed.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors.UserFacingErrorData'
          description: You are not authenticated
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors.UserFacingErrorData'
          description: You do not have permission to access this resource.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors.UserFacingErrorData'
          description: The server cannot find the requested resource.
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors.UserFacingErrorData'
          description: Server error
components:
  schemas:
    ExecutionEnvironment.Union:
      discriminator:
        mapping:
          AWS: '#/components/schemas/ExecutionEnvironment.Aws'
        propertyName: type
      oneOf:
        - $ref: '#/components/schemas/ExecutionEnvironment.Aws'
      type: object
    Errors.UserFacingErrorData:
      additionalProperties: false
      description: |-
        User-facing error presentation data.
        This is what the API returns to the frontend after formatting ErrorData
        using CEL templates from the error registry.

        Used for both:
        - Error fields on domain models (e.g., PipelineRun.error)
        - API error response bodies (HTTP 4xx/5xx responses)
      properties:
        action:
          allOf:
            - $ref: '#/components/schemas/Errors.Action'
          description: Optional action to help resolve the error
        code:
          description: Full error code, e.g., "Ravion:Pipeline:NOT_FOUND"
          type: string
        description:
          description: Additional description with more details
          type: string
        details:
          description: Structured details rendered as user-facing sections.
          items:
            $ref: '#/components/schemas/Errors.UserFacingErrorDetailSection'
          type: array
        isInternal:
          description: >-
            Indicates whether this error is internal (only set when
            ShowInternal=true).

            This allows SUPERADMINs to identify internal errors while viewing
            full details.
          type: boolean
        message:
          description: Main error message (required)
          type: string
        metadata:
          additionalProperties: {}
          description: >-
            Error params/metadata. Stripped for internal errors unless
            superadmin.
          type: object
        requestId:
          description: Request ID for correlating errors with server logs.
          type: string
      required:
        - code
        - message
      type: object
    ExecutionEnvironment.Aws:
      additionalProperties: false
      properties:
        awsAccountId:
          minLength: 1
          type: string
        createdAt:
          allOf:
            - $ref: '#/components/schemas/UtcDateTime'
          readOnly: true
        givenId:
          allOf:
            - $ref: '#/components/schemas/GivenId'
          description: >-
            User-provided execution environment identifier. Must be unique
            within organization.
          maxLength: 60
          minLength: 1
        id:
          readOnly: true
          type: string
        name:
          minLength: 1
          type: string
        organizationId:
          readOnly: true
          type: string
        region:
          minLength: 1
          type: string
        sandboxDefaults:
          allOf:
            - $ref: '#/components/schemas/ExecutionEnvironment.SandboxPoolDefaults'
          description: >-
            Current global sandbox-pool defaults, separate from the
            environment's sparse overrides.
          readOnly: true
        sandboxes:
          allOf:
            - $ref: '#/components/schemas/ExecutionEnvironment.SandboxPoolConfig'
          description: >-
            Sparse overrides for the sandbox defaults. Send `{}` to enable a
            pool that inherits global defaults, `null` to remove it, or omit it
            on a patch to leave the pool as it is.
          nullable: true
          type: object
          x-go-type: nullable.Nullable[ExecutionEnvironmentSandboxPoolConfig]
          x-go-type-skip-optional-pointer: true
        securityGroupId:
          minLength: 1
          type: string
        subnetId:
          minLength: 1
          type: string
        type:
          enum:
            - AWS
          type: string
        updatedAt:
          allOf:
            - $ref: '#/components/schemas/UtcDateTime'
          readOnly: true
        vpcId:
          minLength: 1
          type: string
      required:
        - id
        - createdAt
        - updatedAt
        - organizationId
        - givenId
        - name
        - region
        - type
        - sandboxDefaults
        - vpcId
        - subnetId
        - securityGroupId
        - awsAccountId
      type: object
    Errors.Action:
      additionalProperties: false
      description: Action to help user resolve the error
      properties:
        label:
          description: Button/link label text
          type: string
        url:
          description: URL to navigate to for resolution
          type: string
      required:
        - label
        - url
      type: object
    Errors.UserFacingErrorDetailSection:
      additionalProperties: false
      description: Structured user-facing error detail section.
      properties:
        items:
          description: List of detail values for this section.
          items:
            type: string
          type: array
        object:
          additionalProperties: {}
          description: Structured detail payload for object rendering.
          type: object
        render:
          description: Rendering hint for clients. Valid values are list or object.
          type: string
        title:
          description: Detail section title shown in the UI.
          type: string
      required:
        - title
        - render
      type: object
    UtcDateTime:
      description: UTC RFC3339 timestamp with a required Z suffix
      format: date-time
      pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{1,9})?Z$
      type: string
      x-go-type: apitypes.UTCDateTime
      x-go-type-import:
        name: apitypes
        path: ravion/api-go/pkg/apitypes
    GivenId:
      description: User-provided identifier pattern used by all givenId fields
      maxLength: 60
      pattern: ^[a-zA-Z0-9][a-zA-Z0-9_-]*$
      type: string
    ExecutionEnvironment.SandboxPoolDefaults:
      additionalProperties: false
      properties:
        capacityTypes:
          items:
            enum:
              - ON_DEMAND
              - SPOT
            type: string
          type: array
        hostStorage:
          enum:
            - PERSISTENT
            - EPHEMERAL
          type: string
        idleShutdownSeconds:
          format: int32
          type: integer
        instanceTypes:
          items:
            $ref: '#/components/schemas/ExecutionEnvironment.SandboxInstanceType'
          type: array
        maxHostAgeHours:
          format: int32
          type: integer
        reservePolicy:
          $ref: '#/components/schemas/ExecutionEnvironment.SandboxReservePolicy'
        unusedTerminateMinutes:
          format: int32
          type: integer
      required:
        - idleShutdownSeconds
        - unusedTerminateMinutes
        - maxHostAgeHours
        - reservePolicy
        - hostStorage
        - capacityTypes
        - instanceTypes
      type: object
    ExecutionEnvironment.SandboxPoolConfig:
      additionalProperties: false
      description: >-
        Sparse overrides for the global sandbox-pool defaults. An empty object
        enables a pool that inherits the current defaults.
      properties:
        allowPublicRepositories:
          description: >-
            Allow GitHub Actions jobs from public repositories and forks to use
            this sandbox pool. Disabled when omitted.
          type: boolean
        capacityTypes:
          description: >-
            The markets the pool buys hosts in. `ON_DEMAND` is required: a step
            whose `infrastructure.interruptible` is false or omitted runs only
            on an on-demand host. With `SPOT`, an interruptible step that finds
            no on-demand room already running is placed on a spot host, billed
            at the Spot price; AWS can reclaim a spot host with two minutes'
            notice, and the step is then run again on another host, the last of
            three attempts on on-demand. Omitted, it uses the current global
            default.
          items:
            enum:
              - ON_DEMAND
              - SPOT
            type: string
          type: array
        hostStorage:
          description: >-
            What happens to an on-demand host's disks when it falls idle.
            `PERSISTENT` stops the host and keeps its EBS volume, so the
            snapshot chunks cached on it are there when a step wakes it.
            `EPHEMERAL` terminates the host and deletes its volume: nothing
            outlives a host except the pool's chunk store in S3, which the next
            host restores from, and a host whose type has instance store keeps
            its cache and its sandboxes there. Spot hosts are always terminated
            when idle. Omitted, it uses the current global default.
          enum:
            - PERSISTENT
            - EPHEMERAL
          type: string
        idleShutdownSeconds:
          description: >-
            How many seconds a host with no sandboxes waits before it stops.
            Omitted, it uses the current global default.
          format: int32
          maximum: 86400
          minimum: 1
          type: integer
        instanceTypes:
          description: >-
            Instance types the pool may launch. The pool launches the type that
            holds the sandboxes it must place on the fewest hosts, with the
            fewest spare vCPUs and then the least spare memory. List order
            settles an exact tie. Ravion chooses the hosts of a pool that lists
            none from the region's c8id, m8id, r8id, i7i, and i7ie types that
            support nested virtualization and have NVMe instance store.
          items:
            $ref: '#/components/schemas/ExecutionEnvironment.SandboxInstanceType'
          type: array
        maxHostAgeHours:
          description: >-
            The oldest a running host may get before it is drained for a fresh
            one, whatever template it launched from. Omitted, it defaults to 168
            hours (a week).
          format: int32
          maximum: 8760
          minimum: 1
          type: integer
        reservePolicy:
          allOf:
            - $ref: '#/components/schemas/ExecutionEnvironment.SandboxReservePolicy'
          description: >-
            How many hosts the pool keeps ready. Omitted, it uses the current
            global default.
        unusedTerminateMinutes:
          description: >-
            How long a stopped host above the reserve is kept before it is
            terminated and its volume released. Omitted, it uses the current
            global default.
          format: int32
          maximum: 43200
          minimum: 1
          type: integer
      type: object
    ExecutionEnvironment.SandboxInstanceType:
      additionalProperties: false
      description: >-
        One EC2 instance type the sandbox pool may launch, and the root volume
        its hosts get.
      properties:
        diskGiB:
          description: >-
            Size of each host's root volume in GiB. After 10 GiB for the system
            and a free-space floor, a third of it caches snapshot chunks and the
            rest holds the running sandboxes' overlays, so it bounds how many
            sandboxes the host takes: the 60 GiB default holds four sandboxes of
            the default 8 GiB reservation. On a type with instance store (such
            as `c8id` or `m8id`) the sandboxes run on the instance store
            instead, and on an `EPHEMERAL` pool so does the cache, which leaves
            the root volume only the system: 30 GiB is enough there.
          format: int32
          maximum: 16384
          minimum: 30
          type: integer
        diskIops:
          description: >-
            Provisioned IOPS for that volume. 3000 is gp3 baseline and included
            in the volume price; more is billed, including while the host is
            parked.
          format: int32
          maximum: 16000
          minimum: 3000
          type: integer
        diskThroughputMBps:
          description: >-
            Provisioned throughput for that volume in MB/s. 125 is gp3 baseline
            and included in the volume price; more is billed, including while
            the host is parked.
          format: int32
          maximum: 1000
          minimum: 125
          type: integer
        type:
          description: >-
            EC2 instance type, e.g. `c8i.4xlarge`. It must support nested
            virtualization.
          minLength: 1
          type: string
      required:
        - type
        - diskGiB
        - diskIops
        - diskThroughputMBps
      type: object
    ExecutionEnvironment.SandboxReservePolicy:
      additionalProperties: false
      description: How many hosts the pool keeps parked and ready for the next step.
      properties:
        type:
          description: >-
            `PEAK` keeps as many hosts as the busiest minute of the window used.
            `ROLLING_AVERAGE` keeps the mean of the window's daily peaks.
            `FIXED` keeps exactly `value` hosts. `NONE` keeps none, so every
            host goes when it falls idle.
          enum:
            - PEAK
            - ROLLING_AVERAGE
            - FIXED
            - NONE
          type: string
        value:
          description: How many hosts `FIXED` keeps. Ignored by the other types.
          format: int32
          minimum: 0
          type: integer
        windowDays:
          description: >-
            How many days of usage `PEAK` and `ROLLING_AVERAGE` look back over.
            Ignored by the other types.
          format: int32
          maximum: 90
          minimum: 1
          type: integer
      required:
        - type
        - windowDays
        - value
      type: object
  securitySchemes:
    BearerAuth:
      scheme: Bearer
      type: http

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.