Skip to main content
POST
Call page.video_set_playback

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.

Headers

x-request-id
string

Your own id for this request, echoed back and recorded on the audit trail. 1–128 characters from A–Z a–z 0–9 . _ : -, starting with a letter or digit; anything else is replaced by a generated id.

Maximum string length: 128

Body

application/json
site_id
string<uuid>
required

The site the member means, as a site UUID. When they name a site, call page.list with that name to get its id; never pass a board, thread or other id.

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
attachment_id
string<uuid>
required

The video on that site: its attachment_id from page.videos.

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
placement
object

Only to set one spot rather than the video everywhere on the site: that player's page_path and slot from page.videos' placements.

mode
enum<string> | null

How the video starts: preview plays it muted and looping as soon as the page opens; opening_frame shows its first frame with a play button; thumbnail shows its thumbnail picture until pressed. null clears it: the video back to the player's own defaults, a placement back to the video's setting.

Available options:
preview,
opening_frame,
thumbnail
captions
boolean | null

Whether the player shows the video's captions. null, only with placement, clears that spot back to the video's setting.

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
state
string
required
Allowed value: "set"
site_id
string<uuid>
required
Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
attachment_id
string<uuid>
required
Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
placement
object | null
required
mode
enum<string> | null
required
Available options:
preview,
opening_frame,
thumbnail
captions
boolean | null
required
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.