# CosmosDBStore

> **Class** in `langchain_azure_cosmosdb`

📖 [View in docs](https://reference.langchain.com/python/langchain-azure-cosmosdb/_langgraph_store/CosmosDBStore)

Azure Cosmos DB-backed store with optional vector search.

Provides LangGraph long-term memory persistence using Azure Cosmos DB.

## Signature

```python
CosmosDBStore(
    self,
    conn: CosmosClient,
    *,
    database_name: str = 'langgraph',
    container_name: str = 'store',
    deserializer: Callable[[bytes | orjson.Fragment], dict[str, Any]] | None = None,
    index: CosmosDBIndexConfig | None = None,
    ttl: TTLConfig | None = None,
)
```

## Description

**Example:**

Basic setup and usage::

    from langchain_azure_cosmosdb import CosmosDBStore

    store = CosmosDBStore.from_conn_string(
        conn_string="AccountEndpoint=https://...;AccountKey=...",
        database_name="langgraph",
        container_name="store",
    )
    store.setup()

    store.put(("users", "123"), "prefs", {"theme": "dark"})
    item = store.get(("users", "123"), "prefs")

Vector search using LangChain embeddings::

    from langchain.embeddings import init_embeddings
    from langchain_azure_cosmosdb import CosmosDBStore

    store = CosmosDBStore.from_conn_string(
        conn_string="...",
        database_name="langgraph",
        container_name="store",
        index={
            "dims": 1536,
            "embed": init_embeddings("openai:text-embedding-3-small"),
            "fields": ["text"],
        },
    )
    store.setup()

    store.put(("docs",), "doc1", {"text": "Python tutorial"})
    results = store.search(("docs",), query="programming guides", limit=2)

**Note:**

Semantic search is disabled by default. Provide an ``index``
configuration when creating the store to enable it.

**Warning:**

Make sure to call ``setup()`` before first use to create the
database and container.

## Extends

- `BaseStore`
- `BaseCosmosDBStore[CosmosClient]`

## Constructors

```python
__init__(
    self,
    conn: CosmosClient,
    *,
    database_name: str = 'langgraph',
    container_name: str = 'store',
    deserializer: Callable[[bytes | orjson.Fragment], dict[str, Any]] | None = None,
    index: CosmosDBIndexConfig | None = None,
    ttl: TTLConfig | None = None,
) -> None
```

| Name | Type |
|------|------|
| `conn` | `CosmosClient` |
| `database_name` | `str` |
| `container_name` | `str` |
| `deserializer` | `Callable[[bytes \| orjson.Fragment], dict[str, Any]] \| None` |
| `index` | `CosmosDBIndexConfig \| None` |
| `ttl` | `TTLConfig \| None` |


## Properties

- `supports_ttl`
- `conn`
- `index_config`
- `embeddings`
- `ttl_config`
- `container`

## Methods

- [`from_conn_string()`](https://reference.langchain.com/python/langchain-azure-cosmosdb/_langgraph_store/CosmosDBStore/from_conn_string)
- [`from_endpoint()`](https://reference.langchain.com/python/langchain-azure-cosmosdb/_langgraph_store/CosmosDBStore/from_endpoint)
- [`setup()`](https://reference.langchain.com/python/langchain-azure-cosmosdb/_langgraph_store/CosmosDBStore/setup)
- [`batch()`](https://reference.langchain.com/python/langchain-azure-cosmosdb/_langgraph_store/CosmosDBStore/batch)
- [`abatch()`](https://reference.langchain.com/python/langchain-azure-cosmosdb/_langgraph_store/CosmosDBStore/abatch)
- [`sweep_ttl()`](https://reference.langchain.com/python/langchain-azure-cosmosdb/_langgraph_store/CosmosDBStore/sweep_ttl)
- [`start_ttl_sweeper()`](https://reference.langchain.com/python/langchain-azure-cosmosdb/_langgraph_store/CosmosDBStore/start_ttl_sweeper)
- [`stop_ttl_sweeper()`](https://reference.langchain.com/python/langchain-azure-cosmosdb/_langgraph_store/CosmosDBStore/stop_ttl_sweeper)

---

[View source on GitHub](https://github.com/langchain-ai/langchain-azure/blob/e62c2a55aaa0942fdac739b4066011953b80018e/libs/azure-cosmosdb/src/langchain_azure_cosmosdb/_langgraph_store.py#L342)