# Search

**Kind**: module | **Library**: @interopio/desktop | **Access**: `io.search`

**Source**: https://docs.interop.io/desktop/reference/javascript/search/index.html

The Search API offers two distinct functionalities: you can use it to create both search providers and search clients.
Search providers are apps that respond to search queries, whereas search clients are apps that initiate searches.
For instance, a search provider may return a list of instruments as a response to a search query, and may also support
one or more actions - like showing a chart for the selected instrument. Actions may be executed when the user clicks
on a result in the UI of a search client app. You may present multiple actions as options to the user via the search
client UI, so that they may choose how to handle the search result depending on their current needs.
The Search API also enables you to define search types, set debounce time for search queries,
set limits for search results and more.

The Search API is accessible via the `io.search` object.

## Interfaces

- [API](https://docs.interop.io/desktop/reference/javascript/search/api/index.md): Search API.
- [MainAction](https://docs.interop.io/desktop/reference/javascript/search/mainaction/index.md): Describes an already registered Interop method to be assigned as a main action to a search result.
- [Provider](https://docs.interop.io/desktop/reference/javascript/search/provider/index.md): Describes a registered search provider.
- [ProviderData](https://docs.interop.io/desktop/reference/javascript/search/providerdata/index.md): Search provider details.
- [ProviderLimits](https://docs.interop.io/desktop/reference/javascript/search/providerlimits/index.md): Describes the maximum total results and/or the maximum results per search type to return.
- [ProviderQuery](https://docs.interop.io/desktop/reference/javascript/search/providerquery/index.md): Describes the search query received by the search provider and provides methods for responding to it.
- [ProviderRegistrationConfig](https://docs.interop.io/desktop/reference/javascript/search/providerregistrationconfig/index.md): Settings for registering a search provider.
- [Query](https://docs.interop.io/desktop/reference/javascript/search/query/index.md): Describes a created search query.
- [QueryConfig](https://docs.interop.io/desktop/reference/javascript/search/queryconfig/index.md): Settings for creating a search query.
- [QueryError](https://docs.interop.io/desktop/reference/javascript/search/queryerror/index.md): Describes a search operation error received by search clients.
- [QueryResult](https://docs.interop.io/desktop/reference/javascript/search/queryresult/index.md): Describes an individual search result received by search clients.
- [QueryResultBatch](https://docs.interop.io/desktop/reference/javascript/search/queryresultbatch/index.md): Describes a batch of search results received by search clients.
- [SearchType](https://docs.interop.io/desktop/reference/javascript/search/searchtype/index.md): Describes an entity with which a search provided works.
- [SecondaryAction](https://docs.interop.io/desktop/reference/javascript/search/secondaryaction/index.md): Describes an already registered Interop method to be assigned as a secondary action to a search result.

## Type Aliases

- [UnsubscribeFunction](https://docs.interop.io/desktop/reference/javascript/search/unsubscribefunction/index.md): Function that can be used to stop receiving notifications about events.
