> ## Documentation Index
> Fetch the complete documentation index at: https://www.meilisearch.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Python quick start

> Get started with Meilisearch using the Python SDK in 5 minutes.

This guide walks you through setting up Meilisearch with Python.

## Prerequisites

* Python 3.8 or higher
* A Meilisearch instance ([Cloud](https://cloud.meilisearch.com) or [self-hosted](https://www.meilisearch.com/docs/resources/self_hosting/getting_started/quick_start.md))

## 1. Install the SDK

```bash theme={null}
pip install meilisearch
```

## 2. Connect to Meilisearch

```python theme={null}
import meilisearch
import os

client = meilisearch.Client(
    os.environ.get('MEILISEARCH_URL'),
    os.environ.get('MEILISEARCH_KEY')
)
```

> [!NOTE]
>
> **Set your environment variables:**
>
> ```bash theme={null}
> export MEILISEARCH_URL="https://your-instance.meilisearch.io"  # or http://localhost:7700
> export MEILISEARCH_KEY="your_api_key"
> ```
>
> [Get a free Cloud instance →](https://cloud.meilisearch.com)

## 3. Add documents

```python theme={null}
movies = [
    {'id': 1, 'title': 'The Matrix', 'genres': ['Action', 'Sci-Fi'], 'year': 1999},
    {'id': 2, 'title': 'Inception', 'genres': ['Action', 'Thriller'], 'year': 2010},
    {'id': 3, 'title': 'Interstellar', 'genres': ['Drama', 'Sci-Fi'], 'year': 2014}
]

# Add documents to the 'movies' index
task = client.index('movies').add_documents(movies)

# Wait for indexing to complete
client.wait_for_task(task.task_uid)
```

## 4. Search

```python theme={null}
results = client.index('movies').search('matrix')

print(results['hits'])
# [{'id': 1, 'title': 'The Matrix', 'genres': ['Action', 'Sci-Fi'], 'year': 1999}]
```

## 5. Search with filters

First, configure filterable attributes:

```python theme={null}
client.index('movies').update_filterable_attributes(['genres', 'year'])
```

Then search with filters:

```python theme={null}
results = client.index('movies').search('', {
    'filter': 'genres = "Sci-Fi" AND year > 2000'
})
```

## Full example

```python theme={null}
import meilisearch
import os

client = meilisearch.Client(
    os.environ.get('MEILISEARCH_URL'),
    os.environ.get('MEILISEARCH_KEY')
)

# Add documents
movies = [
    {'id': 1, 'title': 'The Matrix', 'genres': ['Action', 'Sci-Fi'], 'year': 1999},
    {'id': 2, 'title': 'Inception', 'genres': ['Action', 'Thriller'], 'year': 2010},
    {'id': 3, 'title': 'Interstellar', 'genres': ['Drama', 'Sci-Fi'], 'year': 2014}
]

task = client.index('movies').add_documents(movies)
client.wait_for_task(task.task_uid)

# Search
results = client.index('movies').search('inter')
print(results['hits'])
```

## Next steps

> [card] [Full-text search](https://www.meilisearch.com/docs/capabilities/full_text_search/relevancy/relevancy.md)
>
> Configure ranking and relevancy

> [card] [Filtering](https://www.meilisearch.com/docs/capabilities/filtering_sorting_faceting/getting_started.md)
>
> Add filters and facets

> [card] [AI-powered search](https://www.meilisearch.com/docs/capabilities/hybrid_search/getting_started.md)
>
> Add semantic search

> [card] [API reference](https://www.meilisearch.com/docs/reference/api/search/search-with-post.md)
>
> Explore all search parameters

## Resources

* [meilisearch-python on GitHub](https://github.com/meilisearch/meilisearch-python)
* [SDK documentation](https://github.com/meilisearch/meilisearch-python#readme)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.