Skip to content
StatusSupportDashboard

Add parts

POST/v1/streams/{namespace}/parts

Append a list of parts to a stream by the stream identifier. The stream does not need to be created beforehand. This method returns immediately; parts are processed asynchronously.

Path ParametersExpand Collapse
namespace: string

The namespace to ingest stream data into

Body ParametersJSONExpand Collapse
id: string
data: array of object { timestamp, type, url } or object { timestamp, type, url } or object { sender_display_name, sender_id, text, 2 more } or object { text, timestamp, type, speaker }
One of the following:
AudioURL = object { timestamp, type, url }
timestamp: string
type: "audio_url"
url: string
FrameImageURL = object { timestamp, type, url }
timestamp: string
type: "frame_image_url"
url: string
ChatMessage = object { sender_display_name, sender_id, text, 2 more }
sender_display_name: string
sender_id: string
text: string
timestamp: string
type: "chat_message"
Transcript = object { text, timestamp, type, speaker }
text: string
timestamp: string
type: "transcript"
speaker: optional string
ReturnsExpand Collapse
requestId: string
status: "accepted"

Add parts

curl https://api.safetykit.com/v1/streams/$NAMESPACE/parts \
    -H 'Content-Type: application/json' \
    -H "Authorization: Bearer $SAFETYKIT_API_KEY" \
    -d '{
          "id": "YOUR_STREAM_ID",
          "data": [
            {
              "timestamp": "2026-03-10T18:54:20+00:00",
              "type": "audio_url",
              "url": "https://example.com/234039.mp3"
            }
          ]
        }'
{
  "requestId": "req_01h2m7qdmdjckc30e1mnq6xqfd",
  "status": "accepted"
}
Returns Examples
{
  "requestId": "req_01h2m7qdmdjckc30e1mnq6xqfd",
  "status": "accepted"
}