Plum / developers
REST APIAudio

Upload audio bytes

Upload raw bytes with Content-Length matching the intent. The maximum chunk size is 10 MiB.

PUT/audio/{id}/content

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/octet-stream

TypeScript Definitions

Use the request body type in TypeScript.

body*file
Formatbinary

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X PUT "https://example.com/audio/497f6eca-6276-4993-bfeb-53cbbbba6f08/content" \  -H "X-API-Version: 1" \  -H "Content-Type: application/octet-stream" \  --data-binary @upload.bin
{  "success": true,  "data": {    "chunk_id": "55e808e1-8ddc-49f1-92c9-6bbdcdff1c83",    "etag": "string"  }}