---
title: "Submit Video"
method: POST
path: "/api/v1/videos"
tags: ["Videos"]
---

# Submit Video

`POST /api/v1/videos`

Submit a video for AI processing.

When VIDEO_ENDPOINTS_LIVE is False, returns a preview response without DB writes.

## Headers

- `x-api-key` string, nullable
- `League` string, nullable

## Request body

- GLVideoSubmitRequest — Request schema for Glory League video submission (POST /api/v1/videos).
  - `video_uuid` string, uuid, nullable — Client-provided video UUID (auto-generated if omitted)
  - `org_id` string, required — Account uuid to charge the credit to (billing is per end user). Get it from POST /api/v1/accounts/lookup, or mint it yourself.
  - `org_name` string, required — The end user's email — the account's lookup handle. Send it with every submit: an unknown org_id whose email is known resolves to that existing account instead of opening a second one.
  - `jwt` string, nullable — Short-lived token Glory League issued for this user; stored for reference when the account is first seen.
  - `user_id` string, nullable — ID of the user submitting the video (for tracking)
  - `video_url` string, required — URL to retrieve the video
  - `home_team_uuid` string, uuid, nullable — Home team UUID (optional for URL-only submissions)
  - `home_team_name` string — Home team name
  - `home_team_score` integer, nullable — Home team score
  - `home_team_roster` GLRosterItem[], nullable — Home team roster
    - `jersey_number` string, required — Player jersey number
  - `away_team_uuid` string, uuid, nullable — Away team UUID (optional for URL-only submissions)
  - `away_team_name` string — Away team name
  - `away_team_score` integer, nullable — Away team score
  - `away_team_roster` GLRosterItem[], nullable — Away team roster
    - `jersey_number` string, required — Player jersey number
  - `billing_tier` string, nullable — Billing tier identifier
  - `game_date` string, nullable — Game date (YYYY-MM-DD)
  - `description` string — Game/venue description
  - `home_team_color` string — Home team jersey color (hex, e.g. '#FF0000')
  - `away_team_color` string — Away team jersey color (hex, e.g. '#0000FF')

## Response `200`

Successful Response

- GLVideoSubmitResponse — Response schema for Glory League video submission.
  - `success` boolean, required — Whether the submission was successful
  - `video_uuid` string, required — Stable video identifier for status/results calls. Echoes the caller's video_uuid, or contains the server-generated UUID when it was omitted.
  - `message` string, required — Status message
  - `status` string, required — Current processing status
  - `created_at` string, date-time, required — Timestamp of submission

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/preciser/apis/preciser-data-management-api.md) · [All operations](https://skmtc.net/preciser/apis/preciser-data-management-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/preciser/preciser-data-management-api/versions/c5f6b8674011/schema)
