Download OpenAPI specification:
USD Search API is a collection of cloud-native microservices that enable developers, creators, and workflow specialists to efficiently search through vast collections of OpenUSD data, images, and other assets using natural language or image-based inputs. With these production-ready microservices, developers can deploy USD Search API onto their own infrastructure. With USD Search API’s artificial intelligence (AI) features, you can quickly locate untagged and unstructured 3D data and digital assets, saving time navigating unstructured, untagged 3D data. USD Search API is capable of searching and indexing 3D asset databases, as well as navigating complex 3D scenes to perform spatial searches, without requiring manual tagging of assets.
Asset Graph Search (AGS) provides advanced querying capabilities for assets and USD trees indexed in a graph database. It supports proximity queries based on coordinates or prims to find objects within specified areas or radii, sorted by distance, and includes transformation options for vector alignment. The API also offers dependency and reverse dependency searches, helping to identify all assets referenced in a scene or scenes containing a particular asset, which can optimize scene loading and track dependency changes. By combining different query types, the AGS API enables complex scenarios for scene understanding, manipulation, and generation. Integrated with USD Search it provides in-scene search functionality.
Find all objects near a point or another object within a USD scene.
Use this endpoint when you need to answer spatial questions like "find all objects within 5 meters of the table" or "what's near coordinates (10, 0, 5) in this scene". Returns prims sorted by distance from the query center, including their bounding boxes, properties, and the direction vector to each result.
Perform a spatial search within a scene to retrieve prims from a USD scene based on their proximity to a reference
prim center_prim_usd_path or specific coordinates [center_x, center_y, center_z] within a specified radius.
Note: You must specify either center_prim_usd_path or the coordinates [center_x, center_y, center_z].
Returns prim objects including: attributes, dimensions, and min, max, midpoint coordinates of the bounding box, distance from the query center, vector from the query center to the prim midpoint.
If searching using center_prim_usd_path the center prim at center_prim_usd_path is included in the results
(unless excluded by filters used).
| scene_url required | string (Scene Url) URL of the scene to search. |
| radius required | number (Radius) > 0 Radius of the proximity query |
| center_prim_usd_path | string (Center Prim Usd Path) USD path of the reference Prim. (Returned in results unless excluded by filters) |
| center_x | number (Center X) X coordinate of the query center. |
| center_y | number (Center Y) Y coordinate of the query center. |
| center_z | number (Center Z) Z coordinate of the query center. |
| transformation_matrix | string (Transformation Matrix) Default: "1,0,0;0,1,0;0,0,1" Transformation matrix for the vector space. By default does not apply any transformation. |
| limit | integer (Limit) > 0 Default: 1000 Page size |
Array of Prim Type (strings) or Prim Type (null) (Prim Type) Examples:
Retrieve prims of the specified types. | |
Usd Path Prefix (string) or Usd Path Prefix (null) (Usd Path Prefix) Examples:
Retrieve prims with USD paths that begin with this prefix (i.e., the children of the prim at the specified path). | |
Properties Filter (string) or Properties Filter (null) (Properties Filter) Examples:
Filter prims based on USD attributes (note: only a subset of attributes configured in the indexing service is available). Format: | |
Min Bbox Dimension X (number) or Min Bbox Dimension X (null) (Min Bbox Dimension X) Minimum bounding box X dimension | |
Min Bbox Dimension Y (number) or Min Bbox Dimension Y (null) (Min Bbox Dimension Y) Minimum bounding box Y dimension | |
Min Bbox Dimension Z (number) or Min Bbox Dimension Z (null) (Min Bbox Dimension Z) Minimum bounding box Z dimension | |
Max Bbox Dimension X (number) or Max Bbox Dimension X (null) (Max Bbox Dimension X) Default: 4e+38 Max bounding box X dimension | |
Max Bbox Dimension Y (number) or Max Bbox Dimension Y (null) (Max Bbox Dimension Y) Default: 4e+38 Max bounding box Y dimension | |
Max Bbox Dimension Z (number) or Max Bbox Dimension Z (null) (Max Bbox Dimension Z) Default: 4e+38 Max bounding box Z dimension | |
Use Scaled Bbox Dimensions (boolean) or Use Scaled Bbox Dimensions (null) (Use Scaled Bbox Dimensions) Default: false Search in the space of aligned bbox dimensions |
[- {
- "prim": {
- "scene_url": "string",
- "scene_mpu": 1,
- "usd_path": "string",
- "prim_type": "Xform",
- "source_asset_url": "string",
- "properties": {
- "property1": "string",
- "property2": "string"
}, - "translate": [
- 0,
- 0,
- 0
], - "rotate_x": 0,
- "rotate_y": 0,
- "rotate_z": 0,
- "scale_x": 0,
- "scale_y": 0,
- "scale_z": 0,
- "bbox_max": [
- 0
], - "bbox_min": [
- 0
], - "bbox_midpoint": [
- 0
], - "root_prim": true,
- "default_prim": true,
- "polygon_count": 0,
- "point_count": 0,
- "curve_segment_count": 0,
- "bbox_dimension_x": 0,
- "bbox_dimension_y": 0,
- "bbox_dimension_z": 0,
- "scaled_bbox_dimension_x": 0,
- "scaled_bbox_dimension_y": 0,
- "scaled_bbox_dimension_z": 0
}, - "distance": 0,
- "vector": [
- 0
]
}
]Find all objects within a rectangular region of a USD scene.
Use this endpoint when you need to find objects in a specific area, e.g., "find all objects in the kitchen area" or "what's in the region between coordinates (0,0,0) and (10,5,10)". A prim is included if its bounding box midpoint falls within the query bounding box.
The bounding box is defined by two corner points: [min_bbox_x, min_bbox_y, min_bbox_z] and [max_bbox_x, max_bbox_y, max_bbox_z].
| scene_url required | string (Scene Url) Retrieve prims from the scene at specified URL. |
| min_bbox_x required | number (Min Bbox X) Query bounding box minimum X |
| min_bbox_y required | number (Min Bbox Y) Query bounding box minimum Y |
| min_bbox_z required | number (Min Bbox Z) Query bounding box minimum Z |
| max_bbox_x required | number (Max Bbox X) Query bounding box maximum X |
| max_bbox_y required | number (Max Bbox Y) Query bounding box maximum Y |
| max_bbox_z required | number (Max Bbox Z) Query bounding box maximum Z |
| limit | integer (Limit) > 0 Default: 1000 Page size |
Array of Prim Type (strings) or Prim Type (null) (Prim Type) Examples:
Retrieve prims of the specified types. | |
Usd Path Prefix (string) or Usd Path Prefix (null) (Usd Path Prefix) Examples:
Retrieve prims with USD paths that begin with this prefix (i.e., the children of the prim at the specified path). | |
Properties Filter (string) or Properties Filter (null) (Properties Filter) Examples:
Filter prims based on USD attributes (note: only a subset of attributes configured in the indexing service is available). Format: | |
Min Bbox Dimension X (number) or Min Bbox Dimension X (null) (Min Bbox Dimension X) Minimum bounding box X dimension | |
Min Bbox Dimension Y (number) or Min Bbox Dimension Y (null) (Min Bbox Dimension Y) Minimum bounding box Y dimension | |
Min Bbox Dimension Z (number) or Min Bbox Dimension Z (null) (Min Bbox Dimension Z) Minimum bounding box Z dimension | |
Max Bbox Dimension X (number) or Max Bbox Dimension X (null) (Max Bbox Dimension X) Default: 4e+38 Max bounding box X dimension | |
Max Bbox Dimension Y (number) or Max Bbox Dimension Y (null) (Max Bbox Dimension Y) Default: 4e+38 Max bounding box Y dimension | |
Max Bbox Dimension Z (number) or Max Bbox Dimension Z (null) (Max Bbox Dimension Z) Default: 4e+38 Max bounding box Z dimension | |
Use Scaled Bbox Dimensions (boolean) or Use Scaled Bbox Dimensions (null) (Use Scaled Bbox Dimensions) Default: false Search in the space of aligned bbox dimensions |
[- {
- "scene_url": "string",
- "scene_mpu": 1,
- "usd_path": "string",
- "prim_type": "Xform",
- "source_asset_url": "string",
- "properties": {
- "property1": "string",
- "property2": "string"
}, - "translate": [
- 0,
- 0,
- 0
], - "rotate_x": 0,
- "rotate_y": 0,
- "rotate_z": 0,
- "scale_x": 0,
- "scale_y": 0,
- "scale_z": 0,
- "bbox_max": [
- 0
], - "bbox_min": [
- 0
], - "bbox_midpoint": [
- 0
], - "root_prim": true,
- "default_prim": true,
- "polygon_count": 0,
- "point_count": 0,
- "curve_segment_count": 0,
- "bbox_dimension_x": 0,
- "bbox_dimension_y": 0,
- "bbox_dimension_z": 0,
- "scaled_bbox_dimension_x": 0,
- "scaled_bbox_dimension_y": 0,
- "scaled_bbox_dimension_z": 0
}
]Retrieve and filter prims from a USD scene — use for scene understanding and object enumeration.
Use this endpoint when you need to understand what objects are in a scene, filter by type or properties, or retrieve specific prims by their USD path. Returns all matching prims with their locations, dimensions, and properties. Ideal for answering "what objects are in this scene?" or "find all Mesh prims with class=vehicle".
NOTE: Calling without any parameters will return ALL prims. scene_url must be provided to fetch prims from the specified scene.
A globally unique prim id consists of (scene_url, usd_path) tuple. usd_path is unique only within a single scene.
To retrieve prims from a specified scene, scene_url must be set.
To retrieve a single prim from a specified scene, provide both scene_url and usd_path.
| scene_url | string (Scene Url) Retrieve prims from the scene at specified URL. |
Array of Usd Path (strings) or Usd Path (string) (Usd Path) Examples:
Retrieve prims from the specified USD paths. Can provide either a single path or a list of paths. | |
| root_prim | boolean (Root Prim) Retrieve root prims. Note: combined with default_prim returns both root and default prims. Works as inclusive filter only; setting to false has no effect. |
| default_prim | boolean (Default Prim) Retrieve default prims. Note: combined with root_prim returns both root and default prims. Works as inclusive filter only; setting to false has no effect. |
| source_asset_url | string (Source Asset Url) Filter prims based on their source asset URL, i.e. the asset they have a reference to |
| limit | integer (Limit) > 0 Default: 1000 Page size |
Array of Prim Type (strings) or Prim Type (null) (Prim Type) Examples:
Retrieve prims of the specified types. | |
Usd Path Prefix (string) or Usd Path Prefix (null) (Usd Path Prefix) Examples:
Retrieve prims with USD paths that begin with this prefix (i.e., the children of the prim at the specified path). | |
Properties Filter (string) or Properties Filter (null) (Properties Filter) Examples:
Filter prims based on USD attributes (note: only a subset of attributes configured in the indexing service is available). Format: | |
Min Bbox Dimension X (number) or Min Bbox Dimension X (null) (Min Bbox Dimension X) Minimum bounding box X dimension | |
Min Bbox Dimension Y (number) or Min Bbox Dimension Y (null) (Min Bbox Dimension Y) Minimum bounding box Y dimension | |
Min Bbox Dimension Z (number) or Min Bbox Dimension Z (null) (Min Bbox Dimension Z) Minimum bounding box Z dimension | |
Max Bbox Dimension X (number) or Max Bbox Dimension X (null) (Max Bbox Dimension X) Max bounding box X dimension | |
Max Bbox Dimension Y (number) or Max Bbox Dimension Y (null) (Max Bbox Dimension Y) Max bounding box Y dimension | |
Max Bbox Dimension Z (number) or Max Bbox Dimension Z (null) (Max Bbox Dimension Z) Max bounding box Z dimension | |
Use Scaled Bbox Dimensions (boolean) or Use Scaled Bbox Dimensions (null) (Use Scaled Bbox Dimensions) Default: true Search in the space of MPU aligned bbox dimensions |
[- {
- "scene_url": "string",
- "scene_mpu": 1,
- "usd_path": "string",
- "prim_type": "Xform",
- "source_asset_url": "string",
- "properties": {
- "property1": "string",
- "property2": "string"
}, - "translate": [
- 0,
- 0,
- 0
], - "rotate_x": 0,
- "rotate_y": 0,
- "rotate_z": 0,
- "scale_x": 0,
- "scale_y": 0,
- "scale_z": 0,
- "bbox_max": [
- 0
], - "bbox_min": [
- 0
], - "bbox_midpoint": [
- 0
], - "root_prim": true,
- "default_prim": true,
- "polygon_count": 0,
- "point_count": 0,
- "curve_segment_count": 0,
- "bbox_dimension_x": 0,
- "bbox_dimension_y": 0,
- "bbox_dimension_z": 0,
- "scaled_bbox_dimension_x": 0,
- "scaled_bbox_dimension_y": 0,
- "scaled_bbox_dimension_z": 0
}
]Get a quick overview of scene contents — use before detailed spatial or prim queries.
Use this endpoint to understand a scene's composition: how many prims, what types (Mesh, Xform, etc.), what properties are used, what assets are referenced, total polygon count, and scene metadata (MPU, up axis). Ideal first call when exploring an unfamiliar scene.
| scene_url required | string (Scene Url) Scene summary. |
{- "scene_url": "string",
- "scene_mpu": 0,
- "scene_up_axis": "X",
- "n_prims": 0,
- "total_polygon_count": 0,
- "total_point_count": 0,
- "total_curve_segment_count": 0,
- "prim_types": {
- "property1": 0,
- "property2": 0
}, - "unique_property_keys": {
- "property1": 0,
- "property2": 0
}, - "unique_properties": {
- "property1": 0,
- "property2": 0
}, - "referenced_assets": {
- "property1": 0,
- "property2": 0
}, - "default_prim": {
- "scene_url": "string",
- "scene_mpu": 1,
- "usd_path": "string",
- "prim_type": "Xform",
- "source_asset_url": "string",
- "properties": {
- "property1": "string",
- "property2": "string"
}, - "translate": [
- 0,
- 0,
- 0
], - "rotate_x": 0,
- "rotate_y": 0,
- "rotate_z": 0,
- "scale_x": 0,
- "scale_y": 0,
- "scale_z": 0,
- "bbox_max": [
- 0
], - "bbox_min": [
- 0
], - "bbox_midpoint": [
- 0
], - "root_prim": true,
- "default_prim": true,
- "polygon_count": 0,
- "point_count": 0,
- "curve_segment_count": 0,
- "bbox_dimension_x": 0,
- "bbox_dimension_y": 0,
- "bbox_dimension_z": 0,
- "scaled_bbox_dimension_x": 0,
- "scaled_bbox_dimension_y": 0,
- "scaled_bbox_dimension_z": 0
}
}Get the full dependency tree of an asset as a graph — use to discover sub-assemblies, textures, and materials.
Use this endpoint when you need to understand what files an asset references (e.g., "what textures does this car model use?" or "what sub-assets make up this scene?"). Returns nodes (assets) and directed edges (dependency relationships). Traverses references recursively up to max_level depth.
| root_node_url required | string (Root Node Url) URL of the asset |
| max_level | integer (Max Level) > 0 Max level of dependency tree traversal (by default unlimited) |
| limit | integer (Limit) > 0 Default: 1000 Page size |
{- "nodes": [
- {
- "url": "string",
- "deleted": false
}
], - "edges": [
- {
- "node_1_url": "string",
- "node_2_url": "string",
- "type": "depends_on"
}
]
}Get a flat list of all files an asset depends on — simpler alternative to the graph endpoint.
Use this endpoint when you just need the list of referenced files without graph structure (e.g., "list all textures used by this model"). Returns Asset objects with URLs. For graph structure with edges, use GET /dependency_graph/graph instead.
| root_node_url required | string (Root Node Url) URL of the asset |
| max_level | integer (Max Level) > 0 Max level of dependency tree traversal (by default unlimited) |
| limit | integer (Limit) > 0 Default: 1000 Page size |
[- {
- "url": "string",
- "deleted": false
}
]Find which scenes or assets reference a given asset — use for impact analysis.
Use this endpoint to answer "where is this asset used?" or "which scenes reference this texture?". Returns a flat list of all assets that depend on (reference) the specified asset. Useful for impact analysis before modifying or deleting an asset.
| root_node_url required | string (Root Node Url) URL of the asset |
| max_level | integer (Max Level) > 0 Max level of dependency tree traversal (by default unlimited) |
| limit | integer (Limit) > 0 Default: 1000 Page size |
[- {
- "url": "string",
- "deleted": false
}
]Get the full reverse dependency graph — all assets that directly or transitively reference the specified asset.
Use this endpoint for impact analysis with full graph structure (nodes + edges), e.g., "show me the full dependency chain of everything that uses this material". For a simpler flat list, use GET /dependency_graph/inverse/flat instead.
| root_node_url required | string (Root Node Url) URL of the asset |
| max_level | integer (Max Level) > 0 Max level of dependency tree traversal (by default unlimited) |
| limit | integer (Limit) > 0 Default: 1000 Page size |
{- "nodes": [
- {
- "url": "string",
- "deleted": false
}
], - "edges": [
- {
- "node_1_url": "string",
- "node_2_url": "string",
- "type": "depends_on"
}
]
}All supported search parameters are available as query parameters.
Search endpoint enables comprehensive searches across images (e.g., .jpg, .png) and USD-based 3D models within various storage backends (Nucleus, S3, etc.). It enables users to use natural language, image similarity, and precise metadata criteria (file name, type, date, size, creator, etc.) to locate relevant content efficiently. Furthermore, when integrated with the Asset Graph Service, USD Search API extends its capabilities to include searches based on USD properties and spatial dimensions of 3D model bounding boxes, enhancing the ability to find assets that meet specific requirements.
Pagination: pass offset, or better, the previous response's X-Next-Cursor header back as
cursor — it pins the ranking so pages do not overlap or skip. Because this endpoint returns a
bare JSON array, the pagination state travels in response headers rather than the body:
X-Next-Cursor, X-Has-More (true/false) and X-Paginable-Total (the page-count basis).
How deep you can go depends on the query shape: filter-only queries are unbounded, a text query
is capped by the deployment's pagination_max_offset, and a multi-leg query is capped by the RRF
fusion window. validate_results=true is single-page and cannot be combined with offset/cursor.
The richer envelope — including why paging stopped — is on POST /v3/deepsearch/search.
| description | string (Description) <= 1024 characters Default: "" Examples:
Conduct text-based searches powered by AI |
Array of Image Similarity Search (strings) or Image Similarity Search (null) (Image Similarity Search) Examples:
Perform similarity searches based on a list of images | |
| file_name | string (File Name) Default: "" Examples:
Filter results by asset file name, allowing partial matches. Use wildcards: |
| exclude_file_name | string (Exclude File Name) Default: "" Examples:
Exclude results by asset file name, allowing partial matches. Use wildcards: |
| file_extension_include | string (File Extension Include) Default: "" Examples:
Filter results by file extension. Use wildcards: |
| file_extension_exclude | string (File Extension Exclude) Default: "" Examples:
Exclude results by file extension. Use wildcards: |
Created After (string) or Created After (null) (Created After) Examples:
Filter results to only include assets created after a specified date | |
Created Before (string) or Created Before (null) (Created Before) Examples:
Filter results to only include assets created before a specified date | |
Modified After (string) or Modified After (null) (Modified After) Examples:
Filter results to only include assets modified after a specified date | |
Modified Before (string) or Modified Before (null) (Modified Before) Examples:
Filter results to only include assets modified before a specified date | |
File Size Greater Than (string) or File Size Greater Than (null) (File Size Greater Than) Examples:
Filter results to only include files larger than a specific size | |
File Size Less Than (string) or File Size Less Than (null) (File Size Less Than) Examples:
Filter results to only include files smaller than a specific size | |
| created_by | string (Created By) Default: "" Filter results to only include assets created by a specific user. In case AWS S3 bucket is used as a storage backend, this field corresponds to the owner's ID. In case of an Omniverse Nucleus server, this field may depend on the configuration, but typically corresponds to user email. |
| exclude_created_by | string (Exclude Created By) Default: "" Examples:
Exclude assets created by a specific user from the results |
| modified_by | string (Modified By) Default: "" Filter results to only include assets modified by a specific user. In the case, when AWS S3 bucket is used as a storage backend, this field corresponds to the owner's ID. In case of an Omniverse Nucleus server, this field may depend on the configuration, but typically corresponds to user email. |
| exclude_modified_by | string (Exclude Modified By) Default: "" Examples:
Exclude assets modified by a specific user from the results |
Similarity Threshold (number) or Similarity Threshold (null) (Similarity Threshold) Examples:
Set the similarity threshold for embedding-based searches. This functionality allows filtering duplicates and returning only those results that are different from each other. Assets are considered to be duplicates if the cosine distance betwen the embeddings a smaller than the similarity_threshold value, which could be in the [0, 2] range. | |
Cutoff Threshold (number) or Cutoff Threshold (null) (Cutoff Threshold) Examples:
Minimum raw engine score for vector search legs only, applied per leg before rank fusion. Scale is the engine's transformed score (innerproduct kNN over normalized SigLIP2 maps ip >= 0 to 1 + ip), so the useful range is roughly 1.0-2.0; values below 1.0 are effectively no-ops. | |
| search_path | string (Search Path) Default: "" Examples:
Specify the search path within the storage backend. This path should not contain the storage backend URL, just the asset path on the storage backend. Use wildcards: |
| exclude_search_path | string (Exclude Search Path) Default: "" Examples:
Specify the search path within the storage backend. This path should not contain the storage backend URL, just the asset path on the storage backend. Use wildcards: |
Filter Url Regexp (string) or Filter Url Regexp (null) (Filter Url Regexp) Examples:
Specify an asset URL filter in the Lucene Regexp format. | |
| search_in_scene | string (Search In Scene) Default: "" Examples:
Conduct the search within a specific scene. Provide the full URL for the asset including the storage backend URL prefix. |
| filter_by_properties | string (Filter By Properties) Default: "" Examples:
Filter assets by USD attributes where at least one root prim matches (note: only supported for a subset of attributes indexed). Format: |
| filter_by_properties_include_any | string (Filter By Properties Include Any) Default: "" Examples:
Filter assets by USD attributes using OR logic — matches if at least one property condition is satisfied. Same format as |
| exclude_filter_by_properties | string (Exclude Filter By Properties) Default: "" Examples:
Exclude assets by USD attributes (note: only supported for a subset of attributes indexed). Format: |
| filter_by_properties_numeric | string (Filter By Properties Numeric) Default: "" Examples:
Filter assets by numeric USD attributes with comparison operators. Format: |
| filter_by_tags | string (Filter By Tags) Default: "" Examples:
Filter by tags. Format: |
Min Bbox X (number) or Min Bbox X (null) (Min Bbox X) Filter by minimum X axis dimension of the asset's bounding box of the default prim of the asset | |
Min Bbox Y (number) or Min Bbox Y (null) (Min Bbox Y) Filter by minimum Y axis dimension of the asset's bounding box of the default prim of the asset | |
Min Bbox Z (number) or Min Bbox Z (null) (Min Bbox Z) Filter by minimum Z axis dimension of the asset's bounding box of the default prim of the asset | |
Max Bbox X (number) or Max Bbox X (null) (Max Bbox X) Filter by maximum X axis dimension of the asset's bounding box of the default prim of the asset | |
Max Bbox Y (number) or Max Bbox Y (null) (Max Bbox Y) Filter by maximum Y axis dimension of the asset's bounding box of the default prim of the asset | |
Max Bbox Z (number) or Max Bbox Z (null) (Max Bbox Z) Filter by maximum Z axis dimension of the asset's bounding box of the default prim of the asset | |
| return_images | boolean (Return Images) Default: false Return images if set to True |
| return_metadata | boolean (Return Metadata) Default: false Return metadata if set to True |
| return_root_prims | boolean (Return Root Prims) Default: false Return root prims if set to True |
| return_default_prims | boolean (Return Default Prims) Default: false Return default prims if set to True |
| return_predictions | boolean (Return Predictions) Deprecated Default: false Returns predictions for each asset in the search results from the fixed vocabulary. NOTE: This functionality is deprecated and setting this parameter will have no effect starting from USD Search version API 1.3. This parameter will be completely removed from the list of input parameters in USD Search API version 2 and above. Please rely on VLM-based auto-captioning functionality instead. |
| return_in_scene_instances_prims | boolean (Return In Scene Instances Prims) Default: false [in-scene search only] Return prims of instances of objects found in the scene |
SearchMethod (string) or Embedding Knn Search Method (null) (Embedding Knn Search Method) Search method, approximate should be faster but is less accurate. Default is exact | |
| limit | integer (Limit) ( 0 .. 10000 ] Default: 32 Set the maximum number of results to return from the search, default is 32 |
| offset | integer (Offset) >= 0 Default: 0 Number of results to skip. Prefer the |
Cursor (string) or Cursor (null) (Cursor) Opaque cursor from the previous response's | |
Vision Metadata (string) or Vision Metadata (null) (Vision Metadata) Uses a keyword match query on metadata fields that were generated using Vision Language Models | |
| return_vision_generated_metadata | boolean (Return Vision Generated Metadata) Default: false Returns the metadata fields that were generated using Vision Language Models |
| return_tags | boolean (Return Tags) Default: false Return tags for search results |
| return_inner_hits | boolean (Return Inner Hits) Default: false Return inner hits from nested queries for debugging and detailed scoring |
| validate_results | boolean (Validate Results) Default: false Validate results with VLM |
[- {
- "url": "omniverse://sample-nucleus-server.example.com/Projects/sample-usd-asset.usd",
- "score": 1.2529583,
- "root_prims": [
- {
- "scene_url": "omniverse://sample-nucleus-server.example.com/Projects/sample-usd-asset.usd",
- "usd_path": "/RootNode",
- "prim_type": "Xform",
- "bbox_max": [
- 0.34971755743026733,
- 0.2549635171890259,
- 0.5211517214775085
], - "bbox_min": [
- -0.34971755743026733,
- -0.25496378540992737,
- 1.9483268332010084e-8
], - "bbox_midpoint": [
- 0,
- -1.341104507446289e-7,
- 0.26057587048038844
], - "bbox_dimension_x": 0.6994351148605347,
- "bbox_dimension_y": 0.5099273025989532,
- "bbox_dimension_z": 0.5211517019942402,
- "properties": {
- "semantic:QWQQ:params:semanticData": "Q1395006",
- "semantic:QWQL:params:semanticType": "class",
- "semantic:QWQQ:params:semanticType": "qcode",
- "semantic:QWQC:params:semanticData": "container/product packaging/box/cardboard box",
- "semantic:QWQL:params:semanticData": "cardboard box",
- "semantic:QWQC:params:semanticType": "hierarchy"
}
}
], - "metadata": {
- "created": "Mon Mar 20 22:06:58 2023",
- "created_by": "user@nvidia.com",
- "modified": "Mon Mar 20 22:06:58 2023",
- "modified_by": "user@nvidia.com",
- "size": 14938,
- "etag": "169176"
}, - "vision_generated_metadata": {
- "vision_generated_object_type": "electric guitar, musical instrument, guitar",
- "vision_generated_materials": "wood, metal, plastic"
}
}
]All supported search parameters are available as body parameters.
Search endpoint enables comprehensive searches across images (e.g., .jpg, .png) and USD-based 3D models within various storage backends (Nucleus, S3, etc.). It enables users to use natural language, image similarity, and precise metadata criteria (file name, type, date, size, creator, etc.) to locate relevant content efficiently. Furthermore, when integrated with the Asset Graph Service, USD Search API extends its capabilities to include searches based on USD properties and spatial dimensions of 3D model bounding boxes, enhancing the ability to find assets that meet specific requirements.
Pagination: pass offset, or better, the previous response's X-Next-Cursor header back as
cursor — it pins the ranking so pages do not overlap or skip. Because this endpoint returns a
bare JSON array, the pagination state travels in response headers rather than the body:
X-Next-Cursor, X-Has-More (true/false) and X-Paginable-Total (the page-count basis).
How deep you can go depends on the query shape: filter-only queries are unbounded, a text query
is capped by the deployment's pagination_max_offset, and a multi-leg query is capped by the RRF
fusion window. validate_results=true is single-page and cannot be combined with offset/cursor.
The richer envelope — including why paging stopped — is on POST /v3/deepsearch/search.
File Name (string) or File Name (null) (File Name) Filter results by asset file name, allowing partial matches. Use wildcards: | |
Exclude File Name (string) or Exclude File Name (null) (Exclude File Name) Exclude results by asset file name, allowing partial matches. Use wildcards: | |
File Extension Include (string) or File Extension Include (null) (File Extension Include) Filter results by file extension. Use wildcards: | |
File Extension Exclude (string) or File Extension Exclude (null) (File Extension Exclude) Exclude results by file extension. Use wildcards: | |
Created After (string) or Created After (null) (Created After) Filter results to only include assets created after a specified date | |
Created Before (string) or Created Before (null) (Created Before) Filter results to only include assets created before a specified date | |
Modified After (string) or Modified After (null) (Modified After) Filter results to only include assets modified after a specified date | |
Modified Before (string) or Modified Before (null) (Modified Before) Filter results to only include assets modified before a specified date | |
File Size Greater Than (string) or File Size Greater Than (null) (File Size Greater Than) Filter results to only include files larger than a specific size | |
File Size Less Than (string) or File Size Less Than (null) (File Size Less Than) Filter results to only include files smaller than a specific size | |
Created By (string) or Created By (null) (Created By) Filter results to only include assets created by a specific user. In case AWS S3 bucket is used as a storage backend, this field corresponds to the owner's ID. In case of an Omniverse Nucleus server, this field may depend on the configuration, but typically corresponds to user email. | |
Exclude Created By (string) or Exclude Created By (null) (Exclude Created By) Exclude assets created by a specific user from the results | |
Modified By (string) or Modified By (null) (Modified By) Filter results to only include assets modified by a specific user. In the case, when AWS S3 bucket is used as a storage backend, this field corresponds to the owner's ID. In case of an Omniverse Nucleus server, this field may depend on the configuration, but typically corresponds to user email. | |
Exclude Modified By (string) or Exclude Modified By (null) (Exclude Modified By) Exclude assets modified by a specific user from the results | |
Search Path (string) or Search Path (null) (Search Path) Limit search to assets within this directory path on the storage backend. Do NOT include the storage backend URL prefix (e.g., use '/Projects/Vehicles/' not 'omniverse://server/Projects/Vehicles/'). Supports wildcards: | |
Exclude Search Path (string) or Exclude Search Path (null) (Exclude Search Path) Exclude assets within this directory path. Same format as search_path — do NOT include the storage backend URL prefix. Supports wildcards: | |
Filter Url Regexp (string) or Filter Url Regexp (null) (Filter Url Regexp) Specify an asset URL filter in the Lucene Regexp format. | |
Search In Scene (string) or Search In Scene (null) (Search In Scene) Conduct the search within a specific scene. Provide the full URL for the asset including the storage backend URL prefix. | |
Filter By Properties (string) or Filter By Properties (null) (Filter By Properties) Filter assets by USD attributes where at least one root prim matches ALL listed conditions (AND logic). Format: | |
Filter By Properties Include Any (string) or Filter By Properties Include Any (null) (Filter By Properties Include Any) Filter assets by USD attributes using OR logic — an asset matches if ANY of the listed property conditions match. Same format as filter_by_properties: | |
Exclude Filter By Properties (string) or Exclude Filter By Properties (null) (Exclude Filter By Properties) Exclude assets by USD attributes where at least one root prim matches (note: only supported for a subset of attributes indexed). Format: | |
Filter By Properties Numeric (string) or Filter By Properties Numeric (null) (Filter By Properties Numeric) Filter assets by numeric USD attributes with comparison operators. Format: | |
Filter By Tags (string) or Filter By Tags (null) (Filter By Tags) Filter assets by tags. Format: | |
Min Bbox X (number) or Min Bbox X (null) (Min Bbox X) Filter by minimum X axis dimension of the asset's bounding box of the default prim of the asset | |
Min Bbox Y (number) or Min Bbox Y (null) (Min Bbox Y) Filter by minimum Y axis dimension of the asset's bounding box of the default prim of the asset | |
Min Bbox Z (number) or Min Bbox Z (null) (Min Bbox Z) Filter by minimum Z axis dimension of the asset's bounding box of the default prim of the asset | |
Max Bbox X (number) or Max Bbox X (null) (Max Bbox X) Filter by maximum X axis dimension of the asset's bounding box of the default prim of the asset | |
Max Bbox Y (number) or Max Bbox Y (null) (Max Bbox Y) Filter by maximum Y axis dimension of the asset's bounding box of the default prim of the asset | |
Max Bbox Z (number) or Max Bbox Z (null) (Max Bbox Z) Filter by maximum Z axis dimension of the asset's bounding box of the default prim of the asset | |
| bbox_use_scaled_dimensions | boolean (Bbox Use Scaled Dimensions) Default: true Use scaled dimensions for bounding box filtering |
Vision Metadata (string) or Vision Metadata (null) (Vision Metadata) Uses a keyword match query on metadata fields that were generated using Vision Language Models. Format: | |
Description (string) or Description (null) (Description) Legacy text search query using AI-powered semantic matching. For new integrations, prefer hybrid_text_query on DeepSearchSearchRequestV2 (POST /search_hybrid) which combines text+vector search for better results. | |
Array of Image Similarity Search (strings) or Image Similarity Search (null) (Image Similarity Search) Find visually similar assets by providing reference images. Accepts base64-encoded images (JPEG/PNG/GIF), data URLs (data:image/jpeg;base64,...), or asset URLs (omniverse:// or s3://). Up to 10 images. Can be combined with text search for multimodal queries. | |
Similarity Threshold (number) or Similarity Threshold (null) (Similarity Threshold) Deduplication threshold using embedding cosine distance. Assets with cosine distance below this value are considered duplicates — only the highest-scoring one is returned. Range [0, 2]. Typical values: 0.1 for light dedup, 0.3 for aggressive dedup, None to disable. | |
Cutoff Threshold (number) or Cutoff Threshold (null) (Cutoff Threshold) Minimum raw engine score for VECTOR search legs only (text/keyword legs are never cut off). Applied per leg BEFORE Reciprocal Rank Fusion, so a cut hit can still appear if another leg ranks it. The scale is the engine's transformed score, not plain cosine: for innerproduct kNN over normalized SigLIP2 embeddings OpenSearch maps ip >= 0 to 1 + ip, so the useful range is roughly 1.0 (orthogonal) to 2.0 (identical); values below 1.0 are effectively no-ops. Leave unset to keep every vector hit. | |
| return_images | boolean (Return Images) Default: false Return base64-encoded thumbnail images for each result. Recommended: true for visual inspection of search results. |
| return_metadata | boolean (Return Metadata) Default: false Return file metadata (created/modified dates, user, size, etag) for each result |
| return_root_prims | boolean (Return Root Prims) Default: false Return USD root prim data (type, bounding box, properties) for each result. Provides scene structure information. |
| return_default_prims | boolean (Return Default Prims) Default: false Return USD default prim data for each result. The default prim is the entry point when referencing this asset. |
| return_predictions | boolean (Return Predictions) Default: false Return ML model predictions (object classification, segmentation) for each result |
| return_in_scene_instances_prims | boolean (Return In Scene Instances Prims) Default: false [In-scene search only] Return prims of instances of objects found in the scene when using search_in_scene. Only meaningful when search_in_scene is set. |
SearchMethod (string) or null Vector search method: 'exact' (brute-force, more accurate, slower) or 'approximate' (HNSW, faster, may miss some results). Default is exact. Use approximate for large-scale exploratory searches. | |
| limit | integer (Limit) ( 0 .. 10000 ] Default: 32 Maximum number of results to return (1-10000, default 32). Use 20-50 for initial exploration, 100+ for exhaustive search. Higher limits increase response time. |
| return_vision_generated_metadata | boolean (Return Vision Generated Metadata) Default: false Returns the metadata fields that were generated using Vision Language Models |
| return_inner_hits | boolean (Return Inner Hits) Default: false Return detailed inner hits showing which nested documents matched (e.g., specific embedding offsets or USD property values) |
| return_tags | boolean (Return Tags) Default: false Return asset tags (key-value pairs) in the source data for each result |
| validate_results | boolean (Validate Results) Default: false Validate results with VLM |
| offset | integer (Offset) >= 0 Default: 0 Number of results to skip — the simple, stateless way to reach page N. Prefer |
Cursor (string) or Cursor (null) (Cursor) Opaque cursor from the previous response's | |
ScoringConfig (object) or null Advanced scoring configuration controlling how text, vector, and filter results are combined via RRF. Leave as default for standard behavior, or customize field weights and RRF parameters for fine-tuned ranking. | |
Hybrid Text Query (string) or Hybrid Text Query (null) (Hybrid Text Query) Natural language search query for text-based search across multiple configurable fields (name, path, properties, AI-generated metadata). Use SHORT descriptive phrases (2-5 words) for best results. Combine with vector_queries using the same text for optimal hybrid search. | |
Array of objects (Vector Queries) Vector similarity queries for semantic search. Typically used with same text as hybrid_text_query for hybrid search: [{field_name: 'siglip2-embedding.embedding', query_type: 'text', query: ' | |
| return_embeddings | boolean (Return Embeddings) Default: false Return raw embedding vectors for search results. Useful for client-side similarity computations or caching. |
| return_usd_properties | boolean (Return Usd Properties) Default: false Return USD attributes (semantic labels, physics properties, etc.) from root prims for each result |
| return_usd_dimensions | boolean (Return Usd Dimensions) Default: false Return bounding box dimensions (bbox_dimension_x/y/z) for each result. Useful for size-based filtering or layout planning. |
| deduplicate_by_hash | boolean (Deduplicate By Hash) Default: false Collapse results with identical content hashes, returning only the highest-scoring version. Useful when the same asset exists at multiple paths. |
{- "file_extension_include": "usd*",
- "hybrid_text_query": "red car vehicle",
- "limit": 20,
- "return_images": true,
- "return_metadata": true,
- "title": "Minimal hybrid search (recommended starting point)",
- "vector_queries": [
- {
- "field_name": "siglip2-embedding.embedding",
- "query": "red car vehicle",
- "query_type": "text"
}
]
}[- {
- "url": "omniverse://sample-nucleus-server.example.com/Projects/sample-usd-asset.usd",
- "score": 1.2529583,
- "root_prims": [
- {
- "scene_url": "omniverse://sample-nucleus-server.example.com/Projects/sample-usd-asset.usd",
- "usd_path": "/RootNode",
- "prim_type": "Xform",
- "bbox_max": [
- 0.34971755743026733,
- 0.2549635171890259,
- 0.5211517214775085
], - "bbox_min": [
- -0.34971755743026733,
- -0.25496378540992737,
- 1.9483268332010084e-8
], - "bbox_midpoint": [
- 0,
- -1.341104507446289e-7,
- 0.26057587048038844
], - "bbox_dimension_x": 0.6994351148605347,
- "bbox_dimension_y": 0.5099273025989532,
- "bbox_dimension_z": 0.5211517019942402,
- "properties": {
- "semantic:QWQQ:params:semanticData": "Q1395006",
- "semantic:QWQL:params:semanticType": "class",
- "semantic:QWQQ:params:semanticType": "qcode",
- "semantic:QWQC:params:semanticData": "container/product packaging/box/cardboard box",
- "semantic:QWQL:params:semanticData": "cardboard box",
- "semantic:QWQC:params:semanticType": "hierarchy"
}
}
], - "metadata": {
- "created": "Mon Mar 20 22:06:58 2023",
- "created_by": "user@nvidia.com",
- "modified": "Mon Mar 20 22:06:58 2023",
- "modified_by": "user@nvidia.com",
- "size": 14938,
- "etag": "169176"
}, - "vision_generated_metadata": {
- "vision_generated_object_type": "electric guitar, musical instrument, guitar",
- "vision_generated_materials": "wood, metal, plastic"
}
}
]Inventory of USD properties across the indexed corpus: every unique property key, every unique
value, and every unique key=value pair — each with the number of assets that carry it
(asset_count), sorted by coverage. The full lists (not just counts) power property discovery;
see the /usd-property-catalog skill, which turns this into a local catalog + filter config.
Filtering. Pass any of the filter parameters that /search accepts (search_path,
file_extension_include, filter_by_properties, filter_by_tags, dates, bbox dimensions,
search_in_scene, …) to inventory a subset of the corpus instead — "which properties do the
assets under /Projects/Vehicles carry?". Passing none inventories everything, as before.
Counts stay exact for whatever subset is selected: this is an aggregation over the whole
matching set, not a summary of one page of search results. Filtering is asset-scoped, so
filter_by_properties=class=vehicle returns every property those assets carry, not just
class — which is what makes drill-down work.
Search-only parameters (description, vector/image queries, limit, offset) are rejected
with a 422: an aggregation has no ranking to apply them to, and silently ignoring them would
return corpus-wide numbers that look filtered.
Not access-filtered. Results describe the index itself, not the subset of assets the
caller could download — with or without filters. Deployments that cannot accept that should
turn aggregations off (enable_aggregations=false), which makes this endpoint return 403.
File Name (string) or File Name (null) (File Name) Examples: file_name=robot.usd file_name=*scene* Filter results by asset file name, allowing partial matches. Use wildcards: | |
Exclude File Name (string) or Exclude File Name (null) (Exclude File Name) Examples: exclude_file_name=draft* exclude_file_name=*temp* Exclude results by asset file name, allowing partial matches. Use wildcards: | |
File Extension Include (string) or File Extension Include (null) (File Extension Include) Examples: file_extension_include=usd file_extension_include=usd* file_extension_include=jpg,png,gif Filter results by file extension. Use wildcards: | |
File Extension Exclude (string) or File Extension Exclude (null) (File Extension Exclude) Examples: file_extension_exclude=jpg file_extension_exclude=jpg,png,gif file_extension_exclude=mdl Exclude results by file extension. Use wildcards: | |
Created After (string) or Created After (null) (Created After) Examples: created_after=2023-01-01 created_after=2023-06-01 Filter results to only include assets created after a specified date | |
Created Before (string) or Created Before (null) (Created Before) Examples: created_before=2023-01-01 created_before=2023-06-01 Filter results to only include assets created before a specified date | |
Modified After (string) or Modified After (null) (Modified After) Examples: modified_after=2023-02-01 modified_after=2023-07-01 Filter results to only include assets modified after a specified date | |
Modified Before (string) or Modified Before (null) (Modified Before) Examples: modified_before=2023-02-01 modified_before=2023-07-01 Filter results to only include assets modified before a specified date | |
File Size Greater Than (string) or File Size Greater Than (null) (File Size Greater Than) Examples: file_size_greater_than=1KB file_size_greater_than=10MB Filter results to only include files larger than a specific size | |
File Size Less Than (string) or File Size Less Than (null) (File Size Less Than) Examples: file_size_less_than=100MB file_size_less_than=1GB Filter results to only include files smaller than a specific size | |
Created By (string) or Created By (null) (Created By) Examples: created_by=ov_user Filter results to only include assets created by a specific user. In case AWS S3 bucket is used as a storage backend, this field corresponds to the owner's ID. In case of an Omniverse Nucleus server, this field may depend on the configuration, but typically corresponds to user email. | |
Exclude Created By (string) or Exclude Created By (null) (Exclude Created By) Examples: exclude_created_by=ov_user Exclude assets created by a specific user from the results | |
Modified By (string) or Modified By (null) (Modified By) Examples: modified_by=ov_user Filter results to only include assets modified by a specific user. In the case, when AWS S3 bucket is used as a storage backend, this field corresponds to the owner's ID. In case of an Omniverse Nucleus server, this field may depend on the configuration, but typically corresponds to user email. | |
Exclude Modified By (string) or Exclude Modified By (null) (Exclude Modified By) Examples: exclude_modified_by=ov_user Exclude assets modified by a specific user from the results | |
Search Path (string) or Search Path (null) (Search Path) Examples: search_path=/Projects/Vehicles/ search_path=/Samples/* Limit search to assets within this directory path on the storage backend. Do NOT include the storage backend URL prefix (e.g., use '/Projects/Vehicles/' not 'omniverse://server/Projects/Vehicles/'). Supports wildcards: | |
Exclude Search Path (string) or Exclude Search Path (null) (Exclude Search Path) Examples: exclude_search_path=/Projects/Archive/ exclude_search_path=*/tmp/* Exclude assets within this directory path. Same format as search_path — do NOT include the storage backend URL prefix. Supports wildcards: | |
Filter Url Regexp (string) or Filter Url Regexp (null) (Filter Url Regexp) Examples: filter_url_regexp=.*[/]Vehicles[/].* filter_url_regexp=~(.*[/]temp[/].*) Specify an asset URL filter in the Lucene Regexp format. | |
Search In Scene (string) or Search In Scene (null) (Search In Scene) Examples: search_in_scene=s3://bucket-name/Project/scene.usd Conduct the search within a specific scene. Provide the full URL for the asset including the storage backend URL prefix. | |
Filter By Properties (string) or Filter By Properties (null) (Filter By Properties) Examples: filter_by_properties=class=vehicle filter_by_properties=class=~*vehicle* filter_by_properties=class=vehicle,material=metal Filter assets by USD attributes where at least one root prim matches ALL listed conditions (AND logic). Format: | |
Filter By Properties Include Any (string) or Filter By Properties Include Any (null) (Filter By Properties Include Any) Examples: filter_by_properties_include_any=class=car,class=truck Filter assets by USD attributes using OR logic — an asset matches if ANY of the listed property conditions match. Same format as filter_by_properties: | |
Exclude Filter By Properties (string) or Exclude Filter By Properties (null) (Exclude Filter By Properties) Examples: exclude_filter_by_properties=class=vehicle exclude_filter_by_properties=class=~*draft* Exclude assets by USD attributes where at least one root prim matches (note: only supported for a subset of attributes indexed). Format: | |
Filter By Properties Numeric (string) or Filter By Properties Numeric (null) (Filter By Properties Numeric) Examples: filter_by_properties_numeric=physics:mass>1.0 filter_by_properties_numeric=physics:mass>1.0,physics:density<=500 Filter assets by numeric USD attributes with comparison operators. Format: | |
Filter By Tags (string) or Filter By Tags (null) (Filter By Tags) Examples: filter_by_tags=reviewed= filter_by_tags==production filter_by_tags=status=approved Filter assets by tags. Format: | |
Min Bbox X (number) or Min Bbox X (null) (Min Bbox X) Examples: min_bbox_x=1 Filter by minimum X axis dimension of the asset's bounding box of the default prim of the asset | |
Min Bbox Y (number) or Min Bbox Y (null) (Min Bbox Y) Examples: min_bbox_y=1 Filter by minimum Y axis dimension of the asset's bounding box of the default prim of the asset | |
Min Bbox Z (number) or Min Bbox Z (null) (Min Bbox Z) Examples: min_bbox_z=1 Filter by minimum Z axis dimension of the asset's bounding box of the default prim of the asset | |
Max Bbox X (number) or Max Bbox X (null) (Max Bbox X) Examples: max_bbox_x=100 Filter by maximum X axis dimension of the asset's bounding box of the default prim of the asset | |
Max Bbox Y (number) or Max Bbox Y (null) (Max Bbox Y) Examples: max_bbox_y=100 Filter by maximum Y axis dimension of the asset's bounding box of the default prim of the asset | |
Max Bbox Z (number) or Max Bbox Z (null) (Max Bbox Z) Examples: max_bbox_z=100 Filter by maximum Z axis dimension of the asset's bounding box of the default prim of the asset | |
| bbox_use_scaled_dimensions | boolean (Bbox Use Scaled Dimensions) Default: true Use scaled dimensions for bounding box filtering |
Vision Metadata (string) or Vision Metadata (null) (Vision Metadata) Examples: vision_metadata=material=metal vision_metadata=color=red,style=modern Uses a keyword match query on metadata fields that were generated using Vision Language Models. Format: |
{- "unique_keys": [
- {
- "key": "string",
- "asset_count": 0
}
], - "unique_values": [
- {
- "value": "string",
- "asset_count": 0
}
], - "kv_pairs": [
- {
- "key": "string",
- "value": "string",
- "asset_count": 0
}
]
}Search for 3D assets using combined text + vector + filter search with Reciprocal Rank Fusion scoring.
This is the recommended endpoint for AI agents and programmatic access. It combines:
Quick Start for AI Agents:
hybrid_text_query to a short description (2-5 words)vector_queries entry with field_name="siglip2-embedding.embedding", query_type="text", same query textfile_extension_include="usd*" for USD assetsreturn_images=true for visual inspectionlimit=20-50 for explorationPagination: pass offset, or better, the previous response's next_cursor
back as cursor — it pins the ranking so pages do not overlap or skip. The
response carries next_cursor, has_more, paginable_total (the page-count
basis — not corpus_total) and a pagination diagnostic block whose
depth_limit_reason distinguishes "no more results" from "cannot page further
for this query shape". Depth depends on the shape: filter-only queries are
unbounded, a text query is capped by the deployment's pagination_max_offset,
and a multi-leg query is capped by the RRF fusion window. validate_results=true
is single-page and cannot be combined with offset/cursor.
File Name (string) or File Name (null) (File Name) Filter results by asset file name, allowing partial matches. Use wildcards: | |
Exclude File Name (string) or Exclude File Name (null) (Exclude File Name) Exclude results by asset file name, allowing partial matches. Use wildcards: | |
File Extension Include (string) or File Extension Include (null) (File Extension Include) Filter results by file extension. Use wildcards: | |
File Extension Exclude (string) or File Extension Exclude (null) (File Extension Exclude) Exclude results by file extension. Use wildcards: | |
Created After (string) or Created After (null) (Created After) Filter results to only include assets created after a specified date | |
Created Before (string) or Created Before (null) (Created Before) Filter results to only include assets created before a specified date | |
Modified After (string) or Modified After (null) (Modified After) Filter results to only include assets modified after a specified date | |
Modified Before (string) or Modified Before (null) (Modified Before) Filter results to only include assets modified before a specified date | |
File Size Greater Than (string) or File Size Greater Than (null) (File Size Greater Than) Filter results to only include files larger than a specific size | |
File Size Less Than (string) or File Size Less Than (null) (File Size Less Than) Filter results to only include files smaller than a specific size | |
Created By (string) or Created By (null) (Created By) Filter results to only include assets created by a specific user. In case AWS S3 bucket is used as a storage backend, this field corresponds to the owner's ID. In case of an Omniverse Nucleus server, this field may depend on the configuration, but typically corresponds to user email. | |
Exclude Created By (string) or Exclude Created By (null) (Exclude Created By) Exclude assets created by a specific user from the results | |
Modified By (string) or Modified By (null) (Modified By) Filter results to only include assets modified by a specific user. In the case, when AWS S3 bucket is used as a storage backend, this field corresponds to the owner's ID. In case of an Omniverse Nucleus server, this field may depend on the configuration, but typically corresponds to user email. | |
Exclude Modified By (string) or Exclude Modified By (null) (Exclude Modified By) Exclude assets modified by a specific user from the results | |
Search Path (string) or Search Path (null) (Search Path) Limit search to assets within this directory path on the storage backend. Do NOT include the storage backend URL prefix (e.g., use '/Projects/Vehicles/' not 'omniverse://server/Projects/Vehicles/'). Supports wildcards: | |
Exclude Search Path (string) or Exclude Search Path (null) (Exclude Search Path) Exclude assets within this directory path. Same format as search_path — do NOT include the storage backend URL prefix. Supports wildcards: | |
Filter Url Regexp (string) or Filter Url Regexp (null) (Filter Url Regexp) Specify an asset URL filter in the Lucene Regexp format. | |
Search In Scene (string) or Search In Scene (null) (Search In Scene) Conduct the search within a specific scene. Provide the full URL for the asset including the storage backend URL prefix. | |
Filter By Properties (string) or Filter By Properties (null) (Filter By Properties) Filter assets by USD attributes where at least one root prim matches ALL listed conditions (AND logic). Format: | |
Filter By Properties Include Any (string) or Filter By Properties Include Any (null) (Filter By Properties Include Any) Filter assets by USD attributes using OR logic — an asset matches if ANY of the listed property conditions match. Same format as filter_by_properties: | |
Exclude Filter By Properties (string) or Exclude Filter By Properties (null) (Exclude Filter By Properties) Exclude assets by USD attributes where at least one root prim matches (note: only supported for a subset of attributes indexed). Format: | |
Filter By Properties Numeric (string) or Filter By Properties Numeric (null) (Filter By Properties Numeric) Filter assets by numeric USD attributes with comparison operators. Format: | |
Filter By Tags (string) or Filter By Tags (null) (Filter By Tags) Filter assets by tags. Format: | |
Min Bbox X (number) or Min Bbox X (null) (Min Bbox X) Filter by minimum X axis dimension of the asset's bounding box of the default prim of the asset | |
Min Bbox Y (number) or Min Bbox Y (null) (Min Bbox Y) Filter by minimum Y axis dimension of the asset's bounding box of the default prim of the asset | |
Min Bbox Z (number) or Min Bbox Z (null) (Min Bbox Z) Filter by minimum Z axis dimension of the asset's bounding box of the default prim of the asset | |
Max Bbox X (number) or Max Bbox X (null) (Max Bbox X) Filter by maximum X axis dimension of the asset's bounding box of the default prim of the asset | |
Max Bbox Y (number) or Max Bbox Y (null) (Max Bbox Y) Filter by maximum Y axis dimension of the asset's bounding box of the default prim of the asset | |
Max Bbox Z (number) or Max Bbox Z (null) (Max Bbox Z) Filter by maximum Z axis dimension of the asset's bounding box of the default prim of the asset | |
| bbox_use_scaled_dimensions | boolean (Bbox Use Scaled Dimensions) Default: true Use scaled dimensions for bounding box filtering |
Vision Metadata (string) or Vision Metadata (null) (Vision Metadata) Uses a keyword match query on metadata fields that were generated using Vision Language Models. Format: | |
Description (string) or Description (null) (Description) Legacy text search query using AI-powered semantic matching. For new integrations, prefer hybrid_text_query on DeepSearchSearchRequestV2 (POST /search_hybrid) which combines text+vector search for better results. | |
Array of Image Similarity Search (strings) or Image Similarity Search (null) (Image Similarity Search) Find visually similar assets by providing reference images. Accepts base64-encoded images (JPEG/PNG/GIF), data URLs (data:image/jpeg;base64,...), or asset URLs (omniverse:// or s3://). Up to 10 images. Can be combined with text search for multimodal queries. | |
Similarity Threshold (number) or Similarity Threshold (null) (Similarity Threshold) Deduplication threshold using embedding cosine distance. Assets with cosine distance below this value are considered duplicates — only the highest-scoring one is returned. Range [0, 2]. Typical values: 0.1 for light dedup, 0.3 for aggressive dedup, None to disable. | |
Cutoff Threshold (number) or Cutoff Threshold (null) (Cutoff Threshold) Minimum raw engine score for VECTOR search legs only (text/keyword legs are never cut off). Applied per leg BEFORE Reciprocal Rank Fusion, so a cut hit can still appear if another leg ranks it. The scale is the engine's transformed score, not plain cosine: for innerproduct kNN over normalized SigLIP2 embeddings OpenSearch maps ip >= 0 to 1 + ip, so the useful range is roughly 1.0 (orthogonal) to 2.0 (identical); values below 1.0 are effectively no-ops. Leave unset to keep every vector hit. | |
| return_images | boolean (Return Images) Default: false Return base64-encoded thumbnail images for each result. Recommended: true for visual inspection of search results. |
| return_metadata | boolean (Return Metadata) Default: false Return file metadata (created/modified dates, user, size, etag) for each result |
| return_root_prims | boolean (Return Root Prims) Default: false Return USD root prim data (type, bounding box, properties) for each result. Provides scene structure information. |
| return_default_prims | boolean (Return Default Prims) Default: false Return USD default prim data for each result. The default prim is the entry point when referencing this asset. |
| return_predictions | boolean (Return Predictions) Default: false Return ML model predictions (object classification, segmentation) for each result |
| return_in_scene_instances_prims | boolean (Return In Scene Instances Prims) Default: false [In-scene search only] Return prims of instances of objects found in the scene when using search_in_scene. Only meaningful when search_in_scene is set. |
SearchMethod (string) or null Vector search method: 'exact' (brute-force, more accurate, slower) or 'approximate' (HNSW, faster, may miss some results). Default is exact. Use approximate for large-scale exploratory searches. | |
| limit | integer (Limit) ( 0 .. 10000 ] Default: 32 Maximum number of results to return (1-10000, default 32). Use 20-50 for initial exploration, 100+ for exhaustive search. Higher limits increase response time. |
| return_vision_generated_metadata | boolean (Return Vision Generated Metadata) Default: false Returns the metadata fields that were generated using Vision Language Models |
| return_inner_hits | boolean (Return Inner Hits) Default: false Return detailed inner hits showing which nested documents matched (e.g., specific embedding offsets or USD property values) |
| return_tags | boolean (Return Tags) Default: false Return asset tags (key-value pairs) in the source data for each result |
| validate_results | boolean (Validate Results) Default: false Validate results with VLM |
| offset | integer (Offset) >= 0 Default: 0 Number of results to skip — the simple, stateless way to reach page N. Prefer |
Cursor (string) or Cursor (null) (Cursor) Opaque cursor from the previous response's | |
ScoringConfig (object) or null Advanced scoring configuration controlling how text, vector, and filter results are combined via RRF. Leave as default for standard behavior, or customize field weights and RRF parameters for fine-tuned ranking. | |
Hybrid Text Query (string) or Hybrid Text Query (null) (Hybrid Text Query) Natural language search query for text-based search across multiple configurable fields (name, path, properties, AI-generated metadata). Use SHORT descriptive phrases (2-5 words) for best results. Combine with vector_queries using the same text for optimal hybrid search. | |
Array of objects (Vector Queries) Vector similarity queries for semantic search. Typically used with same text as hybrid_text_query for hybrid search: [{field_name: 'siglip2-embedding.embedding', query_type: 'text', query: ' | |
| return_embeddings | boolean (Return Embeddings) Default: false Return raw embedding vectors for search results. Useful for client-side similarity computations or caching. |
| return_usd_properties | boolean (Return Usd Properties) Default: false Return USD attributes (semantic labels, physics properties, etc.) from root prims for each result |
| return_usd_dimensions | boolean (Return Usd Dimensions) Default: false Return bounding box dimensions (bbox_dimension_x/y/z) for each result. Useful for size-based filtering or layout planning. |
| deduplicate_by_hash | boolean (Deduplicate By Hash) Default: false Collapse results with identical content hashes, returning only the highest-scoring version. Useful when the same asset exists at multiple paths. |
{- "title": "Minimal hybrid search (recommended starting point)",
- "hybrid_text_query": "red car vehicle",
- "vector_queries": [
- {
- "field_name": "siglip2-embedding.embedding",
- "query_type": "text",
- "query": "red car vehicle"
}
], - "file_extension_include": "usd*",
- "return_images": true,
- "return_metadata": true,
- "limit": 20
}{- "total": 0,
- "corpus_total": 0,
- "paginable_total": 0,
- "next_cursor": "string",
- "has_more": false,
- "pagination": { },
- "hits": [
- {
- "id": "string",
- "score": 0,
- "rrf_score": 0,
- "metadata": {
- "explanations": [
- {
- "search_type": "text",
- "score": 0,
- "field": "string",
- "details": { },
- "rrf_score": 0,
- "rrf_rank_constant": 0,
- "matched_terms": [
- "string"
], - "vector_similarity": 0,
- "matched_vectors": [
- {
- "offset": 0,
- "score": 0,
- "field": "string",
- "image": "string",
- "keyword": [
- "string"
], - "label": "string"
}
]
}
], - "rrf_rank": 0,
- "original_ranks": {
- "property1": 0,
- "property2": 0
}
}, - "source": null,
- "inner_hits": { },
- "ags_data": {
- "instance_prims": [
- {
- "scene_url": "string",
- "scene_mpu": 1,
- "usd_path": "string",
- "prim_type": "Xform",
- "source_asset_url": "string",
- "properties": {
- "property1": "string",
- "property2": "string"
}, - "translate": [
- 0,
- 0,
- 0
], - "rotate_x": 0,
- "rotate_y": 0,
- "rotate_z": 0,
- "scale_x": 0,
- "scale_y": 0,
- "scale_z": 0,
- "bbox_max": [
- 0
], - "bbox_min": [
- 0
], - "bbox_midpoint": [
- 0
], - "root_prim": true,
- "default_prim": true,
- "polygon_count": 0,
- "point_count": 0,
- "curve_segment_count": 0,
- "bbox_dimension_x": 0,
- "bbox_dimension_y": 0,
- "bbox_dimension_z": 0,
- "scaled_bbox_dimension_x": 0,
- "scaled_bbox_dimension_y": 0,
- "scaled_bbox_dimension_z": 0
}
], - "root_prims": [
- {
- "scene_url": "string",
- "scene_mpu": 1,
- "usd_path": "string",
- "prim_type": "Xform",
- "source_asset_url": "string",
- "properties": {
- "property1": "string",
- "property2": "string"
}, - "translate": [
- 0,
- 0,
- 0
], - "rotate_x": 0,
- "rotate_y": 0,
- "rotate_z": 0,
- "scale_x": 0,
- "scale_y": 0,
- "scale_z": 0,
- "bbox_max": [
- 0
], - "bbox_min": [
- 0
], - "bbox_midpoint": [
- 0
], - "root_prim": true,
- "default_prim": true,
- "polygon_count": 0,
- "point_count": 0,
- "curve_segment_count": 0,
- "bbox_dimension_x": 0,
- "bbox_dimension_y": 0,
- "bbox_dimension_z": 0,
- "scaled_bbox_dimension_x": 0,
- "scaled_bbox_dimension_y": 0,
- "scaled_bbox_dimension_z": 0
}
], - "default_prims": [
- {
- "scene_url": "string",
- "scene_mpu": 1,
- "usd_path": "string",
- "prim_type": "Xform",
- "source_asset_url": "string",
- "properties": {
- "property1": "string",
- "property2": "string"
}, - "translate": [
- 0,
- 0,
- 0
], - "rotate_x": 0,
- "rotate_y": 0,
- "rotate_z": 0,
- "scale_x": 0,
- "scale_y": 0,
- "scale_z": 0,
- "bbox_max": [
- 0
], - "bbox_min": [
- 0
], - "bbox_midpoint": [
- 0
], - "root_prim": true,
- "default_prim": true,
- "polygon_count": 0,
- "point_count": 0,
- "curve_segment_count": 0,
- "bbox_dimension_x": 0,
- "bbox_dimension_y": 0,
- "bbox_dimension_z": 0,
- "scaled_bbox_dimension_x": 0,
- "scaled_bbox_dimension_y": 0,
- "scaled_bbox_dimension_z": 0
}
]
}, - "thumbnail_exists": true,
- "query_relevance": {
- "is_match": true,
- "confidence": 0,
- "similarity_score": 0,
- "reasoning": "string",
- "model": "string"
}
}
], - "search_metadata": { }
}Uses an LLM with constrained (JSON-schema) decoding to turn free-text into a structured intermediate representation, then deterministically maps it onto search request fields. Returns a 503 if the feature is disabled on this server or the LLM call fails.
| query required | string (Query) non-empty Raw free-text search text from the search bar. |
{- "query": "string"
}{- "interpreted_query": {
- "semantic_query": "string",
- "filters": [
- {
- "field": "string",
- "operator": "eq",
- "value": "string"
}
], - "unmapped_constraints": [
- {
- "text": "string",
- "note": "string"
}
], - "limit": 1
}, - "search_params": { },
- "dropped_filters": [
- {
- "filter": {
- "field": "string",
- "operator": "eq",
- "value": "string"
}, - "reason": "unknown_field",
- "message": "string"
}
], - "unmapped_constraints": [
- {
- "text": "string",
- "note": "string"
}
]
}Returns the configured filter field catalog (from search_fields.yaml): name, value type, valid operators, description, and examples. Lets the UI show users which filters are available and let them add filters without typing a query. Static metadata — works regardless of whether the LLM extractor is enabled.
[- {
- "name": "string",
- "value_type": "string",
- "operators": [
- "string"
], - "description": "string",
- "examples": [
- "string"
], - "params": [
- "string"
], - "comma_join": false,
- "kind": "",
- "property": "string",
- "label": "string",
- "group": "string"
}
]Validates a single asset image against a query using a Vision Language Model. Returns match status, confidence, similarity score, and reasoning.
Asset Url (string) or Asset Url (null) (Asset Url) Asset URL to validate (mutually exclusive with image_key/image_keys) | |
Image Key (string) or Image Key (null) (Image Key) Single image key to validate (mutually exclusive with asset_url/image_keys) | |
Array of Image Keys (strings) or Image Keys (null) (Image Keys) List of image keys for multiple views of the asset. The deployment's view budget applies (USDSEARCH_VISION_VALIDATION_MAX_IMAGES_PER_VALIDATION); requests exceeding it are rejected with 400. Mutually exclusive with asset_url/image_key. | |
Array of Images (strings) or Images (null) (Images) Raw base64-encoded images (data URL or bare base64) to validate directly. When provided, the server validates these images as-is and does NOT fetch anything from the index. Mutually exclusive with asset_url/image_key/image_keys. The deployment view budget (USDSEARCH_VISION_VALIDATION_MAX_IMAGES_PER_VALIDATION) applies. | |
Query Text (string) or Query Text (null) (Query Text) Text query to validate against | |
Query Image (string) or Query Image (null) (Query Image) Base64 image query to validate against |
{- "asset_url": "string",
- "image_key": "string",
- "image_keys": [
- "string"
], - "images": [
- "string"
], - "query_text": "string",
- "query_image": "string"
}{- "is_match": true,
- "confidence": 0,
- "similarity_score": 0,
- "reasoning": "string",
- "model": "string"
}Check whether a specific asset has been fully indexed by USD Search. Use this to verify if an asset will appear in search results, or to diagnose why it might be missing.
For each URL the service checks caches of all plugins that support processing this asset and reports the following information:
indexing_status [not_found / in_sync / out_of_sync ] - this parameter checks the difference between cached value of asset hash and the actual (up-to-date) asset hash from the storage backend.
plugin_status_history - is a list of last statuses that were assigned to the asset, while it was being processed. Each item of this list has the following structure:
status [ok / processing / failed_retries_exhausted / other string] - shows whether the asset was
processing_timestamp - the moment when the status was assigned
exception - optional exception explanation
The service could additionally report asset metadata from the storage backend if return_asset_metadata flag is set to True.
| url required | string (Url) Asset URL for which processing status needs to be retrieved |
| return_asset_metadata | boolean (Return Asset Metadata) Default: false Return metadata for the asset if set to True |
{- "url": "string",
- "plugins_statuses": {
- "property1": {
- "indexing_status": "in_sync",
- "indexed_asset_hash": "string",
- "plugin_status_history": [
- {
- "status": "string",
- "hash_value": "string",
- "processing_timestamp": 0,
- "exception": "string"
}
]
}, - "property2": {
- "indexing_status": "in_sync",
- "indexed_asset_hash": "string",
- "plugin_status_history": [
- {
- "status": "string",
- "hash_value": "string",
- "processing_timestamp": 0,
- "exception": "string"
}
]
}
}, - "storage_backend_info": {
- "asset_status": "ok",
- "storage_asset_hash": "string",
- "metadata": {
- "uri": "string",
- "etag": "string",
- "status": "string",
- "event": "acl_change",
- "type": "string",
- "ts": {
- "property1": 0,
- "property2": 0
}, - "transaction_id": "string",
- "acl": [
- "string"
], - "empty": true,
- "mounted": true,
- "size": 0,
- "created_by": "string",
- "created_date_seconds": 0,
- "modified_by": "string",
- "modified_date_seconds": 0,
- "hash_type": "string",
- "hash_value": "string",
- "hash_bsize": 0,
- "is_deleted": true,
- "deleted_by": "string",
- "deleted_date_seconds": 0,
- "source": "recursive_list"
}
}
}USD Search processes all assets on the storage backend in the background. This, however, may take time depending on the amount of data on the storage backend and the amount of available resources, which could lead to delays in specific assets appearing in the search index. In order to address this and prioritize processing of specific assets, it is possible to use this endpoint to trigger indexing of a specific asset on demand.
When triggering processing of a specific asset URL the user could decide, with which plugin the asset needs to be processed. By default, when no plugin is selected - the service will trigger processing for all plugins that could work with this asset type. Please find below the list of supported plugins:
asset_graph_generation: Constructs several graphs based on the prim hierarchy of a USD file. This plugin is an essential component of Asset Graph Service (AGS).
image_to_embedding: Extracts CLIP embeddings from the images that are found on the storage backend.
image_to_vision_metadata: Extracts VLM-generated metadata from the images that are found on the storage backend.
rendering_to_embedding: Renders the asset and extracts CLIP embeddings from the generated preview images.
rendering_to_vision_metadata: Renders the asset and extracts VLM-generated metadata using the generated preview images.
thumbnail_generation: Renders the asset uploads one of the rendered images to the storage backend to serve as a thumbnail for this asset.
thumbnail_to_embedding: For any asset stored on the storage backend this plugin relies on the thumbnail of this asset to extract CLIP embeddings.
thumbnail_to_vision_metadata: For any asset stored on the storage backend this plugin relies on the thumbnail of this asset to extract VLM-generated metadata.
NOTE: If some of the plugins are not enabled for the USD Search instance, selecting them for the plugins parameter setting will have not effect. Please reach out to your USD Search service administrator if you would like to enable certain plugin functionality. The list of plugins that are enabled for this USD Search instance could be retrieved using /info/plugins endpoint.
| url required | string (Url) Asset URL which should be submitted for priority processing |
Array of Plugins (strings) or Plugins (null) (Plugins) List of plugins for which indexing needs to be re-done | |
| refresh_plugins | boolean (Refresh Plugins) Default: true re-enqueue plugin processing |
| refresh_metadata | boolean (Refresh Metadata) Default: false refresh asset metadata |
| refresh_tags | boolean (Refresh Tags) Default: false refresh asset tags |
JobItemType (string) or Priority (null) (Priority) Default: "priority" processing job type |
nullDisplay some information about the storage backend(s), to which the USD Search API instance is connected to.
A single Storage API deployment can serve several buckets / namespace roots. These are discovered via
ListTopLevelAddresses and reported as one entry per root; backends that expose a single root (or a
Storage API server without discovery support) report their configured base_uri.
| check_availability | boolean (Check Availability) Default: false Check if storage backend is available |
{- "backends": {
- "property1": {
- "storage_backend_type": "nucleus",
- "base_url": "string",
- "s3_endpoint_url": "string",
- "available": true
}, - "property2": {
- "storage_backend_type": "nucleus",
- "base_url": "string",
- "s3_endpoint_url": "string",
- "available": true
}
}
}Get the list of plugins that are supported by the USD Search instance
| only_active | boolean (Only Active) Default: true show only active plugins |
[- {
- "name": "string",
- "description": "string",
- "data_types": [
- "string"
], - "requires_rendering": true,
- "active": true,
- "config": { }
}
]Fetch image binary data for a specific asset. This is the primary way to get thumbnails for visual inspection of search results. After running a search query, call this endpoint for each result's source.url (or source.base_key) to get its thumbnail. Use img_offset=0,1,2... to get multiple views/angles of the same asset when available.
Asset Url (string) or Asset Url (null) (Asset Url) The complete URL of the asset to fetch image data for. Must be a valid asset URL that the user has access to. | |
Image Key (string) or Image Key (null) (Image Key) Direct image key/ID to fetch from OpenSearch. Use this for direct image retrieval when you already know the image identifier. | |
| img_offset | integer (Img Offset) >= 0 Default: 0 Zero-based index specifying which image to fetch from the asset's siglip2-embeddings. Only valid when using asset_url. |
Binary JPEG image data
Fetch a USD asset together with all of its transitive dependency files (sublayers, referenced USDs, textures) and return them as a single ZIP. Files are laid out relative to a shared root directory so the scene's relative references resolve after extraction. A manifest.json describing the bundle (root url, included files, any per-file errors) is added at the archive root. Works for every storage backend (S3, Nucleus, local-fs). If the asset has no recorded dependencies (or the asset graph is unavailable) a single-file archive is returned.
| asset_url required | string (Asset Url) The complete storage URL of the asset to download (e.g. s3://bucket/path/scene.usd). |
| manifest_only | boolean (Manifest Only) Default: false If true, do not build the ZIP — return JSON describing the bundle (root url, file count, total size in bytes, per-file sizes, errors). Lets a UI show the bundle size before the user commits to the download. |
{- "detail": "Access denied"
}