ZuploZuplo
LoginStart for Free
  • Documentation
  • API Reference
Getting Started
    Develop in the portal
      1 - Setup Your Gateway2 - Rate Limiting3 - API Key Auth4 - Deploy5 - Dynamic Rate LimitingDynamic MCP Server - Quickstart
    Develop locally with the CLI
      1 - Setup Your Gateway2 - Rate Limiting3 - API Key Auth4 - Deploy5 - Dynamic Rate LimitingDynamic MCP Server - Quickstart
Concepts
API Management
AI Gateway
    OverviewGetting StartedSource ControlUniversal API
    Providers
    Teams
    Apps
    Policies
    Cookbooks
    Integrations
      AI SDKClaude CodeClaude DesktopCodexGitHub CopilotGooseLangChain SDKOpenAI SDK
MCP Gateway
MCP Server
Developer Portal
Development
Deploying & Source Control
Analytics
Observability
Networking & Infrastructure
Account Management
Programming API
Build with AI
Zuplo CLI
Migration Guides
Platform LimitsVersion Support PolicySecuritySupportTrust & ComplianceChangelog
powered by Zuplo
Integrations

OpenAI SDK

The OpenAI Node.js SDK is the official SDK for working with LLMs provided by OpenAI as well as other OpenAI compatible models from other providers in Node.js.

Prerequisites

In order to use the AI Gateway with any OpenAI SDK powered app you will need to complete these steps first:

  1. Create a new provider in the AI Gateway for OpenAI

  2. Set up a new team

  3. Create a new app to use specifically with the OpenAI SDK and assign it to the team you created

  4. Copy the API URL and API Key shown at the top of the app page

Configure the OpenAI SDK

To route all OpenAI SDK requests through Zuplo instead of directly to the OpenAI API, you must set the API baseUrl in the SDK configuration.

The app page in the Zuplo Portal shows each app's API URL. It ends in the app's ID, so append /v1 to it to get the base URL for your API client.

Additionally, change the value of apiKey to the API key of the app you have configured in Zuplo

Always name the model as providerName/model, where providerName is the provider name configured in your gateway. The gateway needs the prefix to know which provider to route to, and a request with no model, or a model without that prefix, gets a 400. Adding the Model Filtering policy restricts an app to certain models, and an allow list also supplies a default so requests may omit the model.

Code
import OpenAI from "openai"; const client = new OpenAI({ apiKey: process.env.ZUPLO_AI_GATEWAY_API_KEY, baseURL: "https://my-gateway-main-2e18f50.zuplo.app/config_fe0a04972d2848e0a94ae4b8bcd1497e/v1", }); const response = await client.chat.completions.create({ model: "openai/gpt-5-mini", messages: [ { role: "user", content: "Write a one-sentence bedtime story about a unicorn.", }, ], }); console.log(response.choices[0].message.content);

When configured in this way, the SDK will switch from using the default OpenAI APIs to using Zuplo's AI Gateway for all requests.

Supported Endpoints

The AI Gateway supports all major OpenAI API endpoints through the universal API:

  • Chat Completions (/v1/chat/completions) - For conversational AI interactions
  • Embeddings (/v1/embeddings) - For generating vector embeddings
  • Responses (/v1/responses) - For OpenAI models that support the responses endpoint (such as GPT-5 and other compatible models)

Using the Responses Endpoint

For models that support the /v1/responses endpoint, you can use the OpenAI SDK's responses API:

Code
import OpenAI from "openai"; const client = new OpenAI({ apiKey: process.env.ZUPLO_AI_GATEWAY_API_KEY, baseURL: "https://my-gateway-main-2e18f50.zuplo.app/config_fe0a04972d2848e0a94ae4b8bcd1497e/v1", }); const response = await client.responses.create({ model: "openai/gpt-5", input: "Write a one-sentence bedtime story about a unicorn.", }); console.log(response.output_text);

The responses endpoint is automatically routed through the AI Gateway, providing the same monitoring, cost controls, and security features as other endpoints.

Edit this page
Last modified on August 18, 2026
LangChain SDKOverview
On this page
  • Prerequisites
  • Configure the OpenAI SDK
  • Supported Endpoints
  • Using the Responses Endpoint
TypeScript
TypeScript