## 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 Parameters - `namespace: string` The namespace to ingest stream data into ### Body Parameters - `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 }` - `AudioURL = object { timestamp, type, url }` - `timestamp: string` - `type: "audio_url"` - `"audio_url"` - `url: string` - `FrameImageURL = object { timestamp, type, url }` - `timestamp: string` - `type: "frame_image_url"` - `"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"` - `"chat_message"` - `Transcript = object { text, timestamp, type, speaker }` - `text: string` - `timestamp: string` - `type: "transcript"` - `"transcript"` - `speaker: optional string` ### Returns - `requestId: string` - `status: "accepted"` - `"accepted"` ### Example ```http 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" } ] }' ```