Skip to main content
Search lets you quickly find resources across your organization without querying each endpoint individually. A single query returns matching projects, studies, simulations, models, parameterized models, optimizations, optimization templates, experiment templates, pipelines, cell specifications, cell instances, cell measurements, materials, cyclers, and channels. Search is available both through the REST API and from the global search bar in Ionworks Studio. Open the search bar from the top of any page in Studio, or call the /search endpoint directly from your own scripts and tools. Search matches against names, descriptions, and other identifying fields for each resource type. Results are scoped to your current organization and respect your project-level permissions — you only see resources you have access to.

Using search via the API

Search is available at the /search endpoint. See the API Reference for the full request and response schema. A typical request specifies the query string and returns matches grouped by resource type:
Results are filtered to the resources your API key has access to.

Query parameters

Response shape

The response includes the matching results, the original query, and the pagination fields total, limit, and offset so clients can render page navigation:
total reflects all fetched matches across queried entity types, bounded by per_type × the number of entity types searched. It is therefore a fetch-level ceiling rather than the true number of matching records in the database — with the default per_type=5 and 14 entity types it can never exceed 70, even when thousands of records match. Don’t rely on total / limit to compute an exact page count for large result sets.

Pagination and filtering example

Fetch the second page of cell and material matches, returning up to 10 per type. The project_id here narrows only the project-filtered types (studies, pipelines, optimizations); cell and material results are returned regardless:

Result fields

Each result includes an entity_type, id, name, and project_id (when the resource lives inside a project). Results for nested resources also include a parent_id that points to the containing resource — for example, the parent_id of a cell_instance result is an ID pointing to the cell specification it belongs to, and the parent_id of a channel result is an ID pointing to its cycler. You can use parent_id to navigate or query the parent directly.

Finding cyclers and channels

To restrict a query to hardware only, pass entity_types=cycler and entity_types=channel. Both are project-scoped, so project_id narrows the results to a single project when provided:
Each channel result carries the cycler_id of its parent cycler in parent_id, which you can use to look up the cycler directly.
Search is useful when you remember a partial name (for example, a cell chemistry, a customer name, or a protocol keyword) but don’t know which project or study contains it.
Search uses server-side full-text indexing, so queries return fast even as your organization accumulates many resources. Indexes are maintained automatically — there is nothing to configure.