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
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
AI Gateway

AI Gateway Universal API

Zuplo AI Gateway provides a universal API that standardizes interactions with various AI providers. This API follows the OpenAI API specification, making it easy to integrate with existing apps that already use OpenAI's API.

Using the Universal API

Every AI Gateway app serves the Universal API. The app page in the portal shows each app's API URL, which ends in the app's ID—for example https://my-gateway-main-2e18f50.zuplo.app/config_fe0a04972d2848e0a94ae4b8bcd1497e. Client libraries expect a base URL ending in /v1, so append that suffix. When the gateway runs the authentication policy, send the app's API key as a bearer token.

Models are referenced as providerName/model, where providerName is the provider name configured in your gateway. This is how the gateway knows which provider to route each request to—and it means one app can use models from several providers through the same endpoint.

If you are using an SDK or library that supports custom base URLs, you can configure it to use your app's URL. For example, with the OpenAI Node.js SDK, you can set the baseURL option:

Code
import OpenAI from "openai"; const client = new OpenAI({ apiKey: process.env.ZUPLO_APP_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);

If the app's Model Filtering policy has an allow list, a request that omits model uses the first model in the list—so clients that can't set a model still work.

Supported endpoints

EndpointNotes
/v1/chat/completionsChat completions for every provider
/v1/embeddingsEmbeddings for the providers marked in the capability matrix
/v1/responsesOpenAI Responses API: OpenAI, and the OpenAI-compatible models that serve it on Azure AI and Bedrock Mantle
/v1/messagesAnthropic Messages API: Anthropic, and the Claude models of Azure AI, Bedrock Mantle and Vertex AI
Edit this page
Last modified on September 10, 2026
Source ControlOverview
On this page
  • Using the Universal API
  • Supported endpoints
TypeScript