> ## Documentation Index
> Fetch the complete documentation index at: https://portkey-docs-add-third-party-integration-issues-fixes.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Qdrant

[Qdrant](https://qdrant.tech/) is an open-source vector similarity search engine built for production-ready vector search applications.
It provides a convenient API to store, search, and manage vectors with additional payload data.

Portkey provides a proxy to Qdrant, allowing you to use virtual keys and observability features.

## Portkey SDK Integration with Qdrant

Portkey provides a consistent API to interact with models from various providers. To integrate Qdrant with Portkey:

### 1. Install the Portkey SDK

Add the Portkey SDK to your application to interact with Qdrant through Portkey's gateway.

<Tabs>
  <Tab title="NodeJS">
    ```sh theme={null}
    npm install --save portkey-ai
    ```
  </Tab>

  <Tab title="Python">
    ```sh theme={null}
    pip install portkey-ai
    ```
  </Tab>
</Tabs>

### 2. Initialize Portkey with a Virtual Key

To use Qdrant with Portkey, get your API key from [Qdrant App](https://cloud.qdrant.io/), then add it to Portkey to create your [Qdrant virtual key](/product/ai-gateway/virtual-keys#using-virtual-keys).

You will also need your Portkey API Key from [Portkey's Dashboard](https://app.portkey.ai).

<Tabs>
  <Tab title="NodeJS SDK">
    ```js theme={null}
    import Portkey from 'portkey-ai'

    const portkey = new Portkey({
        apiKey: "PORTKEY_API_KEY", // defaults to process.env["PORTKEY_API_KEY"]
        virtualKey: "VIRTUAL_KEY" // Your Qdrant Virtual Key
    })
    ```
  </Tab>

  <Tab title="Python SDK">
    ```python theme={null}
    from portkey_ai import Portkey

    portkey = Portkey(
        api_key="PORTKEY_API_KEY",  # Replace with your Portkey API key
        virtual_key="VIRTUAL_KEY"   # Replace with your virtual key for Qdrant
    )
    ```
  </Tab>

  <Tab title="OpenAI Python SDK">
    ```python theme={null}
    from openai import OpenAI

    from portkey_ai import PORTKEY_GATEWAY_URL, createHeaders

    client = OpenAI(
        api_key="QDRANT_API_KEY",
        base_url=PORTKEY_GATEWAY_URL,
        default_headers=createHeaders(
            api_key="PORTKEY_API_KEY",
            provider="qdrant",
            custom_host="QDRANT_HOST" # Replace with your Qdrant host
        )
    )
    ```
  </Tab>

  <Tab title="OpenAI Node SDK">
    ```js theme={null}
    import OpenAI from "openai";

    import { PORTKEY_GATEWAY_URL, createHeaders } from "portkey-ai";

    const client = new OpenAI({
      apiKey: "QDRANT_API_KEY",
      baseURL: PORTKEY_GATEWAY_URL,
      defaultHeaders: createHeaders({
        provider: "qdrant",
        apiKey: "PORTKEY_API_KEY",
        customHost: "QDRANT_HOST" // Replace with your Qdrant host
      }),
    });
    ```
  </Tab>
</Tabs>

### 3. Use the Portkey SDK to interact with Qdrant

<Tabs>
  <Tab title="Python">
    ```python theme={null}
    from portkey_ai import Portkey

    portkey = Portkey(
        api_key="PORTKEY_API_KEY",  # Replace with your Portkey API key
        virtual_key="QDRANT_VIRTUAL_KEY",
        custom_host="QDRANT_HOST" # Replace with your Qdrant host
    )

    response = portkey.post(
        url="https://xxxx-xxx-xxx-xx-xxxxxx.us-west-2-0.aws.cloud.qdrant.io", # Qdrant search endpoint, you can use any Qdrant endpoint
    )

    print(response)
    ```
  </Tab>

  <Tab title="NodeJS">
    ```javascript theme={null}
    import Portkey from 'portkey-ai';

    const portkey = new Portkey({
      apiKey: "PORTKEY_API_KEY", // Replace with your Portkey API key
      virtualKey: "QDRANT_VIRTUAL_KEY", // Add your Qdrant's virtual key
      customHost: "QDRANT_HOST" // Replace with your Qdrant host
    });

    async function makeRequest() {
        const response = await portkey.post(
          "https://xxxx-xxx-xxx-xx-xxxxxx.us-west-2-0.aws.cloud.qdrant.io",
          { /* Your request body here */ }
        );
        console.log(response);
    }

    makeRequest();
    ```
  </Tab>

  <Tab title="OpenAI NodeJS">
    ```javascript theme={null}
    import OpenAI from 'openai';
    import { PORTKEY_GATEWAY_URL, createHeaders } from 'portkey-ai'

    const portkey = new OpenAI({
      apiKey: 'QDRANT_API_KEY',
      baseURL: PORTKEY_GATEWAY_URL,
      defaultHeaders: createHeaders({
        virtualKey: "QDRANT_VIRTUAL_KEY",
        apiKey: "PORTKEY_API_KEY",
        customHost: "QDRANT_HOST" // Replace with your Qdrant host
      })
    });

    async function makeRequest() {
        const response = await portkey.post(
          "https://xxxx-xxx-xxx-xx-xxxxxx.us-west-2-0.aws.cloud.qdrant.io",
          { /* Your request body here */ }
        );
        console.log(response);
    }

    makeRequest();
    ```
  </Tab>

  <Tab title="OpenAI Python">
    ```python theme={null}
    from openai import OpenAI
    from portkey_ai import PORTKEY_GATEWAY_URL, createHeaders

    openai = OpenAI(
        api_key='QDRANT_API_KEY',
        base_url=PORTKEY_GATEWAY_URL,
        default_headers=createHeaders(
            provider="qdrant",
            api_key="PORTKEY_API_KEY",
            custom_host="QDRANT_HOST" # Replace with your Qdrant host
        )
    )

    response = openai.post(
        url="https://xxxx-xxx-xxx-xx-xxxxxx.us-west-2-0.aws.cloud.qdrant.io", # Qdrant search endpoint, You can use any Qdrant endpoint
    )

    print(response)
    ```
  </Tab>

  <Tab title="cURL">
    ```sh theme={null}
    curl --location --request POST 'https://xxxx-xxx-xxx-xx-xxxxxx.us-west-2-0.aws.cloud.qdrant.io' \
    --header 'x-portkey-custom-host: QDRANT_HOST' \
    --header 'x-portkey-virtual-key: QDRANT_VIRTUAL_KEY' \
    --header 'x-portkey-api-key: PORTKEY_API_KEY'
    ```
  </Tab>
</Tabs>
