---
title: "Elasticsearch"
type: docs
weight: 1
description: >
  Elasticsearch is a distributed, free and open search and analytics engine 
  for all types of data, including textual, numerical, geospatial, structured, 
  and unstructured.
---

# Elasticsearch Source

[Elasticsearch][elasticsearch-docs] is a distributed, free and open search and
analytics engine for all types of data, including textual, numerical,
geospatial, structured, and unstructured.

If you are new to Elasticsearch, you can learn how to
[set up a cluster and start indexing data][elasticsearch-quickstart].

Elasticsearch uses [ES|QL][elasticsearch-esql] for querying data. ES|QL
is a powerful query language that allows you to search and aggregate data in
Elasticsearch.

See the [official
documentation](https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html)
for more information.

[elasticsearch-docs]:
    https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
[elasticsearch-quickstart]:
    https://www.elastic.co/guide/en/elasticsearch/reference/current/getting-started.html
[elasticsearch-esql]:
    https://www.elastic.co/guide/en/elasticsearch/reference/current/esql.html

## Available Tools

- [`elasticsearch-esql`](../tools/elasticsearch/elasticsearch-esql.md)
  Execute ES|QL queries.

## Requirements

### API Key

Toolbox uses an [API key][api-key] to authorize and authenticate when
interacting with [Elasticsearch][elasticsearch-docs].

In addition to [setting the API key for your server][set-api-key], you need to
ensure the API key has the correct permissions for the queries you intend to
run. See [API key management][api-key-management] for more information on
applying permissions to an API key.

[api-key]:
    https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-create-api-key.html
[set-api-key]:
    https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-create-api-key.html
[api-key-management]:
    https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-api-key.html

## Example

```yaml
kind: sources
name: my-elasticsearch-source
type: "elasticsearch"
addresses:
  - "http://localhost:9200"
apikey: "my-api-key"
```

## Reference

| **field** | **type** | **required** | **description**                            |
|-----------|:--------:|:------------:|--------------------------------------------|
| type      |  string  |     true     | Must be "elasticsearch".                   |
| addresses | []string |     true     | List of Elasticsearch hosts to connect to. |
| apikey    |  string  |     true     | The API key to use for authentication.     |
