Skip to main content
The library is where reusable media lives — images, videos, screenshots, sound effects, music and LUTs. It is the same set the editor’s Media library and Sound effects panels show.
Saving a source to the library is what makes it findable later. A source you never add is only reachable through the clips that reference it, so deleting the video takes the last handle on it with it.

list_library

List placeable media for one scope. Media still being generated is omitted.
enum<string>
required
Which library to read: private (only you), workspace (shared with the workspace), or default (Tella’s curated catalog).
enum<string>
Only return image, video, screenshot, sound-effect, music, or lut items.
string
Cursor from a previous response — keep paging while cursor is present.
integer
Items per page (1-60, default 24). A target rather than an exact count: a page is read before unlistable items are filtered out, so a response may hold somewhat more. Page until cursor is absent rather than counting items.
What comes back depends on where the item came from:
  • Added through the API or generated with AI — includes a sourceId you can pass straight to add_overlay, add_layout, add_sound_effect or upload_clip (images included), alongside the hosted url. A workspace item’s sourceId works for every member of the workspace, not just whoever uploaded it.
  • Editor-created screenshots — have type screenshot and a hosted url, but no sourceId. Use capture_screenshot to make a placeable capture from the original page URL.
  • Uploaded images in the editor — may have no source and expose only a url, so they cannot be placed through source-based tools.
scope: "default" returns Tella’s curated sound effects and background music — the same tracks the editor’s panels show.
  • Presets have no source, so items carry a presetId instead of a sourceId: sound-effect items go to add_sound_effect, music items to set_background_music.
  • Each item also has a category for grouping and a publicly fetchable url for auditioning the audio.
  • Filter with type: "sound-effect" or type: "music"; omitting type returns both. Any other type is an error.
  • The catalog is fixed, so it comes back as a single page and never sets a cursor.
  • Tella’s default backgrounds are not here — they are placed as a background rather than a source, so use list_backgrounds.

capture_screenshot

Capture a public web page or a single post on X, Instagram, LinkedIn or TikTok. Web pages are captured above the fold at 1920×1080; social posts are cropped to their embed card. Private pages and social profiles or feeds are not supported.
string
required
The public page or post URL. A missing scheme defaults to HTTPS.
boolean
default:"false"
Record a scrolling web page as video instead of a still. Ignored for social posts.
The call waits for capture to finish, which can take up to two minutes, and returns {item: ...}. There is no generation to poll. The item is saved in your private library with type image for a still or video for a scrolling page, and always includes a sourceId for add_overlay, add_layout or apply_video_edits. Capturing does not edit a video automatically. Reuse the same idempotency key if retrying a request to avoid duplicate captures.

add_library_item

Save an uploaded source to the library. Call create_source first, PUT the bytes to the returned uploadUrl, then pass the sourceId here.
string
required
Source ID from create_source, already uploaded
string
Display name shown in the library — defaults to the item’s type
enum<string>
private (default) or workspace to share it with everyone in the workspace — workspace requires an owner or member role
enum<string>
Expected item type — the type is taken from the source’s own kind, and supplying a value that disagrees is an error

remove_library_item

Remove an item from the library. This removes the library entry only — clips already using the underlying source keep working.
string
required
Library item ID from list_library
enum<string>
required
The library the item lives in — private or workspace