---
title: "Submit Video Info"
method: POST
path: "/api/v1/videos/{video_uuid}/info"
tags: ["Videos"]
---

# Submit Video Info

`POST /api/v1/videos/{video_uuid}/info`

Complete a URL-only submission with its game info and start processing.

Called by the Preciser Stats Breakdown page (JWT-gated BFF) after the end
user fills the video info form. The initial submit reserved a credit; this
endpoint finalizes that charge only after the info is committed, then
creates the video records and kicks off PBP-AI. 404 when no submission
exists, 409 when the info was already provided or the submission is past
'pending'.

## Path parameters

- `video_uuid` string, required

## Headers

- `x-api-key` string, required — Required API key issued by Preciser.
- `League` string, required — Required tenant/database selector, for example pitchbio-master.

## Request body

- GLVideoInfoSubmitRequest — Request schema for completing a submission's game info (POST /api/v1/videos/{video_uuid}/info). Sent by the Preciser Stats Breakdown page (via its JWT-gated BFF) after the end user fills the video info form. Processing (PBP-AI) starts only once this info lands.
  - `home_team_name` string, required — Home team name
  - `away_team_name` string, required — Away team name
  - `home_team_color` string, required — Home team jersey color (hex, e.g. '#FF0000')
  - `away_team_color` string, required — Away team jersey color (hex, e.g. '#0000FF')
  - `game_date` string, nullable — Game date (YYYY-MM-DD)
  - `description` string — Game/venue description
  - `home_team_uuid` string, uuid, nullable — Home team UUID (kept from submit when omitted)
  - `away_team_uuid` string, uuid, nullable — Away team UUID (kept from submit when omitted)
  - `home_team_score` integer, nullable — Home team score
  - `away_team_score` integer, nullable — Away team score
  - `home_team_roster` GLRosterItem[], nullable — Home team roster
    - `jersey_number` string, required — Player jersey number
  - `away_team_roster` GLRosterItem[], nullable — Away team roster
    - `jersey_number` string, required — Player jersey number
  - `user_id` string, nullable — End-user id (overrides the one stored at submit)

## 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/routing status. `payment_required` means no submission was created and Stats Breakdown should show checkout.
  - `created_at` string, date-time, required — Timestamp of submission

## Other responses

- `422` — Validation Error

## Changes

- **2026-08-27** `9b0abde08b06` — 4 breaking, 2 info
  - the `header` request parameter `League` became required
  - the `header` request parameter `x-api-key` became required
  - `header` request parameter `League` list-of-types was narrowed by removing types `null`
  - `header` request parameter `x-api-key` list-of-types was narrowed by removing types `null`
  - …2 more

[Change history](https://skmtc.dev/preciser/apis/preciser-data-management-api/changes/api/v1/videos/:video_uuid/info/post.md)

---

[API](https://skmtc.dev/preciser/apis/preciser-data-management-api.md) · [All operations](https://skmtc.dev/preciser/apis/preciser-data-management-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/preciser/preciser-data-management-api/revisions/9b0abde08b06/schema)
