To ensure secure access to Portkey’s APIs, authentication is required for all requests. This guide provides the necessary steps to authenticate your requests using the Portkey API key, regardless of whether you are using the SDKs for Python and JavaScript, the OpenAI SDK, or making REST API calls directly.

Obtaining Your API Key

Create or log in to your Portkey account. Grab your account’s API key from the “Settings” page.

Based on your access level, you might see the relevant permissions on the API key modal - tick the ones you’d like, name your API key, and save it.

Authentication with SDKs

Portkey SDKs

import Portkey from 'portkey-ai'

const portkey = new Portkey({
    apiKey: "PORTKEY_API_KEY", // Replace with your actual API key
    virtualKey: "VIRTUAL_KEY"  // Optional: Use for virtual key management
})

const chatCompletion = await portkey.chat.completions.create({
    messages: [{ role: 'user', content: 'Say this is a test' }],
    model: 'gpt-4o',
});

console.log(chatCompletion.choices);

OpenAI SDK

When integrating Portkey through the OpenAI SDK, modify the base URL and add the x-portkey-api-key header for authentication. Here’s an example of how to do it:

We use the createHeaders helper function from the Portkey SDK here to easily create Portkey headers.

You can pass the raw headers (x-portkey-api-key, x-portkey-provider) directly in the defaultHeaders param as well.

import OpenAI from 'openai';
import { PORTKEY_GATEWAY_URL, createHeaders } from 'portkey-ai'

const openai = new OpenAI({
  apiKey: 'OPENAI_API_KEY',
  baseURL: PORTKEY_GATEWAY_URL,
  defaultHeaders: createHeaders({
    provider: "openai",
    apiKey: "PORTKEY_API_KEY"
  })
});

async function main() {
  const chatCompletion = await openai.chat.completions.create({
    messages: [{ role: 'user', content: 'Say this is a test' }],
    model: 'gpt-4o',
  });

  console.log(chatCompletion.choices);
}

main();

Read more here.