Make any-to-video search requests

POST

Use this endpoint to search for relevant matches in an index using text or various media queries.

Text queries:

  • Use the query_text parameter to specify your query.

Media queries:

  • Set the query_media_type parameter to the corresponding media type (example: image).
  • Specify either one of the following parameters:
    • query_media_url: Publicly accessible URL of your media file.
    • query_media_file: Local media file. If both query_media_url and query_media_file are specified in the same request, query_media_url takes precedence.

Before using a media file as a query, ensure that the file meets the prerequisites.

Note

This endpoint is rate-limited. For details, see the Rate limits page.

Request

This endpoint expects a multipart form containing an optional file.
query_media_type"image"OptionalDefaults to image

The type of media you wish to use. This parameter is required for media queries. For example, to perform an image-based search, set this parameter to image.

query_media_urlstringOptional

The publicly accessible URL of the media file you wish to use. This parameter is required for media queries if query_media_file is not provided.

query_media_filefileOptional
query_textstringOptional

The text query to search for. This parameter is required for text queries. Note that the platform supports full natural language-based search.

index_idstringRequired

The unique identifier of the index to search.

search_optionslist of enumsRequired

Specifies the sources of information the platform uses when performing a search. You must include the search_options parameter separately for each desired source of information.

Notes
  • The search options you specify must be a subset of the model options used when you created the index.
  • You can specify multiple search options in conjunction with the operator parameter described below to broaden or narrow your search.

Example: To search using both visual and audio cues, include this parameter twice in the request as shown below:

1--form search_options=visual \
2--form search_options=audio \
Allowed values: visualaudio
adjust_confidence_leveldoubleOptional

This parameter specifies the strictness of the thresholds for assigning the high, medium, or low confidence levels to search results. If you use a lower value, the thresholds become more relaxed, and more search results will be classified as having high, medium, or low confidence levels. You can use this parameter to include a broader range of potentially relevant video clips, even if some results might be less precise.

Min: 0 Max: 1 Default: 0.5

group_byenumOptionalDefaults to clip

Use this parameter to group or ungroup items in a response. It can take one of the following values:

  • video: The platform will group the matching video clips in the response by video.
  • clip: The matching video clips in the response will not be grouped.

Default: clip

Allowed values: videoclip
thresholdenumOptionalDefaults to low

Use this parameter to filter on the level of confidence that the results match your query.

Default: low

Allowed values: highmediumlownone
sort_optionenumOptionalDefaults to score

Use this parameter to specify the sort order for the response.

When performing a search, the platform determines the level of confidence that each video clip matches your search terms. By default, the search results are sorted on the level of confidence in descending order.

If you set this parameter to score and group_by is set to video, the platform will determine the maximum value of the score field for each video and sort the videos in the response by the maximum value of this field. For each video, the matching video clips will be sorted by the level of confidence.

If you set this parameter to clip_count and group_by is set to video, the platform will sort the videos in the response by the number of clips. For each video, the matching video clips will be sorted by the level of confidence. You can use clip_count only when the matching video clips are grouped by video.

Default: score

Allowed values: scoreclip_count
operatorenumOptionalDefaults to or

When you perform a search specifying multiple sources of information, you can use the this parameter to broaden or narrow your search.

The following logical operators are supported:

  • or

  • and

For details and examples, see the [Using multiple sources of information]/v1.3/docs/guides/search/queries/text-queries#visual-and-audio) section.

Default: or.

Allowed values: orand
page_limitintegerOptionalDefaults to 10

The number of items to return on each page. When grouping by video, this parameter represents the number of videos per page. Otherwise, it represents the maximum number of video clips per page.

Max: 50.

filterstringOptional

Specifies a stringified JSON object to filter your search results. Supports both system-generated metadata (example: video ID, duration) and user-defined metadata.

Syntax for filtering

The following table describes the supported data types, operators, and filter syntax:

Data typeOperatorDescriptionSyntax
String=Matches results equal to the specified value.{"field": "value"}
Array of strings=Matches results with any value in the specified array. Supported only for id.{"id": ["value1", "value2"]}
Numeric (integer, float)=, lte, gteMatches results equal to or within a range of the specified value.{"field": number} or {"field": { "gte": number, "lte": number }}
Boolean=Matches results equal to the specified boolean value.{"field": true} or {"field": false}.

System-generated metadata

The table below describes the system-generated metadata available for filtering your search results:

Field nameDescriptionTypeExample
idFilters by specific video IDs.Array of strings{"id": ["67cec9caf45d9b64a58340fc", "67cec9baf45d9b64a58340fa"]}.
durationFilters based on the duration of the video containing the segment that matches your query.Number or object with gte and lte{"duration": 600} or {"duration": { "gte": 600, "lte": 800 }}
widthFilters by video width (in pixels).Number or object with gte and lte{"width": 1920} or {"width": { "gte": 1280, "lte": 1920}}
heightFilters by video height (in pixels).Number or object with gte and lte.{"height": 1080} or {"height": { "gte": 720, "lte": 1080 }}.
sizeFilters by video size (in bytes)Number or object with gte and lte.{"size": 1048576} or {"size": { "gte": 1048576, "lte": 5242880}}
filenameFilters by the exact file name.String{"filename": "Animal Encounters part 1"}

User-defined metadata

To filter by user-defined metadata:

  1. Add metadata to your video by calling the PUT method of the /indexes/:index-id/videos/:video-id endpoint
  2. Reference the custom field in your filter object. For example, to filter videos where a custom field named needsReview of type boolean is true, use {"needs_review": true}.

For more details and examples, see the Filter search results page.

Response

Successfully performed a search request.

datalist of objectsOptional

An array that contains your search results. For each match found, the model returns the following fields:

page_infoobjectOptional

An object that provides information about pagination.

search_poolobjectOptional

An object that contains details about the index you queried.

Errors

Built with