Skip to main content
POST
Call page.video_upload

Authorizations

Authorization
string
header
required

An API key minted at Settings › API & MCP. Send it as Authorization: Bearer <key>. A key carries its holder's own permissions, resolved on every call — revoking a membership closes the key's reach immediately. Keep it in an environment variable (GOOSY_API_KEY), never in a committed file.

Body

application/json
action
enum<string>
required
Available options:
start,
sign_parts,
complete,
abort
filename
string
Required string length: 1 - 255
mime_type
string
Minimum string length: 1
byte_size
integer
upload_id
string<uuid>
part_numbers
integer[]
Minimum array length: 1
Required range: x >= 1
parts
object[]
title
string
Required string length: 1 - 200
captions
object
confirmation_id
string<uuid>
workspace
string

Which workspace to run in — its slug. Omit to use your default. With more than one reachable workspace and no default, the call is refused and the choices are listed.

Minimum string length: 1

Response

The call was admitted and dispatched. ok says whether the tool succeeded — a refusal the tool itself produced is still a 200, exactly as it is a successful JSON-RPC result over MCP.

The tool ran and answered.

ok
boolean
required
action
enum<string>
required
Available options:
start,
sign_parts,
complete,
abort
state
enum<string>
required
Available options:
confirmation_required,
open,
signed,
stored,
abandoned
workspace
string
required

The slug of the workspace this call ran in.

working_in
object
required

Which workspace this call ran in, and how that was decided. Present on every workspace-scoped result.

confirmation_id
string<uuid>
expires_in_seconds
integer
upload_id
string<uuid>
mode
enum<string>
Available options:
single,
multipart
part_size_bytes
integer
part_count
integer
put_url
string
part_urls
object[]
urls_expire_at
string
video_id
string<uuid>
title
string | null