---
title: "Submit Aabl Video With Id"
method: POST
path: "/api/v1/videos/with-id"
tags: ["AABL Videos"]
---

# Submit Aabl Video With Id

`POST /api/v1/videos/with-id`

## Request

- Base URL: `https://developer.preciser.io`
- URL: `https://developer.preciser.io/api/v1/videos/with-id`
- Auth: none declared. Required headers: `x-api-key`, `League`

Submit video for an existing AABL game using the legacy request body.

This compatibility route is deliberately AABL-only. It preserves the
existing game identifier and metadata, derives both rosters from the exact
game season and competition, rejects protected historical seasons, and is
idempotent for retries of the same ``video_id``.

## 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

- VideoSubmissionWithIdRequest: Legacy AABL body for ``POST /videos/with-id``. The route keeps this shape so AABL does not need to rewrite its plugin. Season, competition, teams, date and rosters are resolved from the existing scheduled game; the matching optional fields are validation hints only.
  - `video_id` string, uuid, required: Existing AABL scheduled game ID
  - `game_info_date` string, date-time, required: Legacy game-date field
  - `game_info_home_team` string, required: Legacy home-team name
  - `game_info_away_team` string, required: Legacy away-team name
  - `game_info_home_team_color` string, required: Home team jersey color (hex)
  - `game_info_away_team_color` string, required: Away team jersey color (hex)
  - `game_info_description` string: Legacy game description or venue
  - `videoUrl` string, required: Downloadable video URL
  - `video_tier` '1' | '2' | '3' | '4', required: Legacy video tier
  - `home_roster` PlayerRosterItem[], nullable: Accepted for legacy compatibility. Processing uses the roster stored for the scheduled game's exact season and competition.
    - `player_name` string, required: Player name
    - `jersey_number` string, required: Player jersey number
  - `away_roster` PlayerRosterItem[], nullable: Accepted for legacy compatibility. Processing uses the roster stored for the scheduled game's exact season and competition.
    - `player_name` string, required: Player name
    - `jersey_number` string, required: Player jersey number
  - `season` string, nullable: Optional assertion. When supplied, it must match the existing scheduled game's season.
  - `competition_id` string, nullable: Optional assertion. When supplied, it must match the existing scheduled game's competition.

## Response `200`

Successful Response

- VideoSubmissionResponse: Legacy AABL video-submission response.
  - `success` boolean, required
  - `message` string, required
  - `video_id` string, required
  - `status` string, required
  - `created_at` string, date-time, required

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-02** `a0727c097d7b`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/preciser/apis/preciser-data-management-api/changes/api/v1/videos/with-id/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.dev/preciser/apis/preciser-data-management-api/revisions/8c8958673e34?raw)
