Skip to main content
POST
Submit a video

Authorizations

Authorization
string
header
required

API key issued by Hooper for your organization. Keys are environment-tagged: hk_prod_ keys work against production, hk_stg_ keys against staging.

Headers

Idempotency-Key
string

Any string up to 255 characters. Replaying the same key with the same body within 24h returns the original response; a different body returns 400 idempotency_key_reused.

Body

application/json
source
object
required

Where the video comes from. type is optional — it is derived from the URL (a Veo link is always routed to Veo).

group
string

A group under your organization. Defaults to the organization's default group.

Example:

"grp_412"

metadata
object

Up to 20 string key/values (keys ≤ 40 chars, values ≤ 500). Echoed on the session and inside every event — use it to carry your own ids.

Example:
duration_seconds
integer

Optional. Improves the credit hold estimate; the real charge is always the measured length.

Required range: x >= 1
options
object

Response

Session queued

One submitted game. The same shape everywhere it appears — single read, list item, webhook payload. Highlights, shots and players are embedded (first 100 of each); their url pages the rest.

id
string
Example:

"sess_18234"

object
string
Allowed value: "session"
created
integer
Example:

1756224000

status
enum<string>
Available options:
queued,
processing,
processed,
failed
group
string
Example:

"grp_412"

source
object
metadata
object
run_version
integer | null
duration_seconds
integer | null
Example:

5412

cost_cents
integer | null
Example:

752

highlights
object
shots
object
players
object
totals
object
video
object
artifacts
object

Raw model output (JSONL) behind the shots and highlights.

error
object | null

Set when status is failed.