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

# Move



## OpenAPI

````yaml /openapi-public.yaml post /filesystem.Filesystem/Move
openapi: 3.1.0
info:
  title: E2B API
  version: 0.1.0
  description: >-
    Complete E2B developer API. Platform endpoints are served on api.e2b.app.
    Sandbox endpoints (envd) are served on the shared sandbox host
    (sandbox.e2b.app); target a specific sandbox with the E2b-Sandbox-Id and
    E2b-Sandbox-Port headers.
servers:
  - url: https://api.e2b.app
    description: E2B Platform API
security: []
tags:
  - name: Sandboxes
  - name: Templates
  - name: Tags
  - name: Volumes
  - name: Envd
  - name: Filesystem
  - name: Process
  - name: Teams
  - name: Secrets
  - name: Events
  - name: Webhooks
paths:
  /filesystem.Filesystem/Move:
    servers:
      - url: https://sandbox.e2b.app
        description: Sandbox API (envd) - routes using sandbox ID and port headers
    post:
      tags:
        - Filesystem
      summary: Move
      operationId: filesystem.Filesystem.Move
      parameters:
        - name: E2b-Sandbox-Id
          in: header
          required: true
          description: >-
            Identifier of the target sandbox. Routes the request to that
            sandbox's envd over the shared sandbox host.
          schema:
            type: string
        - name: E2b-Sandbox-Port
          in: header
          required: true
          description: Port envd listens on inside the sandbox (default 49983).
          schema:
            type: integer
            default: 49983
          example: 49983
        - name: Connect-Protocol-Version
          in: header
          required: true
          schema:
            type: string
            enum:
              - '1'
          example: '1'
        - name: Connect-Timeout-Ms
          in: header
          schema:
            $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/filesystem.MoveRequest'
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/filesystem.MoveResponse'
        '400':
          description: >-
            The sandbox proxy rejects missing or invalid routing information.
            Connect RPC error: invalid_argument.
          content:
            text/plain:
              schema:
                type: string
              examples:
                missingRoutingHeader:
                  summary: >-
                    The sandbox proxy rejects missing or invalid routing
                    information.
                  value: |
                    missing header
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectRPCError'
              examples:
                invalid_argument:
                  summary: Example invalid_argument response
                  value:
                    code: invalid_argument
                    message: 'Connect-Protocol-Version must be "1": got "invalid"'
        '401':
          description: >-
            Sandbox access-token or signature authentication failed. Connect RPC
            error: unauthenticated.
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/EnvdHTTPError'
                  - $ref: '#/components/schemas/ConnectRPCError'
              examples:
                sandboxAuthentication:
                  summary: Missing or invalid sandbox credentials
                  value:
                    code: 401
                    message: >-
                      unauthorized access, please provide a valid access token
                      or method signing if supported
                unauthenticated:
                  summary: Example unauthenticated response
                  value:
                    code: unauthenticated
                    message: 'invalid username: ''nonexistent'''
        '404':
          description: 'Connect RPC error: not_found.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectRPCError'
              examples:
                not_found:
                  summary: Example not_found response
                  value:
                    code: not_found
                    message: >-
                      source file not found: rename /tmp/missing
                      /tmp/destination: no such file or directory
        '500':
          description: >-
            The sandbox proxy encountered an unexpected routing error. Connect
            RPC error: internal.
          content:
            text/plain:
              schema:
                type: string
              examples:
                routingFailure:
                  summary: The sandbox proxy encountered an unexpected routing error.
                  value: |
                    Unexpected error when routing request: invalid sandbox port
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectRPCError'
              examples:
                internal:
                  summary: Example internal response
                  value:
                    code: internal
                    message: 'error renaming: rename /home/user /home/user: file exists'
        '502':
          description: >-
            The sandbox proxy could not find the sandbox. Browser navigation may
            receive an HTML error page.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SandboxRoutingError'
              examples:
                sandboxNotFound:
                  value:
                    sandboxId: sandbox-id
                    message: The sandbox was not found
                    code: 502
            text/html:
              schema:
                type: string
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
      security:
        - SandboxAccessTokenAuth: []
        - SandboxAccessTokenAuth: []
          SandboxUserAuth: []
components:
  schemas:
    connect-timeout-header:
      type: number
      title: Connect-Timeout-Ms
      description: Define the timeout, in ms
    filesystem.MoveRequest:
      type: object
      properties:
        source:
          type: string
          title: source
        destination:
          type: string
          title: destination
      title: MoveRequest
      additionalProperties: false
    filesystem.MoveResponse:
      type: object
      properties:
        entry:
          $ref: '#/components/schemas/filesystem.EntryInfo'
          title: entry
      title: MoveResponse
      additionalProperties: false
    ConnectRPCError:
      type: object
      required:
        - code
      properties:
        code:
          type: string
          description: Connect error code, such as not_found or invalid_argument.
        message:
          type: string
        details:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
              value:
                type: string
                format: byte
              debug: {}
      description: >-
        Connect JSON error. The code is a string, unlike envd's numeric HTTP
        errors.
    EnvdHTTPError:
      type: object
      required:
        - code
        - message
      properties:
        code:
          type: integer
        message:
          type: string
      description: >-
        HTTP error from envd, with a numeric status code. Distinct from a
        Connect RPC error.
    SandboxRoutingError:
      type: object
      required:
        - sandboxId
        - message
        - code
      properties:
        sandboxId:
          type: string
        message:
          type: string
        code:
          type: integer
    connect.error:
      type: object
      properties:
        code:
          type: string
          examples:
            - not_found
          enum:
            - canceled
            - unknown
            - invalid_argument
            - deadline_exceeded
            - not_found
            - already_exists
            - permission_denied
            - resource_exhausted
            - failed_precondition
            - aborted
            - out_of_range
            - unimplemented
            - internal
            - unavailable
            - data_loss
            - unauthenticated
          description: >-
            The status code, which should be an enum value of
            [google.rpc.Code][google.rpc.Code].
        message:
          type: string
          description: >-
            A developer-facing error message, which should be in English. Any
            user-facing error message should be localized and sent in the
            [google.rpc.Status.details][google.rpc.Status.details] field, or
            localized by the client.
        details:
          type: array
          items:
            $ref: '#/components/schemas/connect.error_details.Any'
          description: >-
            A list of messages that carry the error details. There is no limit
            on the number of messages.
      title: Connect Error
      additionalProperties: true
      description: >-
        Error type returned by Connect:
        https://connectrpc.com/docs/go/errors/#http-representation
    filesystem.EntryInfo:
      type: object
      properties:
        name:
          type: string
          title: name
        type:
          $ref: '#/components/schemas/filesystem.FileType'
          title: type
        path:
          type: string
          title: path
        size:
          type:
            - integer
            - string
          title: size
          format: int64
          description: >-
            File size in bytes. Encoded as string for values exceeding JSON
            number precision (int64).
        mode:
          type: integer
          title: mode
        permissions:
          type: string
          title: permissions
        owner:
          type: string
          title: owner
        group:
          type: string
          title: group
        modifiedTime:
          $ref: '#/components/schemas/google.protobuf.Timestamp'
          title: modified_time
        symlinkTarget:
          type:
            - string
            - 'null'
          title: symlink_target
          description: >-
            If the entry is a symlink, this field contains the target of the
            symlink.
        metadata:
          type: object
          title: metadata
          additionalProperties:
            type: string
            title: value
          description: >-
            User-defined metadata stored as extended attributes (xattrs) on the
            file.
             Keys live under the `user.e2b.` xattr namespace; the prefix is stripped here.
             Plain `user.*` xattrs written by other tooling are not reflected.
      title: EntryInfo
      additionalProperties: false
    connect.error_details.Any:
      type: object
      properties:
        type:
          type: string
          description: >-
            A URL that acts as a globally unique identifier for the type of the
            serialized message. For example:
            `type.googleapis.com/google.rpc.ErrorInfo`. This is used to
            determine the schema of the data in the `value` field and is the
            discriminator for the `debug` field.
        value:
          type: string
          format: binary
          description: >-
            The Protobuf message, serialized as bytes and base64-encoded. The
            specific message type is identified by the `type` field.
        debug:
          oneOf:
            - type: object
              title: Any
              additionalProperties: true
              description: Detailed error information.
          discriminator:
            propertyName: type
          title: Debug
          description: >-
            Deserialized error detail payload. The 'type' field indicates the
            schema. This field is for easier debugging and should not be relied
            upon for application logic.
      additionalProperties: true
      description: >-
        Contains an arbitrary serialized message along with a @type that
        describes the type of the serialized message, with an additional debug
        field for ConnectRPC error details.
    filesystem.FileType:
      type: string
      title: FileType
      enum:
        - FILE_TYPE_UNSPECIFIED
        - FILE_TYPE_FILE
        - FILE_TYPE_DIRECTORY
        - FILE_TYPE_SYMLINK
    google.protobuf.Timestamp:
      type: string
      examples:
        - '2023-01-15T01:30:15.01Z'
        - '2024-12-25T12:00:00Z'
      format: date-time
      description: >-
        A Timestamp represents a point in time independent of any time zone or
        local
         calendar, encoded as a count of seconds and fractions of seconds at
         nanosecond resolution. The count is relative to an epoch at UTC midnight on
         January 1, 1970, in the proleptic Gregorian calendar which extends the
         Gregorian calendar backwards to year one.

         All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap
         second table is needed for interpretation, using a [24-hour linear
         smear](https://developers.google.com/time/smear).

         The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
         restricting to that range, we ensure that we can convert to and from [RFC
         3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.

         # Examples

         Example 1: Compute Timestamp from POSIX `time()`.

             Timestamp timestamp;
             timestamp.set_seconds(time(NULL));
             timestamp.set_nanos(0);

         Example 2: Compute Timestamp from POSIX `gettimeofday()`.

             struct timeval tv;
             gettimeofday(&tv, NULL);

             Timestamp timestamp;
             timestamp.set_seconds(tv.tv_sec);
             timestamp.set_nanos(tv.tv_usec * 1000);

         Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.

             FILETIME ft;
             GetSystemTimeAsFileTime(&ft);
             UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;

             // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
             // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
             Timestamp timestamp;
             timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
             timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));

         Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.

             long millis = System.currentTimeMillis();

             Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
                 .setNanos((int) ((millis % 1000) * 1000000)).build();

         Example 5: Compute Timestamp from Java `Instant.now()`.

             Instant now = Instant.now();

             Timestamp timestamp =
                 Timestamp.newBuilder().setSeconds(now.getEpochSecond())
                     .setNanos(now.getNano()).build();

         Example 6: Compute Timestamp from current time in Python.

             timestamp = Timestamp()
             timestamp.GetCurrentTime()

         # JSON Mapping

         In JSON format, the Timestamp type is encoded as a string in the
         [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the
         format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
         where {year} is always expressed using four digits while {month}, {day},
         {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional
         seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),
         are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone
         is required. A proto3 JSON serializer should always use UTC (as indicated by
         "Z") when printing the Timestamp type and a proto3 JSON parser should be
         able to accept both UTC and other timezones (as indicated by an offset).

         For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
         01:30 UTC on January 15, 2017.

         In JavaScript, one can convert a Date object to this format using the
         standard
         [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)
         method. In Python, a standard `datetime.datetime` object can be converted
         to this format using
         [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with
         the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use
         the Joda Time's [`ISODateTimeFormat.dateTime()`](
         http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()
         ) to obtain a formatter capable of generating timestamps in this format.
  securitySchemes:
    SandboxAccessTokenAuth:
      type: apiKey
      in: header
      name: X-Access-Token
      description: >-
        Sandbox access token (`envdAccessToken`) for authenticating requests to
        a running sandbox. Returned by: [POST
        /sandboxes](/api-reference/sandboxes/create-sandbox) (on create), [POST
        /sandboxes/{sandboxID}/connect](/api-reference/sandboxes/connect-to-sandbox)
        (on connect), [POST
        /sandboxes/{sandboxID}/resume](/api-reference/sandboxes/resume-sandbox)
        (on resume), and [GET
        /sandboxes/{sandboxID}](/api-reference/sandboxes/get-sandbox) (for
        running or paused sandboxes).
    SandboxUserAuth:
      type: http
      scheme: basic
      description: >-
        Optional system user for the operation. Sets file ownership and resolves
        relative paths. Pass the desired username with no password. Defaults to
        the sandbox's default user when omitted.

````