> Explore Qdrant's agent skills catalog at https://skills.qdrant.tech/
> Search the documentation at https://skills.qdrant.tech/search?query=your+query+here
> Use this file to discover all available pages: https://qdrant.tech/llms.txt


# Qdrant Cloud Inference

Clusters on [Qdrant Cloud](https://qdrant.tech/documentation/cloud/index.md) can generate embeddings on the server. Instead of a vector, you send the text or image together with a model name, and Qdrant embeds it before storing or searching. You don't run a separate embedding service. Two kinds of models are available:

- **Models hosted by Qdrant Cloud**, listed in the Models tables. They need no extra API key, and the free ones also work on free-tier clusters.
- **Models from external providers**: OpenAI, Cohere, Jina AI, and any embedding model on OpenRouter, billed by the provider through your own API key. See [External Providers](#external-providers).

## Models

Dense models:

| Model | Modality | Dimensions | Cost |
|---|---|---|---|
| `sentence-transformers/all-minilm-l6-v2` | Text | 384 | Free |
| `intfloat/multilingual-e5-small` | Text | 384 | Free |
| `mixedbread-ai/mxbai-embed-large-v1` | Text | 1024 | Paid |
| `qdrant/clip-vit-b-32-text` | Text | 512 | Paid |
| `qdrant/clip-vit-b-32-vision` | Image | 512 | Paid |

`qdrant/clip-vit-b-32-text` and `qdrant/clip-vit-b-32-vision` share a vector space, so you can embed images with the vision model and search them with text.

Sparse models:

| Model | Modality | Cost |
|---|---|---|
| `qdrant/bm25` | Text | Free |
| `prithivida/splade_pp_en_v1` | Text | Paid |

Multivector models:

| Model | Modality | Dimensions | Cost |
|---|---|---|---|
| `answerdotai/answerai-colbert-small-v1` | Text | 96 | Free |

For pricing, context windows, and usage, see the cluster's Inference tab in the Qdrant Cloud Console and [Billing for Qdrant-Hosted Models](https://qdrant.tech/documentation/cloud/inference/index.md#billing-for-qdrant-hosted-models).

## Setup

If inference isn't enabled on your cluster yet, see [Enabling/Disabling Inference](https://qdrant.tech/documentation/cloud/inference/index.md#enablingdisabling-inference).

Create the client with your cluster URL and API key. In Python, set `cloud_inference=True`; without it, the Python client embeds locally with [FastEmbed](https://qdrant.tech/documentation/fastembed/index.md). [Create a collection](https://qdrant.tech/documentation/manage-data/collections/index.md#create-a-collection) with the vector size of the model you pick, for example 384 for `sentence-transformers/all-minilm-l6-v2`. If the size doesn't match the model's dimensions, the upsert fails.

## Embed Documents and Queries

Where a vector would go, pass a `Document` with the text and the model name, both when you upsert points and when you query. Replace `<the-model-to-use>` with a model from the Models tables:

```http
# Insert new points with cloud-side inference
PUT /collections/<your-collection>/points?wait=true
{
  "points": [
    {
      "id": 1,
      "payload": { "topic": "cooking", "type": "dessert" },
      "vector": {
        "text": "Recipe for baking chocolate chip cookies",
        "model": "<the-model-to-use>"
      }
    }
  ]
}

# Search in the collection using cloud-side inference
POST /collections/<your-collection>/points/query
{
  "query": {
    "text": "How to bake cookies?",
    "model": "<the-model-to-use>"
  }
}
```

> This snippet is also available in Bash, Python, Typescript, Rust, Java, Csharp, and Go. See the [full snippet](https://qdrant.tech/documentation/snippets/cloud-inference/simple/index.md).


For models that expect query and document prefixes, Qdrant adds them for you. See [Automatic Query and Passage Prefixes](https://qdrant.tech/documentation/inference/cloud-inference/index.md#automatic-query-and-passage-prefixes).

## Embed Images

Pass an `Image` with an image URL or base64 data and the vision model. This example stores an image and searches it with text:

```http
# Insert new points with cloud-side inference
PUT /collections/<your-collection>/points?wait=true
{
  "points": [
    {
      "id": 1,
      "vector": {
        "image": "https://qdrant.tech/example.png",
        "model": "qdrant/clip-vit-b-32-vision"
      },
      "payload": {
        "title": "Example Image"
      }
    }
  ]
}

# Search in the collection using cloud-side inference
POST /collections/<your-collection>/points/query
{
  "query": {
    "text": "Mission to Mars",
    "model": "qdrant/clip-vit-b-32-text"
  }
}
```

> This snippet is also available in Bash, Python, Typescript, Rust, Java, Csharp, and Go. See the [full snippet](https://qdrant.tech/documentation/snippets/cloud-inference/image/index.md).


## Sparse and Multivector Models

Sparse and multivector models work the same way, with a `Document` in a sparse or multivector field of the collection. The `qdrant/bm25` model runs inside the cluster itself. See [BM25](https://qdrant.tech/documentation/inference/inference-bm25/index.md), and combine sparse and dense results with [Hybrid Queries](https://qdrant.tech/documentation/search/hybrid-queries/index.md).

## External Providers

Prefix the model name with the provider, and pass your provider API key in a request header or in the `options` object. Qdrant does not store the key.

| Provider | Model Prefix | Key Header | Example |
|---|---|---|---|
| OpenAI | `openai/` | `openai-api-key` | [OpenAI](https://qdrant.tech/documentation/embeddings/openai/index.md#qdrant-cloud-inference) |
| Cohere | `cohere/` | `cohere-api-key` | [Cohere](https://qdrant.tech/documentation/embeddings/cohere/index.md#qdrant-cloud-inference) |
| Jina AI | `jinaai/` | `jina-api-key` | [Jina AI](https://qdrant.tech/documentation/embeddings/jina-embeddings/index.md#qdrant-cloud-inference) |
| OpenRouter | `openrouter/` | `openrouter-api-key` | [Mistral](https://qdrant.tech/documentation/embeddings/mistral/index.md#qdrant-cloud-inference) |

See [External Providers](https://qdrant.tech/documentation/inference/external-inference-providers/index.md) for every option.

## Store and Search the Vectors

1. [Create a Collection](https://qdrant.tech/documentation/manage-data/collections/index.md#create-a-collection): Match the model's dimensions and distance metric.
2. [Upload Vectors](https://qdrant.tech/documentation/manage-data/points/index.md#upload-points): Batch points with payloads for filtering.
3. [Search](https://qdrant.tech/documentation/search/search/index.md#query-api): Find matching points with the Query API.



## Next Steps

- [Inference in Qdrant Managed Cloud](https://qdrant.tech/documentation/cloud/inference/index.md): enabling inference on a cluster, inference regions, and billing.
- [Inference API](https://qdrant.tech/documentation/inference/inference-api/index.md): the `Document`, `Image`, and `Object` inference objects.
- [Matryoshka Models](https://qdrant.tech/documentation/inference/matryoshka-models/index.md): store several vector sizes from one inference request.
- [Choose an inference approach](https://qdrant.tech/documentation/inference/index.md): compare Cloud Inference with embedding in your application.
- [Filter search results](https://qdrant.tech/documentation/search/filtering/index.md) by payload fields.
- [Combine dense and sparse vectors](https://qdrant.tech/documentation/search/hybrid-queries/index.md) for hybrid search.
- [Reduce memory use with quantization](https://qdrant.tech/documentation/manage-data/quantization/index.md).
