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

# Create Clip

> Reserves an upload for a game video and returns a pre-signed Amazon S3 POST upload target, the same way Create Capture works. A game can be one full-match video or several clips. Processing starts once the upload completes.

> [!WARNING]
>
> The Game Data API is in preview. Endpoints, fields and limits may change before release, and it is not yet available to call.


## OpenAPI

````yaml api-reference/game-data/openapi.json POST /games/{game_id}/clips
openapi: 3.0.0
info:
  title: Uplift Game Data API (Preview)
  version: v1
  description: >-
    Events, phases, possessions, physical summaries and tracking from match
    video. In preview: not yet available.
servers:
  - url: https://api.uplift.ai/v1
security: []
paths:
  /games/{game_id}/clips:
    post:
      tags:
        - Games
      summary: Create Clip
      description: >-
        Reserves an upload for a game video and returns a pre-signed Amazon S3
        POST upload target, the same way Create Capture works. A game can be one
        full-match video or several clips. Processing starts once the upload
        completes.
      parameters:
        - name: game_id
          in: path
          required: true
          description: Game identifier. The game must belong to your organization.
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - file_name
              properties:
                file_name:
                  type: string
                  maxLength: 255
                  description: Must use a `.mov` or `.mp4` extension.
                period:
                  type: integer
                  description: Optional. The period this clip covers, if known.
                start_time_s:
                  type: number
                  description: Optional. Where the clip starts within the period, if known.
      responses:
        '200':
          description: >-
            Reservation succeeded. POST the file to `upload_url` with all
            `upload_fields` before `upload_expires_at`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  clip_id:
                    type: string
                    format: uuid
                  upload_url:
                    type: string
                  upload_fields:
                    type: object
                    additionalProperties: true
                  upload_expires_at:
                    type: string
                    format: date-time
                  status:
                    type: string
                    enum:
                      - awaiting_upload
              example:
                clip_id: 0d4e2b7a-1c3f-4e5a-9b8c-7d6e5f4a3b2c
                upload_url: https://example-bucket.s3.amazonaws.com/
                upload_fields:
                  key: ...
                  policy: ...
                  x-amz-signature: ...
                upload_expires_at: '2026-10-18T21:30:00Z'
                status: awaiting_upload
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          description: Not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: NotFound
                message: The specified game_id was not found.
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
        - bearerAuth: []
components:
  responses:
    BadRequest:
      description: Invalid request parameters.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: BadRequest
            message: >-
              The request parameters are invalid. Please review the request and
              try again.
    Unauthorized:
      description: Unauthorized. Bearer token is missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: Unauthorized
            message: Bearer token is missing or invalid.
    Forbidden:
      description: Forbidden. You do not have permission to access this resource.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: Forbidden
            message: You do not have permission to access this resource.
    TooManyRequests:
      description: Too Many Requests. The rate limit has been exceeded.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: TooManyRequests
            message: The rate limit has been exceeded. Please wait and try again later.
    InternalServerError:
      description: Internal Server Error. Something went wrong on the server.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: InternalServerError
            message: >-
              An unexpected error occurred on the server. Please try again
              later.
  schemas:
    Error:
      type: object
      properties:
        error:
          type: string
          description: A short error code representing the type of error.
        message:
          type: string
          description: A detailed message explaining the error.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````

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