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

# Get Preferences



## OpenAPI

````yaml GET /io.pocketenv.sandbox.getPreferences
openapi: 3.1.0
info:
  title: AT Protocol XRPC API
  summary: >-
    An unofficial conversion of AT Protocol's lexicons to OpenAPI's schema
    format.
  version: 0.0.0
  license:
    name: MIT License
    identifier: MIT
servers:
  - url: https://api.pocketenv.io/xrpc/
    description: AT Protocol PDS XRPC server
  - url: https://api.pocketenv.io/xrpc/
    description: AT Protocol AppView XRPC server
security: []
tags:
  - name: io.pocketenv.actor
  - name: app.bsky.actor
  - name: io.pocketenv.file
  - name: io.pocketenv.port
  - name: io.pocketenv.publicKey
  - name: io.pocketenv.sandbox
  - name: io.pocketenv.secret
  - name: io.pocketenv.service
  - name: com.atproto.repo
  - name: io.pocketenv.variable
  - name: io.pocketenv.volume
paths:
  /io.pocketenv.sandbox.getPreferences:
    get:
      tags:
        - io.pocketenv.sandbox
      summary: Get sandbox preferences
      operationId: io.pocketenv.sandbox.getPreferences
      parameters:
        - name: id
          in: query
          description: The sandbox ID or URI to retrieve
          required: true
          schema:
            type: string
            description: The sandbox ID or URI to retrieve
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/io.pocketenv.sandbox.defs.preferences'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                  - message
                properties:
                  error:
                    type: string
                    oneOf:
                      - const: InvalidRequest
                      - const: ExpiredToken
                      - const: InvalidToken
                  message:
                    type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                  - message
                properties:
                  error:
                    const: AuthMissing
                  message:
                    type: string
      security:
        - Bearer: []
components:
  schemas:
    io.pocketenv.sandbox.defs.preferences:
      type: array
      items:
        oneOf:
          - $ref: '#/components/schemas/io.pocketenv.sandbox.defs.sandboxDetailsPref'
          - $ref: '#/components/schemas/io.pocketenv.sandbox.defs.secretPref'
          - $ref: '#/components/schemas/io.pocketenv.sandbox.defs.variablePref'
          - $ref: '#/components/schemas/io.pocketenv.sandbox.defs.filePref'
          - $ref: '#/components/schemas/io.pocketenv.sandbox.defs.volumePref'
          - $ref: '#/components/schemas/io.pocketenv.sandbox.defs.sandboxProviderPref'
    io.pocketenv.sandbox.defs.sandboxDetailsPref:
      type: object
      properties:
        name:
          type: string
          description: The name of the sandbox
          minLength: 1
        description:
          type: string
          description: A description for the sandbox
        topics:
          type: array
          items:
            type: string
            maxLength: 50
        repo:
          type: string
          description: >-
            A git repository URL to clone into the sandbox, e.g. a
            GitHub/Tangled repo.
        vcpus:
          type: integer
          minimum: 1
        memory:
          type: integer
          minimum: 1
        disk:
          type: integer
          minimum: 3
        readme:
          type: string
          description: A URI to a README for the sandbox.
          format: uri
    io.pocketenv.sandbox.defs.secretPref:
      type: object
      properties:
        name:
          type: string
          description: The name of the secret
          minLength: 1
        value:
          type: string
          description: >-
            The value of the secret. This will be encrypted at rest and redacted
            in any API responses.
    io.pocketenv.sandbox.defs.variablePref:
      type: object
      description: A variable to add to the sandbox
      properties:
        name:
          type: string
          description: The name of the variable
          minLength: 1
        value:
          type: string
          description: >-
            The value of the variable. This will be visible in API responses and
            should not contain sensitive information.
    io.pocketenv.sandbox.defs.filePref:
      type: object
      description: A file to add to the sandbox
      properties:
        name:
          type: string
          description: The name of the file
          minLength: 1
        content:
          type: string
          description: The content of the file.
        encrypt:
          type: boolean
          description: >-
            Whether the file content should be encrypted at rest and redacted in
            API responses. This is useful for files that may contain sensitive
            information.
        path:
          type: string
          description: >-
            The path within the sandbox where the file will be created, e.g.
            '/app/config.json'. If not provided, the file will be created in the
            root directory of the sandbox.
    io.pocketenv.sandbox.defs.volumePref:
      type: object
      description: A volume to add to the sandbox
      properties:
        name:
          type: string
          description: The name of the volume
          minLength: 1
        path:
          type: string
          description: >-
            The mount path within the sandbox where the volume will be attached,
            e.g. '/data', '/logs', etc.
        readOnly:
          type: boolean
          description: Whether the volume should be mounted as read-only
    io.pocketenv.sandbox.defs.sandboxProviderPref:
      type: object
      required:
        - name
      properties:
        name:
          type: string
          description: The name of the sandbox provider
          minLength: 1
        apiKey:
          type: string
          description: >-
            The encrypted API key used to authenticate with the sandbox
            provider.
          minLength: 1
        redactedApiKey:
          type: string
          description: >-
            The redacted API key for the sandbox provider, returned in API
            responses.
        organizationId:
          type: string
          description: >-
            The ID of the organization in the sandbox provider, if applicable.
            This can be used to associate the sandbox with a specific
            organization or team within the provider's platform.
        vercelProjectId:
          type: string
          description: >-
            The project ID for Vercel, if the sandbox provider is Vercel. This
            is used to determine which Vercel project the sandbox should be
            created in.
        vercelTeamId:
          type: string
          description: >-
            The team ID for Vercel, if the sandbox provider is Vercel and the
            sandbox should be created within a specific team. This is used to
            determine which team within the Vercel project the sandbox should be
            associated with.
        modalTokenId:
          type: string
          description: >-
            The token ID for Modal, if the sandbox provider is Modal. This is
            used to determine which Modal token to use when creating the
            sandbox.
        modalTokenSecret:
          type: string
          description: >-
            The token secret for Modal, if the sandbox provider is Modal. This
            is used to determine which Modal token secret to use when creating
            the sandbox.
        redactedModalTokenId:
          type: string
          description: >-
            The redacted token ID for Modal, returned in API responses when the
            sandbox provider is Modal. This can be used to identify which Modal
            token is being used without exposing the actual token ID.
        redactedModalTokenSecret:
          type: string
          description: >-
            The redacted token secret for Modal, returned in API responses when
            the sandbox provider is Modal. This can be used to identify which
            Modal token secret is being used without exposing the actual token
            secret.
        e2bApiKey:
          type: string
          description: >-
            The API KEY for E2B, if the sandbox provider is E2B. This is used to
            determine which E2B API KEY to use when creating the sandbox.
        redactedE2bApiKey:
          type: string
          description: >-
            The redacted API KEY for E2B, returned in API responses when the
            sandbox provider is E2B. This can be used to identify which E2B API
            KEY is being used without exposing the actual API KEY.
        hopxApiKey:
          type: string
          description: >-
            The API KEY for hopx, if the sandbox provider is hopx. This is used
            to determine which hopx API KEY to use when creating the sandbox.
        redactedHopxApiKey:
          type: string
          description: >-
            The redacted API KEY for hopx, returned in API responses when the
            sandbox provider is hopx. This can be used to identify which hopx
            API KEY is being used without exposing the actual API KEY.
        runloopApiKey:
          type: string
          description: >-
            The API KEY for Runloop, if the sandbox provider is Runloop. This is
            used to determine which Runloop API KEY to use when creating the
            sandbox.
        redactedRunloopApiKey:
          type: string
          description: >-
            The redacted API KEY for Runloop, returned in API responses when the
            sandbox provider is Runloop. This can be used to identify which
            Runloop API KEY is being used without exposing the actual API KEY.
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer

````