The Responses API provides an OpenAI Responses-compatible interface for multi-turn conversations with your video collections. Compared to Chat Completions, it offers richer annotations with timestamps, built-in multi-turn support, and system instructions for controlling response behavior.To get started:
Create a media description collection
Add videos to your collection
Create a response
Python
Node
from cloudglue import Cloudglueclient = Cloudglue()# Create a media description collectioncollection = client.collections.create( name='my-video-collection', collection_type='media-descriptions')# Upload videovideo = client.files.upload('path/to/video.mp4', wait_until_finish=True)# Add video to collectionclient.collections.add_video( collection_id=collection.id, file_id=video.id, wait_until_finish=True)# Create a responseresponse = client.responses.create( input="What are the key topics discussed in this video?", collections=[collection.id], model="nimbus-001", instructions="Provide detailed answers with timestamps when possible.")print(response.output[0].content[0].text)
Fast general question answering over media description collections
nimbus-002-preview
Light reasoning with multi-step analysis, entity-backed knowledge, cross-video synthesis
nimbus-002-preview can combine structured entity data with media descriptions for richer answers. See the Responses API deep dive for entity-backed knowledge examples.
nimbus-002-preview is a preview model. Behavior may change as we iterate.
Stream responses in real-time via Server-Sent Events:
Python
Node
from cloudglue import Cloudglueclient = Cloudglue()events = client.responses.create( input="Summarize the main topics in these videos.", collections=["COLLECTION_ID"], model="nimbus-002-preview", stream=True,)for event in events: evt_type = event.get("event") data = event.get("data") if evt_type == "response.output_text.delta" and isinstance(data, dict): print(data.get("delta", ""), end="", flush=True) elif evt_type == "response.completed": print()
import { Cloudglue } from '@cloudglue/cloudglue-js';const client = new Cloudglue();const stream = await client.responses.createStreamingResponse({ model: 'nimbus-002-preview', input: 'Summarize the main topics in these videos.', knowledge_base: { collections: ['COLLECTION_ID'] },});for await (const event of stream) { if (event.type === 'response.output_text.delta') { process.stdout.write(event.delta); } else if (event.type === 'response.completed') { console.log(); }}
For advanced features — entity-backed knowledge, background processing, multi-turn conversations, rich citations, and filters — see the Responses API deep dive.For more detailed API parameters, check out our API Reference.