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

# Remote Upload

> Initiates a remote upload of a video file from a URL



## OpenAPI

````yaml POST /remote-upload
openapi: 3.0.1
info:
  title: Moonshine API
  description: Video Understanding API
  version: 1.0.0
servers:
  - url: https://api.usemoonshine.com
security: []
paths:
  /remote-upload:
    post:
      description: Initiates a remote upload of a video file from a URL
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - token
                - index
                - url
              properties:
                token:
                  type: string
                  description: Authentication token
                index:
                  type: string
                  description: Index identifier for the media group
                url:
                  type: string
                  format: uri
                  description: URL of the video file to upload
                  pattern: ^http.*\.(mp4|mov|webm)$
            example:
              token: abc123
              index: xyz789
              url: https://example.com/video.mp4
      responses:
        '200':
          description: Stream of upload status updates
          content:
            text/event-stream:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - metadata
                          - file_authorized
                          - progress
                          - complete
                        description: Type of status update
                      fps:
                        type: string
                        description: Frames per second of video
                      duration:
                        type: integer
                        description: Duration in seconds
                      fileSize:
                        type: string
                        description: Size of file
                      key:
                        type: string
                        description: File key after authorization
                      percentage:
                        type: integer
                        minimum: 0
                        maximum: 100
                        description: Upload progress percentage
        '400':
          description: Invalid request parameters
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                      - error
                  message:
                    type: string
                    enum:
                      - invalid token
                      - invalid index
                      - invalid url
                      - unsupported file type
              examples:
                invalidToken:
                  value:
                    status: error
                    message: invalid token
                invalidIndex:
                  value:
                    status: error
                    message: invalid index
                invalidUrl:
                  value:
                    status: error
                    message: invalid url
                unsupportedFile:
                  value:
                    status: error
                    message: unsupported file type

````