Plum / developers
REST APIAudio

POST /audio/streams/{id}/signals

Attach signals to a stream's timeline: small facts a client observed, such as a meeting's active speaker, device motion, a wakeword, or a chat message. Each has a ref unique within the stream, a lowercase dotted type, start_ms (and optional end_ms) in the stream's own timeline, and a JSON object payload of at most 8192 bytes. Plum stores and returns signals as sent and does not interpret them; payloads of known types are not validated. At most 500 per request, written atomically. Re-posting a ref with identical content is a no-op; a ref already stored with different content returns 409 and stores nothing from the request. Signals never replace a stream's end or gaps.

POST/audio/streams/{id}/signals

Authorization

bearerAuth
AuthorizationBearer <token>

Send Authorization: Bearer <token> with one of: an app session access token from /auth/verify-otp or /auth/refresh; an OAuth access token from /oauth/token issued for the API origin (its scopes are its permissions); or a personal access token starting with optima_pat_ (see /docs/personal-access-tokens). Personal access tokens cannot create or list tokens, revoke other tokens, sign out, or delete or restore the account. Content routes need the permission of their layer: audio:read/audio:write for recordings, turns:read/turns:write for turns, contacts, source signals, and events, and insights:read/insights:write for suggestions and session summaries; search and recall need turns:read and insights:read. A request without the permission, or for an account whose layer is turned off, returns 403 FORBIDDEN. See /docs/authentication#scopes.

In: header

Path Parameters

id*string
Formatuuid

Header Parameters

X-API-Version?"1"

Send 1 to pin the documented API contract. If omitted, the latest version is selected.

Default"1"

Value in

  • "1"

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/audio/streams/497f6eca-6276-4993-bfeb-53cbbbba6f08/signals" \  -H "X-API-Version: 1" \  -H "Content-Type: application/json" \  -d '{    "signals": [      {        "ref": "string",        "type": "string",        "start_ms": 0      }    ]  }'
{  "success": true,  "data": {    "items": [      {        "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",        "ref": "string",        "type": "string",        "start_ms": 0,        "end_ms": 0,        "payload": {          "property1": null,          "property2": null        },        "payload_state": {          "state": "string",          "removed_at": "2019-08-24T14:15:22Z"        },        "created_at": "2019-08-24T14:15:22Z"      }    ]  }}