Skip to navigation

Create async embeddings

The Embed.V2.Tasks interface provides methods to create embeddings asynchronously for audio, video, images, and documents.

Creating embeddings asynchronously requires three steps:

  1. Create a task using the create method. The platform returns a task ID.
  2. Poll for the status of the task using the retrieve method. Wait until the status is ready.
  3. Retrieve the embeddings from the response when the status is ready using the retrieve method.

Methods

List embedding tasks

Description: This method returns a list of the async embedding tasks in your account. The platform returns your async embedding tasks sorted by creation date, with the newest at the top of the list.

Notes
  • Embeddings are stored for seven days.
  • When you invoke this method without specifying the started_at and ended_at parameters, the platform returns all the async embedding tasks created within the last seven days.

Function signature and example:

list(
request?: TwelvelabsApi.embed.v2.TasksListRequest,
requestOptions?: Tasks.RequestOptions
): Promise<core.Page<TwelvelabsApi.MediaEmbeddingTask>>

Parameters

NameTypeRequiredDescription
requestTwelvelabsApi.embed.v2.TasksListRequestNoParameters for listing embedding tasks.
requestOptionsTasks.RequestOptionsNoRequest-specific configuration.

The TwelvelabsApi.embed.v2.TasksListRequest interface contains the following properties:

NameTypeRequiredDescription
startedAtstringNoRetrieve the embedding tasks that were created after the given date and time, expressed in the RFC 3339 format (“YYYY-MM-DDTHH:mm:ssZ”).
endedAtstringNoRetrieve the embedding tasks that were created before the given date and time, expressed in the RFC 3339 format (“YYYY-MM-DDTHH:mm:ssZ”).
statusstringNoFilter the embedding tasks by their current status. Values: processing, ready, or failed.
pagenumberNoA number that identifies the page to retrieve. Default: 1.
pageLimitnumberNoThe number of items to return on each page. Default: 10. Max: 50.

Return value

Returns a Promise that resolves to a Page<TwelvelabsApi.MediaEmbeddingTask> object that allows you to iterate through the paginated task results.

The Page<T> class contains the following properties and methods:

NameTypeDescription
dataT[]An array containing the current page of items.
hasNextPage()booleanReturns whether there is a next page to load.
getNextPage()Promise<Page<T>>Retrieves the next page and returns the updated Page object.
Symbol.asyncIteratorAsyncIterator<T>Allows iteration through all items across all pages using for await loops.

The TwelvelabsApi.MediaEmbeddingTask interface contains the following properties:

NameTypeDescription
idstringThe unique identifier of the embedding task.
modelNamestringThe name of the video understanding model the platform used to create the embedding.
statusstringA string indicating the status of the embedding task. It can take one of the following values: processing, ready or failed.
createdAtDateThe date and time when the task was created.
updatedAtDateThe date and time when the task was last updated.
videoEmbeddingTwelvelabsApi.MediaEmbeddingTaskVideoEmbeddingAn object containing the metadata associated with the embedding. See VideoEmbeddingMetadata for details.
audioEmbeddingTwelvelabsApi.MediaEmbeddingTaskAudioEmbeddingAn object containing the metadata associated with the embedding. See AudioEmbeddingMetadata for details.
documentEmbeddingTwelvelabsApi.MediaEmbeddingTaskDocumentEmbeddingAn object containing the metadata associated with the embedding. Present only for document tasks created with Marengo 3.5. See DocumentEmbeddingMetadata for details.
imageEmbeddingTwelvelabsApi.MediaEmbeddingTaskImageEmbeddingAn object containing the metadata associated with the embedding. Present only for image tasks created with Marengo 3.5. See ImageEmbeddingMetadata for details.

Each of the four objects above wraps a single metadata field. All four metadata interfaces extend TwelvelabsApi.BaseEmbeddingMetadata, which contributes the following properties:

NameTypeDescription
inputUrlOptional<string>The URL of the media file used to generate the embedding. Present if a URL was provided in the request.
inputFilenameOptional<string>The name of the media file used to generate the embedding. Present if a file was provided in the request.

VideoEmbeddingMetadata

The TwelvelabsApi.VideoEmbeddingMetadata interface contains the metadata associated with the embedding.

NameTypeDescription
videoClipLengthOptional<number>The duration for each clip in seconds, as specified in the request. Note that the platform automatically truncates video segments shorter than 2 seconds. For a 31-second video divided into 6-second segments, the final 1-second segment will be truncated. This truncation only applies to the last segment if it does not meet the minimum length requirement of 2 seconds.
videoEmbeddingScopeOptional<string[]>The scope you’ve specified in the request.
videoEmbeddingOptionOptional<string[]>The embeddingOption values used to generate the embedding.
durationOptional<number>The total duration of the video in seconds.

AudioEmbeddingMetadata

The TwelvelabsApi.AudioEmbeddingMetadata interface contains the metadata associated with the embedding.

NameTypeDescription
audioEmbeddingOptionOptional<string[]>The type of the embedding. It can take one of the following values: ["audio"] or ["transcription"].
audioEmbeddingScopeOptional<string[]>The scope you’ve specified in the request.
durationOptional<number>The total duration of the audio in seconds.
startOffsetSecOptional<number>The start offset in seconds from the beginning of the audio where processing should begin.
endOffsetSecOptional<number>The end offset in seconds from the beginning of the audio where processing should end.

DocumentEmbeddingMetadata

The TwelvelabsApi.DocumentEmbeddingMetadata interface contains the metadata associated with the embedding. Only Marengo 3.5 returns this object.

NameTypeDescription
documentEmbeddingOptionOptional<string[]>The embeddingOption values used to generate the embedding.
documentEmbeddingScopeOptional<string[]>The embeddingScope values used to generate the embedding.

ImageEmbeddingMetadata

The TwelvelabsApi.ImageEmbeddingMetadata interface contains the metadata associated with the embedding. Only Marengo 3.5 returns this object.

NameTypeDescription
imageEmbeddingOptionOptional<string[]>The embeddingOption values used to generate the embedding. Always ["visual"].
imageEmbeddingScopeOptional<string[]>The embeddingScope values used to generate the embedding. Always ["asset"].

API Reference

List async embedding tasks

Create an async embedding task

Description: This method creates embeddings for audio, video, images, and documents asynchronously.

Use this method to embed content at scale, such as long files or the media files you want to make searchable. For a query, or for results you need in the same request, use the Create embeddings interface instead.

The content this method accepts depends on the model. Both models embed audio and video. Marengo 3.5 also embeds images and documents. For the formats, resolutions, file sizes, and duration limits each model accepts, see the input requirements for Marengo 3.5 or Marengo 3.0.

Notes
  • Creating a task validates only basic metadata and playability, not the full file. A file can pass this check but still fail later during embedding. When you retrieve the results, check the status field. If it is failed, the error.message field contains the reason.
  • This method is rate-limited. With Marengo 3.5, the platform counts input tokens for each type of content. A task can exceed a limit before you see an error. For details, see Input token limits for embedding.
  • Embeddings are stored for seven days.

Function signature and example:

create(
request: TwelvelabsApi.embed.v2.CreateAsyncEmbeddingRequest,
requestOptions?: Tasks.RequestOptions
): core.HttpResponsePromise<TwelvelabsApi.embed.v2.TasksCreateResponse>

Parameters

NameTypeRequiredDescription
requestTwelvelabsApi.embed.v2.CreateAsyncEmbeddingRequestYesParameters for creating an async embedding task.
requestOptionsTasks.RequestOptionsNoRequest-specific configuration.

The TwelvelabsApi.embed.v2.CreateAsyncEmbeddingRequest interface contains the following properties:

NameTypeRequiredDescription
inputTypeTwelvelabsApi.embed.v2.CreateAsyncEmbeddingRequestInputTypeYesThe type of content for the embeddings. Values:
- audio: An audio file.
- video: A video file.
- document: A PDF, plain text, or Markdown file. Requires Marengo 3.5.
- image: An image file. Requires Marengo 3.5.
modelNameTwelvelabsApi.embed.v2.CreateAsyncEmbeddingRequestModelNameYesThe embedding model to use. Values:
- marengo3.5: For details about this version, see the Marengo 3.5 page.
- marengo3.0: For details about this version, see the Marengo 3.0 page.
audioTwelvelabsApi.AsyncAudioInputRequestNoAudio input configuration. Required when inputType is audio. See AsyncAudioInputRequest for details.
videoTwelvelabsApi.AsyncVideoInputRequestNoVideo input configuration. Required when inputType is video. See AsyncVideoInputRequest for details.
documentTwelvelabsApi.AsyncDocumentInputRequestNoDocument input configuration. Required when inputType is document. See AsyncDocumentInputRequest for details. Requires Marengo 3.5.
imageTwelvelabsApi.AsyncImageInputRequestNoImage input configuration. Required when inputType is image. See AsyncImageInputRequest for details. Requires Marengo 3.5.
embeddingUncertaintybooleanNoSet this parameter to true to include a per-dimension uncertainty vector in the data[].embeddingUncertainty field of the result. The vector has the same length as the embedding array. A higher value indicates lower confidence in that dimension. Requires Marengo 3.5.

Requirements:
- For audio or video input, set the embeddingScope field to exclude asset. For example, set the video.embeddingScope field to ["clip"]. The field defaults to ["clip", "asset"], so the platform returns a 400 error if you keep the default. This requirement does not apply to image input.
- For a PDF document, the platform returns a 400 error regardless of the document.embeddingScope value.
- For a plain text or Markdown document, set the document.embeddingScope field to ["local"]. Any other value returns a 400 error.
embeddingDimensionnumberNoThe number of dimensions for each embedding that the task produces, including the data[].embeddingUncertainty vector.

Marengo 3.5 produces Matryoshka embeddings: a shorter embedding consists of the first values of the full-length embedding. A 256-dimension embedding, for example, is the first 256 values of a 512-dimension embedding of the same content. Shorter embeddings reduce index size and speed up similarity search; longer embeddings produce higher retrieval quality.

Requirements:
- Requires Marengo 3.5. Setting this parameter when modelName is marengo3.0 returns a 400 error.
- Applies to the entire task: you cannot set it for a single input type or embedding.
- Set it once, when you create the task. To use a different value, create a new task.
- Use the same value across an index.

Default: 512

AsyncAudioInputRequest

The TwelvelabsApi.AsyncAudioInputRequest interface specifies the configuration for processing audio content. Required when inputType is audio.

Base64-encoded audio can be up to 36 MB decoded. For a larger file, provide a URL or an asset identifier.

NameTypeRequiredDescription
mediaSourceTwelvelabsApi.MediaSourceYesSpecifies the source of the audio file. See MediaSource for details.
startSecnumberNoThe start time in seconds for processing the audio file.
Use this parameter to process a portion of the audio file starting from a specific time.
Default: 0 (start from the beginning).
endSecnumberNoThe end time in seconds for processing the audio file.
Use this parameter to process a portion of the audio file ending at a specific time. The end time must be greater than the start time.
Default: End of the audio file
segmentationTwelvelabsApi.AsyncAudioInputRequestSegmentationNoSpecifies how the platform divides the audio into segments.
The structure of this object depends on the model version:
- With Marengo 3.5: Place your settings in the temporal object. Both strategies are available: dynamic divides the audio into variable-length segments that follow scene changes, and fixed divides it into equal-length segments. Default: temporal.dynamic, minDurationSec: 2.
- With Marengo 3.0: Provide the settings directly in this object. Only fixed segmentation is available. Default: fixed, durationSec: 6.
If you use a structure that does not match your model version, the platform returns a 400 error.
See AudioSegmentation and AsyncTemporalSegmentation for details.
embeddingOptionTwelvelabsApi.AsyncAudioInputRequestEmbeddingOptionItem[]NoThe types of embeddings you wish to generate.
Values:
- audio: Generates embeddings based on audio content (sounds, music, effects). With Marengo 3.5, this value includes speech, music, and non-dialog audio.
- transcription: Generates embeddings based on transcribed speech. Requires Marengo 3.0.
You can specify multiple values to generate different types of embeddings for the same audio.
Default: ["audio", "transcription"] for Marengo 3.0; ["audio"] for Marengo 3.5.
embeddingScopeTwelvelabsApi.AsyncAudioInputRequestEmbeddingScopeItem[]NoThe scope for which you wish to generate embeddings.
Values:
- clip: Generates one embedding for each segment. Works with both Marengo 3.0 and Marengo 3.5.
- local: Generates one embedding for each segment. Equivalent to clip when using Marengo 3.5.
- asset: Generates one embedding for the entire audio file
You can specify multiple scopes to generate embeddings at different levels.
Default: ["clip", "asset"]
embeddingTypeTwelvelabsApi.AsyncAudioInputRequestEmbeddingTypeItem[]NoSpecifies how to structure the embedding. Include this parameter only when the embeddingOption parameter contains at least two values.
Values:
- separate_embedding: Returns separate embeddings for each modality specified in the embeddingOption parameter.
- fused_embedding: Returns a single combined embedding that integrates all modalities into one vector. With Marengo 3.5, this value requires the timeBasedMetadata field.
Specify both values to receive separate and fused embeddings in the same response.
Default: separate_embedding.
timeBasedMetadataTwelvelabsApi.TimeBasedMetadataEntry[]NoYour own time-aligned text, such as a stats feed or scene descriptions. The platform folds each entry into the fused embedding of the segments it overlaps in time, and it affects only that embedding. Requires the fused_embedding value in the embeddingType field. This field is supported only with Marengo 3.5. See TimeBasedMetadataEntry for details.

AsyncVideoInputRequest

The TwelvelabsApi.AsyncVideoInputRequest interface specifies the configuration for processing video content. Required when inputType is video.

Base64-encoded video can be up to 36 MB decoded. For a larger file, provide a URL or an asset identifier.

NameTypeRequiredDescription
mediaSourceTwelvelabsApi.MediaSourceYesSpecifies the source of the video file. See MediaSource for details.
startSecnumberNoThe start time in seconds for processing the video file.
Use this parameter to process a portion of the video file starting from a specific time.
Default: 0 (start from the beginning)
endSecnumberNoThe end time in seconds for processing the video file.
Use this parameter to process a portion of the video file ending at a specific time. The end time must be greater than the start time.
Default: End of the video file
segmentationTwelvelabsApi.AsyncVideoInputRequestSegmentationNoSpecifies how the platform divides the video into segments.
The structure of this object depends on the model version:
- With Marengo 3.5: Place your settings in the temporal object. Both strategies are available: dynamic divides the video into variable-length segments that follow scene changes, and fixed divides it into equal-length segments. Default: temporal.dynamic, minDurationSec: 2.
- With Marengo 3.0: Provide the settings directly in this object. Default: dynamic, minDurationSec: 4.
If you use a structure that does not match your model version, the platform returns a 400 error.
See VideoSegmentation and AsyncTemporalSegmentation for details.
embeddingOptionTwelvelabsApi.AsyncVideoInputRequestEmbeddingOptionItem[]NoThe types of embeddings to generate for the video.
Values:
- visual: Generates embeddings based on visual content (scenes, objects, actions)
- audio: Generates embeddings based on audio content (sounds, music, effects). With Marengo 3.5, this value includes speech, music, and non-dialog audio.
- transcription: Generates embeddings based on transcribed speech. Requires Marengo 3.0.
You can specify multiple values to generate different types of embeddings for the same video.
Default: ["visual", "audio", "transcription"] for Marengo 3.0; ["visual", "audio"] for Marengo 3.5.
embeddingScopeTwelvelabsApi.AsyncVideoInputRequestEmbeddingScopeItem[]NoThe scope for which you wish to generate embeddings.
Values:
- clip: Generates one embedding for each segment. Works with both Marengo 3.0 and Marengo 3.5.
- local: Generates one embedding for each segment. Equivalent to clip when using Marengo 3.5.
- asset: Generates one embedding for the entire video file. Use this scope for videos up to 10-30 seconds to maintain optimal performance.
You can specify multiple scopes to generate embeddings at different levels.
Default: ["clip", "asset"]
embeddingTypeTwelvelabsApi.AsyncVideoInputRequestEmbeddingTypeItem[]NoSpecifies how to structure the embedding. Include this parameter only when the embeddingOption parameter contains at least two values.
Values:
- separate_embedding: Returns separate embeddings for each modality specified in the embeddingOption parameter.
- fused_embedding: Returns a single combined embedding that integrates all modalities into one vector. With Marengo 3.5, this value requires the timeBasedMetadata field.
Specify both values to receive separate and fused embeddings in the same response.
Default: separate_embedding.
timeBasedMetadataTwelvelabsApi.TimeBasedMetadataEntry[]NoYour own time-aligned text, such as a stats feed or scene descriptions, which you can generate by segmenting a video with Pegasus. The platform folds each entry into the fused embedding of the segments it overlaps in time, and it affects only that embedding. Requires the fused_embedding value in the embeddingType field. This field is supported only with Marengo 3.5. See TimeBasedMetadataEntry for details.

TimeBasedMetadataEntry

One time-aligned metadata entry. The platform folds the text of the entry into the fused embedding of every segment that overlaps the time range of the entry.

Used by the AsyncAudioInputRequest.timeBasedMetadata and AsyncVideoInputRequest.timeBasedMetadata fields. Not applicable to the AsyncDocumentInputRequest interface. Requires Marengo 3.5.

NameTypeRequiredDescription
startnumberYesThe start time of the entry in seconds, measured from the beginning of the asset. Set the same value in the end field for an event that happens at a single point in time, such as one entry in a stats feed.
endnumberYesThe end time of the entry in seconds, measured from the beginning of the asset.
textstringYesThe text to fold into the fused embedding of the overlapping segments.

AsyncDocumentInputRequest

The TwelvelabsApi.AsyncDocumentInputRequest interface specifies the configuration for processing documents. Requires Marengo 3.5.

The platform accepts PDF (.pdf), plain text (.txt), and Markdown (.md) files. The decoded file can be up to 512 MB. It embeds a PDF file from its rendered pages or from its extracted text, and a plain text or Markdown file from its text.

A PDF file also has a page allowance: 64 pages for each MB of file size. A 0.5 MB file is allowed 64 pages, and a 4 MB file is allowed 256 pages. The quadrants strategy counts each page five times against this allowance. The platform checks the page count of the file against the allowance before processing the file. If the file exceeds the allowance, the platform creates the task and sets its status field to the failed value. The error.message field contains the page count and the allowance. Plain text and Markdown files have no page allowance.

The embeddingOption and embeddingScope fields combine, and the platform supports the following combinations.

File typeembeddingOptionembeddingScopeResult
PDFvisuallocalOne embedding for each rendered page. The default for PDF files.
PDFvisualassetOne embedding for the entire file.
PDFtextassetOne embedding for the extracted text of the entire file.
Plain text, MarkdowntextassetOne embedding for the entire file. The default for plain text and Markdown files.
Plain text, MarkdowntextlocalOne embedding for each chunk of whole sentences. Requires the segmentation.sequential field.

You can request more than one combination at a time. For example, embeddingScope: ["local", "asset"] on a PDF file returns the per-page embeddings and the whole-file embedding together. The platform pairs each value in one field with each value in the other. Each pair must appear in this table; if you send a pair outside it, the platform returns a 400 error. If you omit a field, the platform uses its default value. If you embed a PDF file with the embeddingOption field set to ["text"], also set the embeddingScope field to ["asset"]. For PDF files, the default ["local"] pairs with only the visual option.

NameTypeRequiredDescription
mediaSourceTwelvelabsApi.MediaSourceYesSpecifies the source of the document file. See MediaSource for details.
segmentationTwelvelabsApi.DocumentSegmentationNoSpecifies how the platform divides your document before it generates embeddings. Use the spatial field to divide each rendered page of a PDF file. Use the sequential field to divide a plain text or Markdown file into chunks. See DocumentSegmentation for details.
embeddingOptionTwelvelabsApi.AsyncDocumentInputRequestEmbeddingOptionItem[]NoThe types of embeddings to generate for the document.
Values:
- visual: Generates embeddings from the rendered pages. Valid for PDF files.
- text: Generates embeddings from the text content. Valid for PDF, plain text, and Markdown files.
Default: ["visual"] for PDF files; ["text"] for plain text and Markdown files.
embeddingTypeTwelvelabsApi.AsyncDocumentInputRequestEmbeddingTypeItem[]NoSpecifies how to structure the embedding.
Values:
- separate_embedding: Returns one embedding per requested embeddingScope.
- fused_embedding: The platform returns a 400 error if you set this value. Documents have a single modality.
Default: separate_embedding.
embeddingScopeTwelvelabsApi.AsyncDocumentInputRequestEmbeddingScopeItem[]NoThe scope for which you wish to generate embeddings.
Values:
- local: Returns one embedding for each part of the file. For a PDF file, each part is a rendered page, and you can divide each page further with the segmentation.spatial field. For a plain text or Markdown file, each part is a chunk of whole sentences, and the segmentation.sequential field is required.
- asset: Returns one embedding for the entire file.
Default: ["local"] for PDF files; ["asset"] for plain text and Markdown files.

DocumentSegmentation

The TwelvelabsApi.DocumentSegmentation interface specifies how the platform divides your document before it generates embeddings. Requires Marengo 3.5.

Use the spatial field to divide each rendered page of a PDF file. Use the sequential field to divide a plain text or Markdown file into chunks.

Provide the field that matches your file. If you provide neither field, the platform returns a 400 error.

NameTypeRequiredDescription
spatialTwelvelabsApi.DocumentSpatialSegmentationNoSpecifies how the platform divides each rendered page of a PDF file. See DocumentSpatialSegmentation for details.
sequentialTwelvelabsApi.DocumentSequentialSegmentationNoSpecifies how the platform divides a plain text or Markdown file into chunks. See DocumentSequentialSegmentation for details.

DocumentSpatialSegmentation

The TwelvelabsApi.DocumentSpatialSegmentation interface specifies how the platform divides each rendered page of a PDF file. Plain text and Markdown files have no rendered pages, so the platform returns a 400 error if you include this object.

This object requires the visual value in the embeddingOption field and the local value in the embeddingScope field.

NameTypeRequiredDescription
strategyTwelvelabsApi.DocumentSpatialSegmentationStrategyNoThe strategy for dividing each page.
Values:
- standard: Returns one embedding for each page.
- quadrants: Divides each page into a 2×2 grid. Returns five embeddings: one for the whole page, and one for each quarter. The data[].quadrant field identifies which quarter each embedding represents. This field is null on the whole-page embedding. This strategy uses five times as many tokens as the standard strategy. It also counts each page five times against the page allowance of the file.
Default: standard

DocumentSequentialSegmentation

The TwelvelabsApi.DocumentSequentialSegmentation interface specifies how the platform divides a plain text or Markdown file into chunks. For a PDF file, the platform divides by page instead and returns a 400 error if you include this object.

This object requires the text value in the embeddingOption field and the local value in the embeddingScope field.

NameTypeRequiredDescription
strategyTwelvelabsApi.DocumentSequentialSegmentationStrategyYesThe strategy for dividing the text into chunks. Always sentence, which groups whole sentences into each chunk, up to the number of sentences in the maxSentences field.
maxSentencesnumberYesThe maximum number of sentences in each chunk. This field has no default.
Choose a value small enough that every chunk fits in the context window of the model. If a chunk exceeds that window, the task fails, and the platform does not truncate it. How many sentences fit depends on the length of the sentences in your file.
overlapSentencesnumberNoThe number of sentences at the end of one chunk that the platform repeats at the start of the next. The overlap preserves the context of the previous chunk. This value must be less than the maxSentences value.
Default: 0

AsyncImageInputRequest

The TwelvelabsApi.AsyncImageInputRequest interface specifies the configuration for processing image content. Required when inputType is image. Requires Marengo 3.5. The decoded file can be up to 32 MB.

For an image, the embeddingOption, embeddingType, and embeddingScope fields each accept a single value; the platform returns a 400 error if you send any other value.

NameTypeRequiredDescription
mediaSourceTwelvelabsApi.MediaSourceYesSpecifies the source of the image file. See MediaSource for details.
embeddingOptionTwelvelabsApi.AsyncImageInputRequestEmbeddingOptionItem[]NoThe type of embedding to generate for the image. Always visual.
embeddingTypeTwelvelabsApi.AsyncImageInputRequestEmbeddingTypeItem[]NoSpecifies how to structure the embedding. Always separate_embedding.
embeddingScopeTwelvelabsApi.AsyncImageInputRequestEmbeddingScopeItem[]NoThe scope for which to generate embeddings. Always asset, which produces one embedding for the entire image.

MediaSource

The TwelvelabsApi.MediaSource interface specifies the source of the media file. Provide exactly one of the following:

NameTypeRequiredDescription
base64StringstringNoThe base64-encoded media data. Encoding grows the payload by about a third, so the string you send is larger than the original file.

The maximum size depends on the input type and the model. The description of the field that contains this media source states the limit where it differs; for the formats and sizes each model accepts, see the input requirements for Marengo 3.5 or Marengo 3.0.
urlstringNoThe publicly accessible URL of the media file. Use direct links to raw media files. Video hosting platforms and cloud storage sharing links are not supported.
assetIdstringNoThe unique identifier of an asset from a direct or multipart upload. The asset status must be ready. Use assets.retrieve to check the status.

AudioSegmentation

The TwelvelabsApi.AudioSegmentation interface specifies how the platform divides the audio into segments using fixed-length intervals.

NameTypeRequiredDescription
strategyTwelvelabsApi.AudioSegmentationStrategyYesThe segmentation strategy. Value: fixed.
fixedTwelvelabsApi.AudioSegmentationFixedYesConfiguration for fixed segmentation.
This object is required when the strategy field is fixed. See AudioSegmentationFixed for details.

AudioSegmentationFixed

The TwelvelabsApi.AudioSegmentationFixed interface configures fixed-length segmentation for audio.

NameTypeRequiredDescription
durationSecnumberYesThe duration in seconds for each segment. The platform divides the audio into segments of this exact length. The final segment may be shorter if the audio duration is not evenly divisible.
Min: 2.
Max: 10.
Example: With duration_sec: 5, a 12-second audio file produces segments: [0-5s], [5-10s], [10-12s].

VideoSegmentation

The TwelvelabsApi.VideoSegmentation type specifies how the platform divides the video into segments. Use one of the following:

Fixed segmentation: Divides the video into equal-length segments:

NameTypeRequiredDescription
strategy"fixed"YesThe segmentation strategy. Value: fixed.
fixedTwelvelabsApi.VideoSegmentationFixedFixedYesConfiguration for fixed segmentation. See VideoSegmentationFixedFixed for details.

Dynamic segmentation: Divides the video into adaptive segments based on scene changes:

NameTypeRequiredDescription
strategy"dynamic"YesThe segmentation strategy. Value: dynamic.
dynamicTwelvelabsApi.VideoSegmentationDynamicDynamicYesConfiguration for dynamic segmentation. See VideoSegmentationDynamicDynamic for details.

VideoSegmentationFixedFixed

The TwelvelabsApi.VideoSegmentationFixedFixed interface configures fixed-length segmentation for video.

NameTypeRequiredDescription
durationSecnumberYesThe duration in seconds for each segment.
The platform divides the video into segments of this exact length. The final segment may be shorter if the video duration is not evenly divisible.
Min: 2.
Max: 10.
Example: With duration_sec: 5, a 12-second video produces segments: [0-5s], [5-10s], [10-12s].

VideoSegmentationDynamicDynamic

The TwelvelabsApi.VideoSegmentationDynamicDynamic interface configures dynamic segmentation for video based on scene changes.

NameTypeRequiredDescription
minDurationSecnumberYesThe minimum duration in seconds for each segment.
The platform divides the video into segments that are at least this long. Segments adapt to scene changes and content boundaries and may be longer than the minimum.
Min: 2.
Max: 5.
Example: With min_duration_sec: 3, segments might be: [0-3.2s], [3.2-7.8s], [7.8-12.1s]

AsyncTemporalSegmentation

The TwelvelabsApi.AsyncTemporalSegmentation interface wraps your settings in a temporal object. Use with Marengo 3.5.

NameTypeRequiredDescription
temporalTwelvelabsApi.TemporalSegmentationYesSpecifies how the platform divides the file into segments. See TemporalSegmentation for details.

TemporalSegmentation

The TwelvelabsApi.TemporalSegmentation type specifies how the platform divides the file into segments. The strategy field selects one variant:

Dynamic segmentation: Creates variable-length segments that align with scene or content boundaries. Use this for content-aware segmentation.

NameTypeRequiredDescription
strategy"dynamic"YesMust be dynamic. Identifies this as the content-aware segmentation variant.
dynamicTwelvelabsApi.TemporalSegmentationDynamicDynamicYesConfiguration for dynamic segmentation. This object is required when strategy is dynamic. See TemporalSegmentationDynamicDynamic for details.

Fixed segmentation: Creates equal-length segments. Use this for consistent timing.

NameTypeRequiredDescription
strategy"fixed"YesMust be fixed. Identifies this as the equal-length segmentation variant.
fixedTwelvelabsApi.TemporalSegmentationFixedFixedYesConfiguration for fixed segmentation. This object is required when strategy is fixed. See TemporalSegmentationFixedFixed for details.

TemporalSegmentationDynamicDynamic

The TwelvelabsApi.TemporalSegmentationDynamicDynamic interface configures dynamic segmentation. This object is required when strategy is dynamic.

NameTypeRequiredDescription
minDurationSecnumberYesThe minimum duration in seconds for each segment.
The platform divides the file into segments that are at least this long. Segments adapt to scene changes and content boundaries and may be longer than the minimum.
Min: 2.
Max: 5.

TemporalSegmentationFixedFixed

The TwelvelabsApi.TemporalSegmentationFixedFixed interface configures fixed segmentation. This object is required when strategy is fixed.

NameTypeRequiredDescription
durationSecnumberYesThe duration in seconds for each segment. The platform divides the file into segments of this exact length. The final segment may be shorter if the duration is not evenly divisible.
Min: 2.
Max: 10.

Return value

Returns an HttpResponsePromise that resolves to a TwelvelabsApi.embed.v2.TasksCreateResponse object containing the task details.

The TwelvelabsApi.embed.v2.TasksCreateResponse interface contains the following properties:

NameTypeDescription
idstringThe unique identifier of the embedding task.
statusTwelvelabsApi.embed.v2.TasksCreateResponseStatusThe initial status of the embedding task. Value: processing.
dataTwelvelabsApi.EmbeddingData[]Array of embedding results. Present when status is ready; null when status is processing or failed.
metadataTwelvelabsApi.embed.v2.TasksCreateResponseMetadataMetadata about the task you created. The platform sets the length of your embeddings when it creates the task, and the embeddingDimension field contains that length. Only Marengo 3.5 returns this object.

The TwelvelabsApi.embed.v2.TasksCreateResponseMetadata interface contains the following properties:

NameTypeDescription
embeddingDimensionOptional<TwelvelabsApi.EmbeddingDimension>The number of dimensions for each embedding in this response. Only Marengo 3.5 returns this field.

API Reference

Create an async embedding task

Retrieve task status and results

Description: This method retrieves the status and the results of an async embedding task.

Invoke this method repeatedly until the status field is ready or failed. When the status is ready, use the embeddings from the response. When the status is failed, the error.message field contains the reason.

Function signature and example:

retrieve(
taskId: string,
requestOptions?: Tasks.RequestOptions
): core.HttpResponsePromise<TwelvelabsApi.EmbeddingTaskResponse>

Parameters

NameTypeRequiredDescription
taskIdstringYesThe unique identifier of the embedding task.
requestOptionsTasks.RequestOptionsNoRequest-specific configuration.

Return value

Returns an HttpResponsePromise that resolves to a TwelvelabsApi.EmbeddingTaskResponse object containing the task status and results.

The TwelvelabsApi.EmbeddingTaskResponse interface contains the following properties:

NameTypeDescription
idstringThe unique identifier of the embedding task.
statusTwelvelabsApi.EmbeddingTaskResponseStatusThe current status of the task.
Values:
- processing: The platform is creating the embeddings
- ready: Processing is complete. Embeddings are available in the data field
- failed: The task failed. The data field is null, and the error.message field contains the reason
createdAtDateThe date and time when the task was created.
updatedAtDateThe date and time when the task was last updated.
dataTwelvelabsApi.EmbeddingData[]An object containing the embedding results, or null otherwise.
usageTwelvelabsApi.EmbeddingUsageToken counts for the request. Only Marengo 3.5 returns this field. See EmbeddingUsage for details.
metadataTwelvelabsApi.EmbeddingTaskMediaMetadataMetadata for the media input. See EmbeddingTaskMediaMetadata for details.
errorTwelvelabsApi.EmbeddingTaskResponseErrorAn object describing why the embedding task failed. Present only when status is failed. Omitted otherwise.

The TwelvelabsApi.EmbeddingData interface contains the following properties:

NameTypeDescription
embeddingnumber[]The embedding vector for the content.
embeddingUncertaintyOptional<number[]>A per-dimension uncertainty vector with the same length as the embedding array. A higher value indicates lower confidence in that dimension. Present when the request sets embeddingUncertainty: true. Only Marengo 3.5 returns this field.
embeddingOptionOptional<TwelvelabsApi.EmbeddingDataEmbeddingOption>The type of the embedding.
Values:
- visual: Embedding based on visual content (a video, a page of a PDF file, or an image embedded asynchronously).
- audio: Embedding based on audio content.
- transcription: Embedding based on transcribed speech. Returned only for content embedded with Marengo 3.0.
- text: Embedding based on the text content of a PDF, plain text, or Markdown file embedded asynchronously.
- fused: Embedding based on a combination of the modalities specified in the request. The platform returns this embedding only for video and audio input, and only when the embeddingType parameter includes the fused_embedding value.
- null: For text embeddings and images embedded synchronously.
embeddingScopeOptional<TwelvelabsApi.EmbeddingDataEmbeddingScope>The scope for which the embedding was generated.
Values:
- clip: Embedding for a segment. For video and audio input, one embedding per detected segment.
- page: Embedding for one page of a PDF file embedded asynchronously, or for one quadrant of a page when the request sets the document.segmentation.spatial.strategy field to the quadrants strategy. With that strategy, five entries share the same scope and page numbers, so read the quadrant field to tell them apart: the whole-page entry has no quadrant value.
- chunk: Embedding for one chunk of whole sentences of a plain text or Markdown file embedded asynchronously. Read the chunkIndex field for the position of the chunk in the file.
- asset: Embedding for the entire file. For video and audio input, use this scope for content up to 10-30 seconds to maintain optimal performance.
- null: For text embeddings and images embedded synchronously.

When you request the local scope, the platform returns clip for audio and video, page for PDF files, and chunk for plain text and Markdown files. For audio, video, and document input, the metadata.embeddingScopes field contains the scopes you requested.
startSecOptional<number>The start time in seconds for this segment. This field is null for text and image embeddings.
endSecOptional<number>The end time in seconds for this segment. This field is null for text and image embeddings.
startPageNumberOptional<number>The first page this embedding covers, counting from 1. The platform returns this field only for page-level embeddings of a PDF file, and null in every other case.
quadrantOptional<string>The quarter of the page this embedding covers. The platform returns this field only when the request sets the document.segmentation.spatial.strategy field to the quadrants strategy, and only on the four quadrant embeddings of a page. This field is null on the whole-page embedding and in every other case.
chunkIndexOptional<number>The position of this chunk in the file, counting from 0. The platform returns this field only on chunk-scope embeddings of a plain text or Markdown file, and null in every other case. Read this field rather than the position of the entry in the data array, which provides no ordering guarantee.
endPageNumberOptional<number>The last page this embedding covers, counting from 1 and including that page. This field matches the startPageNumber field when the embedding covers a single page. The platform returns this field only for page-level embeddings of a PDF file, and null in every other case.

EmbeddingUsage

The TwelvelabsApi.EmbeddingUsage interface contains token counts for the request. Only Marengo 3.5 returns this object.

NameTypeDescription
inputTokensRecord<string, number>The number of tokens the request used. Each key names a type of content the request processed, and each value is the token count for that content.

The platform reports the content types your request actually used. Each key is one of the following: video, audio, image, document, or text. Read the keys the response returns rather than assuming a fixed set.
truncatedbooleanWhether the input was truncated to fit within the token limit.
truncationReason"model_context_window"The reason the input was truncated. Present only when the truncated field is true.

Values:
- model_context_window: The input exceeded the context window of the model.

EmbeddingTaskMediaMetadata

The TwelvelabsApi.EmbeddingTaskMediaMetadata type provides metadata for the media input. The inputType field selects one variant:

Audio: Metadata for audio embeddings.

NameTypeDescription
inputType"audio"The type of the input content. Value: audio.
inputUrlOptional<string>The publicly accessible URL for the audio file.
inputFilenameOptional<string>The name of the audio file.
embeddingOptionsstring[]The embeddingOption values used to generate the embedding.
embeddingScopesTwelvelabsApi.EmbeddingAudioMetadataEmbeddingScopesItem[]The embeddingScope values used to generate the embedding.
embeddingDimensionOptional<number>The number of dimensions for each embedding in this response. Only Marengo 3.5 returns this field.
durationnumberThe duration of the audio in seconds.
startOffsetSecOptional<number>The start offset in seconds.
endOffsetSecOptional<number>The end offset in seconds.

Video: Metadata for video embeddings.

NameTypeDescription
inputType"video"The type of the input content. Value: video.
inputUrlOptional<string>The publicly accessible URL for the video file.
inputFilenameOptional<string>The name of the video file.
clipLengthOptional<number>Length of each video clip in seconds. Only available for fixed segmentation.
embeddingScopesTwelvelabsApi.EmbeddingVideoMetadataEmbeddingScopesItem[]The embeddingScope values used to generate the embedding.
embeddingDimensionOptional<number>The number of dimensions for each embedding in this response. Only Marengo 3.5 returns this field.
embeddingOptionsstring[]The embeddingOption values used to generate the embedding.
durationnumberThe duration of the video in seconds.
startOffsetSecOptional<number>The start offset in seconds.
endOffsetSecOptional<number>The end offset in seconds.

Document: Metadata for document embeddings. Only Marengo 3.5 returns this object.

NameTypeDescription
inputType"document"The type of the input content. Value: document.
inputUrlOptional<string>The publicly accessible URL for the document file.
inputFilenameOptional<string>The name of the document file.
embeddingOptionsOptional<string[]>The embeddingOption values used to generate the embedding.
embeddingScopesOptional<TwelvelabsApi.AsyncDocumentMetadataEmbeddingScopesItem[]>The embeddingScope values used to generate the embedding.
embeddingDimensionOptional<number>The number of dimensions for each embedding in this response. Only Marengo 3.5 returns this field.

Image: Metadata for image embeddings. Only Marengo 3.5 returns this object.

NameTypeDescription
inputType"image"The type of the input content. Value: image.
inputUrlOptional<string>The publicly accessible URL for the image file.
inputFilenameOptional<string>The name of the image file.
embeddingOptionsOptional<string[]>The embeddingOption values used to generate the embedding. Always ["visual"].
embeddingScopesOptional<TwelvelabsApi.AsyncImageMetadataEmbeddingScopesItem[]>The embeddingScope values used to generate the embedding. Always ["asset"].
embeddingDimensionOptional<number>The number of dimensions for each embedding in this response. Only Marengo 3.5 returns this field.

The TwelvelabsApi.EmbeddingTaskResponseError interface contains the following property:

NameTypeDescription
messagestringA human-readable message that describes why the task failed. Possible values:
- “The embedding service is temporarily unstable. Please try again later.”
- “The embedding task failed. Please try again later.”
- “The embedding task could not complete processing.”
- “The embedding request was invalid.”
- “The media exceeds the maximum allowed size for embedding.”
- “Content exceeds the model’s context window.”
- “The embedding result is no longer available and cannot be retrieved.”
- “failed to fetch or materialize source media”
- “We could not process your media for embedding. Please verify the input file and try again.” For the steps to fix the file, see the How do I fix a file that could not be processed for embedding? section on the Frequently asked questions page.

When the platform can measure the overage in pages, bytes, or seconds, the message includes those numbers in place of the fixed sentence for that limit. For example: “Document (17 pages) exceeds maximum limit of 6 pages”, “File size (33.6 MB) exceeds maximum limit of 32 MB”, or “Duration (35.0 seconds) exceeds maximum limit of 30 seconds (0 minutes)”.

API Reference

Retrieve task status and results