User Management
Get User Info
Retrieve information about the authenticated user including credits and usage.
Try It Out
Validate API key to enable⚠️ Please enter and validate your API key in the configuration section at the top of the page to test this endpoint.
Responses
{
"success": true,
"data": {
"user_id": "hHvNk7hN5Kg3UaQEP7XnFOhswBG2",
"credits": 22.17,
"total_indexed_hours": 0.25,
"search_requests": 0,
"total_clips_analyzed": 38
},
"error": null
}{
"success": false,
"data": null,
"error": "Invalid API key provided"
}Example Request
curl -X GET "https://creativai-apis.com/api/v2/users/get_users_info" \
-H "x-api-key: your_api_key_here" \
-H "Content-Type: application/json"Collections
Collection Groups
Collection Sharing
Collection Tasks
Video Upload
S3 Transfer
Cloud Storage Import
Indexing
Video Management
Search
Data Plates
Knowledge Extraction
Extract structured data from video segments using natural-language queries. Follow these four steps to go from an indexed collection to a populated data plate.
A data plate is a structured table built from video segments. Start by creating one linked to your indexed collection.
curl -X POST "https://creativai-apis.com/api/v2/data-plates" \
-H "x-api-key: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"collection_id": "marketing_videos_a1b2c3d4",
"name": "Product Feature Analysis"
}'Example Response
{
"success": true,
"data": {
"plate_id": "plate_b2c3d4e5-f6g7-8901-hijk-lmnop1234567",
"collection_id": "marketing_videos_a1b2c3d4",
"name": "Product Feature Analysis",
"status": "empty",
"created_at": "2026-07-05T10:00:00Z"
}
}Live Stream
Analyze live video streams in real time. Connect any RTMP-compatible source (encoder, browser camera, IP camera) and get AI-generated insights as the stream runs.
Create a session before attaching a video source. Optionally specify a collection, a live insights query, and the analysis model mode.
curl -X POST "https://creativai-apis.com/api/v2/live-stream/sessions" \
-H "x-api-key: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"name": "Lobby Camera",
"collection_name": "Operations Live Feeds",
"user_query": "detect safety incidents",
"model": "multimodal"
}'Example Response
{
"data": {
"session_id": "ls_a1b2c3d4-e5f6-7890-ghij-klmn12345678",
"status": "created",
"name": "Lobby Camera",
"collection_id": "operations_live_feeds_a9b8c7d6",
"ingest_url": "rtmp://ingest.creativai.io/live/ls_a1b2c3d4",
"stream_key": "sk_xyz123",
"model": "multimodal",
"created_at": "2026-07-05T10:00:00Z"
}
}Live Stream Quickstart (Sessions + Polling)
Use this flow for Live Stream integrations. It uses live stream session APIs end-to-end, including readiness and indexing polling.
Step 1
Create session: POST /api/v2/live-stream/sessions
Step 2
Poll readiness: GET /sessions/{session_id}/mediamtx-status
Step 3
Read session state: GET /sessions/{session_id}
Step 4
Poll indexing: GET /sessions/{session_id}/indexing-jobs
Recommended polling cadence
- While status is
waiting, poll/worker-statusand/mediamtx-statusevery 10 seconds. - Once
all_readyis true, start or attach your source and keep polling/sessions/{session_id}for canonical status. - During active or final indexing passes, poll
/indexing-jobsevery 5–10 seconds. - Use
POST /stop,POST /resume, andDELETE /sessions/{session_id}for lifecycle control.
Live Stream Protocol Start Endpoints
Use one of these when you need protocol-specific stream startup instead of generic session lifecycle APIs.
| Protocol | Endpoint | Use when |
|---|---|---|
| Auto | POST /api/v2/live-stream/stream | You want backend auto handling of source/protocol. |
| RTMP | POST /api/v2/live-stream/stream/rtmp | Ingesting from encoders that push RTMP. |
| RTSP | POST /api/v2/live-stream/stream/rtsp | Pulling from IP camera RTSP feeds. |
| SRT | POST /api/v2/live-stream/stream/srt | Low-latency reliable ingest over unstable networks. |
| HLS | POST /api/v2/live-stream/stream/hls | Pulling from .m3u8 stream URLs. |
| WebRTC | POST /api/v2/live-stream/stream/webrtc | Browser/device real-time publish using WHIP/WHEP. |
| YouTube | POST /api/v2/live-stream/stream/youtube | Pulling from YouTube URL (with optional cookies). |
Agentic Chat
Agentic Chat lets you query your video collection using natural language. The agent autonomously searches, extracts data, creates plates, and streams its reasoning in real time via SSE. Authentication uses Firebase JWT tokens, not x-api-key.
Create an agentic chat session scoped to your indexed collection. The session holds conversation history and agent state across multiple messages.
curl -X POST "https://creativai-apis.com/api/v2/agentic-chat/sessions" \
-H "Authorization: Bearer <your_firebase_id_token>" \
-H "Content-Type: application/json" \
-d '{
"collection_id": "tv_shows_collection_multimodal",
"title": "Find food scenes"
}'Example Response
{
"data": {
"session_id": "sess_xyz789",
"collection_id": "tv_shows_collection_multimodal",
"title": "Find food scenes",
"created_at": "2026-07-05T10:00:00Z",
"message_count": 0
}
}SSE Event Reference (Event → What your app should do)
| Event | When it appears | Client action |
|---|---|---|
thinking | Model is reasoning | Append to reasoning panel (optional) |
answer_delta | Token-by-token output | Append streamed text to the current assistant message |
answer | Final assembled answer payload | Replace partial text with final answer and flush buffer |
node_enter / node_exit | Pipeline step starts/completes | Update step indicator progress UI |
search_feedback_required | Agent needs relevance guidance | Show feedback chips; then call POST /resume with action search_feedback |
confirmation_required | Agent needs explicit approval | Collect user response; resume with action confirmation_response |
job_started / job_progress / job_completed | Background jobs (KE/YouTube indexing) | Update background job list and progress bars |
youtube_search_candidates_ready | Candidate selection step is ready | Open candidate picker and continue YouTube flow APIs |
visualization_ready | Charts/visuals generated | Attach chart ids / visualization payload to message UI |
state_sync | Canonical session state checkpoint | Replace local context/jobs/token usage with server state |
complete | Normal end of stream | Stop loader and keep the stream result as final |
error | Stream/runtime error event | Show error state and offer reconnect/resume |