openapi: 3.0.0
info:
  title: Vast.ai API
  version: 1.0.0
  description: API documentation for Vast.ai's remote copy endpoint.
paths:
  /api/v0/commands/copy_direct/:
    put:
      summary: copy
      description: |
        Initiate a remote copy operation to transfer data from one instance to another or between an instance and the local machine.

        CLI Usage: `vastai copy <src_id> <dst_id> <src_path> <dst_path>`
      operationId: initiateRemoteRsync
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                src_id:
                  type: string
                  description: ID of the source instance.
                dst_id:
                  type: string
                  description: ID of the destination instance.
                src_path:
                  type: string
                  description: Path of the source data.
                dst_path:
                  type: string
                  description: Path of the destination data.
              required:
              - src_path
              - dst_path
      responses:
        '200':
          description: Remote copy initiated successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  msg:
                    type: string
                    example: Remote to Remote copy initiated - check instance status
                      bar for progress updates (~30 seconds delayed).
        '400':
          description: Invalid arguments provided.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  error:
                    type: string
                    example: invalid_args
                  msg:
                    type: string
                    example: Invalid src_path.
        '404':
          description: Source or destination ID not found or access denied.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  error:
                    type: string
                    example: no_such_user
                  msg:
                    type: string
                    example: No such user.
      security:
      - BearerAuth: []
      x-rateLimit: 3.5
      tags:
      - Instances
