Docs · OpenAPI 3.1

MediaHub API

Every request uses Authorization: Bearer <token>, except the two device-pairing calls POST /api/v1/oauth/device/code and POST /api/v1/oauth/token, which take the pairing code instead because no token exists yet. The full spec is served by your server at /api/v1/openapi.json.

Live state

There is no server push and no streaming socket. Watch Together keeps the room in step by polling: the host PUTs its position every 2 seconds, and every guest GETs the room every 2 seconds and seeks when it is more than 3 seconds behind. Recording progress works the same way — the server answers 202 when a recording starts, and the client reloads the list.

json
GET /api/v1/together/{id}
← {"leader":false,"position":1834.2,"playing":true,"watchers":2}