# Get SQL search results **GET /_sql** **All methods and paths for this operation:**
POST /_sql
GET /_sql
Run an SQL request. ## Required authorization * Index privileges: `read` ## Servers - http://api.example.com: http://api.example.com () ## Authentication methods - Api key auth ## Parameters #### Query parameters - **format** (string) The format for the response. You can also specify a format using the `Accept` HTTP header. If you specify both this parameter and the `Accept` HTTP header, this parameter takes precedence. ## Body parameters Content-type: application/json - **allow_partial_search_results** (boolean) If `true`, the response has partial results when there are shard request timeouts or shard failures. If `false`, the API returns an error with no partial results. - **catalog** (string) The default catalog (cluster) for queries. If unspecified, the queries execute on the data in the local cluster only. - **columnar** (boolean) If `true`, the results are in a columnar fashion: one row represents all the values of a certain column from the current page of results. The API supports this parameter only for CBOR, JSON, SMILE, and YAML responses. - **cursor** (string) The cursor used to retrieve a set of paginated results. If you specify a cursor, the API only uses the `columnar` and `time_zone` request body parameters. It ignores other request body parameters. - **fetch_size** (number) The maximum number of rows (or entries) to return in one response. - **field_multi_value_leniency** (boolean) If `false`, the API returns an exception when encountering multiple values for a field. If `true`, the API is lenient and returns the first value from the array with no guarantee of consistent results. - **filter** (object) The Elasticsearch query DSL for additional filtering. - **index_using_frozen** (boolean) If `true`, the search can run on frozen indices. - **keep_alive** (string) The retention period for an async or saved synchronous search. - **keep_on_completion** (boolean) If `true`, Elasticsearch stores synchronous searches if you also specify the `wait_for_completion_timeout` parameter. If `false`, Elasticsearch only stores async searches that don't finish before the `wait_for_completion_timeout`. - **page_timeout** (string) The minimum retention period for the scroll cursor. After this time period, a pagination request might fail because the scroll cursor is no longer available. Subsequent scroll requests prolong the lifetime of the scroll cursor by the duration of `page_timeout` in the scroll request. - **params** (array[object]) The values for parameters in the query. - **query** (string) The SQL query to run. - **request_timeout** (string) The timeout before the request fails. - **runtime_mappings** (object) One or more runtime fields for the search request. These fields take precedence over mapped fields with the same name. - **time_zone** (string) The ISO-8601 time zone ID for the search. - **wait_for_completion_timeout** (string) The period to wait for complete results. It defaults to no timeout, meaning the request waits for complete search results. If the search doesn't finish within this period, the search becomes async. To save a synchronous search, you must specify this parameter and the `keep_on_completion` parameter. ## Responses ### 200: #### Body Parameters: application/json (object) - **columns** (array[object]) Column headings for the search results. Each object is a column. - **cursor** (string) The cursor for the next set of paginated results. For CSV, TSV, and TXT responses, this value is returned in the `Cursor` HTTP header. - **id** (string) The identifier for the search. This value is returned only for async and saved synchronous searches. For CSV, TSV, and TXT responses, this value is returned in the `Async-ID` HTTP header. - **is_running** (boolean) If `true`, the search is still running. If `false`, the search has finished. This value is returned only for async and saved synchronous searches. For CSV, TSV, and TXT responses, this value is returned in the `Async-partial` HTTP header. - **is_partial** (boolean) If `true`, the response does not contain complete search results. If `is_partial` is `true` and `is_running` is `true`, the search is still running. If `is_partial` is `true` but `is_running` is `false`, the results are partial due to a failure or timeout. This value is returned only for async and saved synchronous searches. For CSV, TSV, and TXT responses, this value is returned in the `Async-partial` HTTP header. - **rows** (array[array]) The values for the search results. [Powered by Bump.sh](https://bump.sh)