# Run multiple templated searches
**POST /{index}/_msearch/template**
**All methods and paths for this operation:**
GET
/_msearch/template
POST
/_msearch/template
GET
/{index}/_msearch/template
POST
/{index}/_msearch/template
Run multiple templated searches with a single request.
If you are providing a text file or text input to `curl`, use the `--data-binary` flag instead of `-d` to preserve newlines.
For example:
```
$ cat requests
{ "index": "my-index" }
{ "id": "my-search-template", "params": { "query_string": "hello world", "from": 0, "size": 10 }}
{ "index": "my-other-index" }
{ "id": "my-other-search-template", "params": { "query_type": "match_all" }}
$ curl -H "Content-Type: application/x-ndjson" -XGET localhost:9200/_msearch/template --data-binary "@requests"; echo
```
## Required authorization
* Index privileges: `read`
[More about searching templates](https://www.elastic.co/docs/solutions/search/search-templates)
## Servers
- http://api.example.com: http://api.example.com ()
## Authentication methods
- Api key auth
- Basic auth
- Bearer auth
## Parameters
### Path parameters
- **index** (string | array[string])
A comma-separated list of data streams, indices, and aliases to search.
It supports wildcards (`*`).
To search all data streams and indices, omit this parameter or use `*`.
### Query parameters
- **ccs_minimize_roundtrips** (boolean)
If `true`, network round-trips are minimized for cross-cluster search requests.
- **max_concurrent_searches** (number)
The maximum number of concurrent searches the API can run.
- **search_type** (string)
The type of the search operation.
Supported values include:
- `query_then_fetch`: Documents are scored using local term and document frequencies for the shard. This is usually faster but less accurate.
- `dfs_query_then_fetch`: Documents are scored using global term and document frequencies across all shards. This is usually slower but more accurate.
- **rest_total_hits_as_int** (boolean)
If `true`, the response returns `hits.total` as an integer.
If `false`, it returns `hits.total` as an object.
- **typed_keys** (boolean)
If `true`, the response prefixes aggregation and suggester names with their respective types.
### Body: application/json (array[object])
## Responses
### 200
#### Body: application/json (object)
- **took** (number)
- **responses** (array[object])
[Powered by Bump.sh](https://bump.sh)