API reference
Watch Together
One room, the server’s clock (P5-11).
Paths are relative to /api/v1 on your server.
/watch#Open a room
On a film, an episode or a video the caller may see, or a show or a season to play from its first. The room plays on through source (the play queue’s sources), or without one through the rest of an episode’s show (P7-18). Starting one is Collectoh Plus’s; joining one is anyone’s.
- Authorisation
- Bearer token or API key · Session cookie
- Body
application/json·object
- 201Success.
application/json·WatchSession - 400
VALIDATION_FAILED: the request did not match the schema;details.issueslists what.VALIDATION_FAILED: it is not a film, an episode or a videoapplication/json·ErrorEnvelope - 401
UNAUTHENTICATED: no session, or the access token expired.application/json·ErrorEnvelope - 403
FORBIDDEN: the account lackslibrary:view, or the library, label, age or schedule scope refuses it.FORBIDDEN: it is in an adult library: nothing there is watched togetherPERMISSION_TIME_RESTRICTED: outside your viewing hoursapplication/json·ErrorEnvelope - 404
NOT_FOUND: no such item, one you may not see, or nothing in it to watchapplication/json·ErrorEnvelope
/watch/{id}#Read a room
Whole to its members. To anyone else who may see its item (an invite’s card): who is there and what it is on, with no chat and no upNext. A room that ended and one on something you may not see are the same 404.
- Authorisation
- Bearer token or API key · Session cookie
| Parameter | In | Type | Description |
|---|---|---|---|
id required | path | string |
- 200Success.
application/json·WatchSession - 401
UNAUTHENTICATED: no session, or the access token expired.application/json·ErrorEnvelope - 403
FORBIDDEN: the account lackslibrary:view, or the library, label, age or schedule scope refuses it.application/json·ErrorEnvelope - 404
NOT_FOUND: no such thing, or not one the caller may see.NOT_FOUND: no such room, or one on something you may not seeapplication/json·ErrorEnvelope
/watch/{id}#Choose who steers the room
The host’s: everyone, or host alone (P7-18).
- Authorisation
- Bearer token or API key · Session cookie
- Body
application/json·object
| Parameter | In | Type | Description |
|---|---|---|---|
id required | path | string |
- 200Success.
application/json·WatchSession - 400
VALIDATION_FAILED: the request did not match the schema;details.issueslists what.application/json·ErrorEnvelope - 401
UNAUTHENTICATED: no session, or the access token expired.application/json·ErrorEnvelope - 403
FORBIDDEN: the account lackslibrary:view, or the library, label, age or schedule scope refuses it.FORBIDDEN: you are not the room’s host, or not in itapplication/json·ErrorEnvelope - 404
NOT_FOUND: no such thing, or not one the caller may see.application/json·ErrorEnvelope
/watch/{id}/chat#Say something
Kept on the room (the last hundred lines) and sent to its members as watch.chat, which no reconnecting stream is replayed. A line every 300 ms, fifteen in ten seconds.
- Authorisation
- Bearer token or API key · Session cookie
- Body
application/json·object
| Parameter | In | Type | Description |
|---|---|---|---|
id required | path | string |
- 201Success.
application/json·WatchChatMessage - 400
VALIDATION_FAILED: the request did not match the schema;details.issueslists what.application/json·ErrorEnvelope - 401
UNAUTHENTICATED: no session, or the access token expired.application/json·ErrorEnvelope - 403
FORBIDDEN: the account lackslibrary:view, or the library, label, age or schedule scope refuses it.application/json·ErrorEnvelope - 404
NOT_FOUND: no such thing, or not one the caller may see.application/json·ErrorEnvelope - 429
RATE_LIMITED: too many lines, too fastapplication/json·ErrorEnvelope
/watch/{id}/command#Play, pause, seek or move on for everyone
next and previous move the room along its queue to the next item everyone in it may watch (P7-18). A command naming an item or a move the room has left (itemId, move) changes nothing. In a room the host steers, a member may still say their player reached the end (next within the last half minute of the item’s file).
- Authorisation
- Bearer token or API key · Session cookie
- Body
application/json·object
| Parameter | In | Type | Description |
|---|---|---|---|
id required | path | string |
- 200Success.
application/json·WatchSession - 400
VALIDATION_FAILED: the request did not match the schema;details.issueslists what.application/json·ErrorEnvelope - 401
UNAUTHENTICATED: no session, or the access token expired.application/json·ErrorEnvelope - 403
FORBIDDEN: the account lackslibrary:view, or the library, label, age or schedule scope refuses it.FORBIDDEN: not in the room, or the host alone steers itapplication/json·ErrorEnvelope - 404
NOT_FOUND: no such thing, or not one the caller may see.application/json·ErrorEnvelope
/watch/{id}/heartbeat#Stay in the room
- Authorisation
- Bearer token or API key · Session cookie
| Parameter | In | Type | Description |
|---|---|---|---|
id required | path | string |
- 200Success.
application/json·WatchSession - 401
UNAUTHENTICATED: no session, or the access token expired.application/json·ErrorEnvelope - 403
FORBIDDEN: the account lackslibrary:view, or the library, label, age or schedule scope refuses it.application/json·ErrorEnvelope - 404
NOT_FOUND: no such thing, or not one the caller may see.application/json·ErrorEnvelope
/watch/{id}/join#Join a room
- Authorisation
- Bearer token or API key · Session cookie
| Parameter | In | Type | Description |
|---|---|---|---|
id required | path | string |
- 200Success.
application/json·WatchSession - 401
UNAUTHENTICATED: no session, or the access token expired.application/json·ErrorEnvelope - 403
FORBIDDEN: the account lackslibrary:view, or the library, label, age or schedule scope refuses it.application/json·ErrorEnvelope - 404
NOT_FOUND: no such thing, or not one the caller may see.application/json·ErrorEnvelope
/watch/{id}/leave#Leave a room
- Authorisation
- Bearer token or API key · Session cookie
| Parameter | In | Type | Description |
|---|---|---|---|
id required | path | string |
- 204Done; no body.
- 401
UNAUTHENTICATED: no session, or the access token expired.application/json·ErrorEnvelope - 403
FORBIDDEN: the account lackslibrary:view, or the library, label, age or schedule scope refuses it.application/json·ErrorEnvelope - 404
NOT_FOUND: no such thing, or not one the caller may see.application/json·ErrorEnvelope
/watch/{id}/react#React over everyone’s picture
To the members as watch.reaction, kept nowhere (P7-18). One every 400 ms, ten in ten seconds.
- Authorisation
- Bearer token or API key · Session cookie
- Body
application/json·object
| Parameter | In | Type | Description |
|---|---|---|---|
id required | path | string |
- 201Success.
application/json·object - 400
VALIDATION_FAILED: the request did not match the schema;details.issueslists what.application/json·ErrorEnvelope - 401
UNAUTHENTICATED: no session, or the access token expired.application/json·ErrorEnvelope - 403
FORBIDDEN: the account lackslibrary:view, or the library, label, age or schedule scope refuses it.application/json·ErrorEnvelope - 404
NOT_FOUND: no such thing, or not one the caller may see.application/json·ErrorEnvelope - 429
RATE_LIMITED: too many, too fastapplication/json·ErrorEnvelope
/watch/{id}/ready#Report buffered and ready
A false while the room plays holds everyone — six times a minute a member at most — at the member’s own positionMs when it is up to three seconds behind the room’s and not before where the room last started; else where the room has got to, never ahead of it. Forty reports in ten seconds at most.
- Authorisation
- Bearer token or API key · Session cookie
- Body
application/json·object
| Parameter | In | Type | Description |
|---|---|---|---|
id required | path | string |
- 200Success.
application/json·WatchSession - 400
VALIDATION_FAILED: the request did not match the schema;details.issueslists what.application/json·ErrorEnvelope - 401
UNAUTHENTICATED: no session, or the access token expired.application/json·ErrorEnvelope - 403
FORBIDDEN: the account lackslibrary:view, or the library, label, age or schedule scope refuses it.application/json·ErrorEnvelope - 404
NOT_FOUND: no such thing, or not one the caller may see.application/json·ErrorEnvelope - 429
RATE_LIMITED: too many reports, too fastapplication/json·ErrorEnvelope
/watch/time#The server’s clock
Clients sync to this and schedule play against it.
- Authorisation
- Bearer token or API key · Session cookie
- 200Success.
application/json·object - 401
UNAUTHENTICATED: no session, or the access token expired.application/json·ErrorEnvelope - 403
FORBIDDEN: the account lackslibrary:view, or the library, label, age or schedule scope refuses it.application/json·ErrorEnvelope
No endpoint here matches. Try another word, or look in another area.