Open a WebRTC signaling session for a video feed

GET/projects/{projectId}/entities/{entityId}/videoFeeds/{videoFeedId}/signaling

Base URL: https://api.tinkermode.com

Upgrades the connection to a WebSocket and opens a WebRTC signaling session for the video feed. The server first sends an offer bundle containing the SDP offer and ICE servers, then relays ICE candidates bidirectionally between the browser and the camera.

Message flow:

  • Server → Client: { "type": "offer", "sdpOffer": ..., "iceServers": [...] }
  • Server → Client: { "type": "iceCandidate", "candidate": ... } (trickled, ongoing)
  • Client → Server: { "type": "answer", "sdpAnswer": ... }
  • Client → Server: { "type": "iceCandidate", "candidate": ... } (trickled, ongoing)

In error cases:

  • 503 SIGNALING_SERVER_CONNECTION_FAILED
    • Failed to establish a signaling connection to the camera.

Authentication

This endpoint does not require authentication.

Path parameters

NameTypeRequiredConstraintsDescription
projectIdintegerYesThe unique ID for a specified project.
entityIdstringYesEntity ID (unique within project)
videoFeedIdstringYesThe unique ID for a specified video feed.

Query parameters

NameTypeRequiredConstraintsDescription
authTokenstringYesAuthentication token.

Responses

200 The requested signaling is returned in the response body.

401 Authorization is required to access this resource.

Content type: application/json

PropertyTypeRequiredConstraintsDescription
dataobjectNoread-only (server-generated)Any relevant data related to error.
reasonstringYesread-only (server-generated)Reason of error.

403 Request failed because of denied permission.

Content type: application/json

PropertyTypeRequiredConstraintsDescription
dataobjectNoread-only (server-generated)Any relevant data related to error.
reasonstringYesread-only (server-generated)Reason of error.

404 The requested signaling does not exist or is not accessible.

Content type: application/json

PropertyTypeRequiredConstraintsDescription
dataobjectNoread-only (server-generated)Any relevant data related to error.
reasonstringYesread-only (server-generated)Reason of error.

429 Request failed because of rate limit.

Content type: application/json

PropertyTypeRequiredConstraintsDescription
dataobjectNoread-only (server-generated)Any relevant data related to error.
reasonstringYesread-only (server-generated)Reason of error.

500 An unexpected error has occurred.

Content type: application/json

PropertyTypeRequiredConstraintsDescription
dataobjectNoread-only (server-generated)Any relevant data related to error.
reasonstringYesread-only (server-generated)Reason of error.

503 The service is temporarily unavailable.

Content type: application/json

PropertyTypeRequiredConstraintsDescription
dataobjectNoread-only (server-generated)Any relevant data related to error.
reasonstringYesread-only (server-generated)Reason of error.