Filters and sorting
Filters narrow a search or a browse to the props you can actually use: one pack, meshes only, under 5,000 triangles, approved for use. They work with or without a search query, and every filter combines with every other.
In the desktop app and web library, filters live in the filter panel beside the results. In the REST API they are query parameters on GET /api/v1/entries; for AI agents they are arguments of search_props, find_similar_props, search_props_by_image and browse_facets. The names differ slightly between the two, so both are listed.
Filters
Section titled “Filters”| What it filters | REST parameter | MCP argument | Values |
|---|---|---|---|
| Pack | pack (repeatable) |
pack_ids |
Pack ids. Matches any of the listed packs. |
| Category | category (repeatable) |
categories |
Exact category names. Matches any. |
| Uncategorized props | uncategorized |
uncategorized |
true includes props with no category. Together with a category filter, matches either. |
| Excluded categories | exclude_category (repeatable) |
exclude_categories |
Leaves these categories out. Uncategorized props stay in. |
| Exclude uncategorized | exclude_uncategorized |
(REST only) | true leaves out props with no category. |
| Tag | tag (repeatable) |
tags |
Tag names. Matches props with any of the listed tags. |
| Type | type (repeatable) |
types |
Entry types, such as mesh, skeletal_mesh, texture, material, blueprint, vfx, audio, animation, sequence. Matches any. |
| Review state | review |
review |
draft, in_review, changes_requested or approved, for the prop’s current version. |
| 3D preview | preview |
preview |
ready (an interactive preview exists), none (not generated yet), unavailable (this prop cannot have one). |
| Collision | has_collision |
has_collision |
true or false. |
| Nanite | nanite |
nanite |
true or false. |
| Variants | variant |
variant |
true for variants only, false for non-variants only. |
| Variant group | variant_group |
variant_group_id |
One variant group’s id. |
| Triangles | tri_min, tri_max |
tri_min, tri_max |
Whole numbers, inclusive. |
| Vertices | vert_min, vert_max |
vert_min, vert_max |
Whole numbers, inclusive. |
| Materials | material_min, material_max |
material_min, material_max |
Material slot count, inclusive. |
| LODs | lod_min, lod_max |
lod_min, lod_max |
LOD count, inclusive. |
| Size | bounds_min, bounds_max |
bounds_min, bounds_max |
The prop’s largest bounding-box dimension, inclusive. |
| Deprecated props | include_deprecated |
include_deprecated |
Deprecated props are hidden unless this is true. |
A few rules worth knowing:
- Repeating a parameter means “any of”:
?type=mesh&type=skeletal_meshreturns both kinds. - Different filters combine with “and”:
?type=mesh&tri_max=5000returns meshes under 5,000 triangles. - Range filters leave out props that have no value for that measurement. A
tri_maxfilter drops textures and audio, for example, because they have no triangle count. - Pack filters take ids, not names. Look up ids with the facets call below.
Discover values with facets
Section titled “Discover values with facets”GET /api/v1/entries/facets (the browse_facets tool for agents) returns what exists under the current filters and search: each pack with its id, each category, tag, type, variant split, preview state and review state with a count, and the smallest and largest triangle, vertex, material, LOD and size values.
Each dimension ignores its own filter when counting. With type=mesh applied, the types list still shows how many textures and materials there are, so you can see the alternatives. This is also how the filter panel in the apps shows counts.
Sorting
Section titled “Sorting”| Sort | REST sort value |
App label |
|---|---|---|
| Best match | relevance |
Relevance |
| Name | name |
Name |
| When the prop was added | date_indexed |
Date indexed |
| When the prop last changed | date_updated |
Date updated |
| File size | blob_size |
Size |
| Triangle count | tri_count |
Triangles |
- With a search query, results sort by relevance unless you pick another order. Relevance needs a query, so it is unavailable when you are only browsing.
orderisascordesc. It is ignored for relevance, which is always best first.- In the REST API, a browse without
qand withoutsortis sorted by name, ascending. Thesearch_propsagent tool instead shows the newest props first when called without a query or sort.
Paging
Section titled “Paging”Results come in pages: up to 200 per request (limit), 50 by default in the REST API and 25 in the agent tools. Each page returns a next_cursor when there is more; pass it back as cursor with the same filters and sort to get the next page. A cursor only works with the sort it came from.
