stock, a free search over a licensed photo library, clips, the video-clipping job, and audio, transcription, speech and speech-to-speech. An image renders in one call and comes back as files; a video is a media job you read back until it finishes. The catalogue belongs to the provider and changes without a release of ours, so it is a search, not a constant.
images.generate
POST /v1/media/images, synchronous. Every output is a file:
model left out picks the cheapest image model in the catalogue. image_urls edits or restyles public images instead of rendering from nothing. n is 1–4, default 1. The client sends the required Idempotency-Key for you.
videos.generate
POST /v1/media/videos — answers at once with the job in queued. model is required: video models publish no price, so there is no default to pick. seconds is 1–60.
get
GET /v1/media/{id}. Any med_ of yours, a clipping job’s included. Poll until status is completed or failed; a completed video job’s result.files[].file_id is the rendered video, a completed clipping job’s result.clips are its clips (see clips.get).
list
GET /v1/media, newest first. session_id narrows to what one session’s agent submitted; API-submitted jobs carry session_id: null.
listModels
GET /v1/media/models. kind is required: each is its own capability with its own catalogue. stt, tts and s2s are the audio models — the managed alias for the direction first, then pinned models.
Each entry:
string
The model id you pass as
model above, or to generate_image / generate_video, or pin on an agent as tools.configs.<tool>.config.models.string
The model’s display name.
"image" | "video" | "stt" | "tts" | "s2s"
Which capability it serves.
string
What the model is good at.
stock.search
GET /v1/media/stock. Not a cursor page: the library pages by number, and count is the whole page.
Each StockPhoto:
string
The library’s own id. Opaque, unprefixed, not a Vetta resource.
number
Pixel width of the original.
number
Pixel height of the original.
string
A direct image URL at the requested
size.string
A small thumbnail.
string | null
A one-line description of the photo.
string | null
Who took it — show this credit wherever the photo is used.
string | null
The page to link the credit to.
string | null
The average colour as a hex value.
fil_, import url through client.files. The search is free and is booked as a search line at $0. A deploy with no stock photo library configured rejects with feature_not_configured.
clips.create
POST /v1/media/clips. Submits a clipping job and returns it queued; the clips arrive as files when it completes. ClipCreate is the request body: video_url (public http(s) only), and optional aspect_ratio, remove_silence, caption_preset (none | clean | bold | karaoke), language, min_seconds, max_seconds, title. An Idempotency-Key is sent for you, so a retry replays rather than re-queues.
clips.get
GET /v1/media/clips/{id}. The job as it stands; once status is completed, result.clips holds each clip’s file_id, title, start_seconds, end_seconds, duration_seconds and virality scores, and cost_micro_usd is what it cost.
media.job.completed / media.job.failed to be told instead of polling.
clips.list
GET /v1/media/clips. Newest first. Only jobs submitted through the API are listed; what an agent’s clip_video tool cuts inside a session lands in that session as files.
audio.transcribe
POST /v1/media/audio/transcriptions. Answers a media_job of kind: "transcription" — usually already completed, with result.text and result.segments filled in; a long recording the provider queues comes back processing, to be re-read with audio.get.
audio.get
GET /v1/media/audio/transcriptions/{id} — the same job, re-read.
audio.speak
POST /v1/media/audio/speech. Synchronous; the reply’s file is the stored file, so the bytes are one client.files.download(speech.file.id) away.
audio.converse
POST /v1/media/audio/conversations. Synchronous, and the same SpeechGeneration as speak: the spoken reply to the turn in file_id, stored as a file. The input is a stored file — client.files.upload or client.files.import a recording first.