XPNCORE
HomeAPI MarketplacePricingDocumentationBlogFAQ
LoginRegister
XPNCORE

High-quality API marketplace for developers.

Product

  • API Marketplace
  • Pricing
  • AI Models
  • Documentation
  • Blog
  • FAQ
  • System Status

Company

  • About
  • Contact

Legal

  • Terms of Service
  • Privacy Policy
  • Refund Policy

© 2026 XPNCORE. All rights reserved.

OpenAI-compatible · One API key for every model

OpenAI-compatible

Universal LLM Gateway

One Base URL, one API key, and a model ID from the registry. The gateway handles routing, quota, retries, and usage metering behind it.

https://api.xpncore.com/v1
Open Setup Wizard Playground
Contents
01Overview02Authentication03Endpoints04Code examples05Try it live06Responses & errors07Limits
Topic guides
Quick StartAPI authenticationModel discoveryChat CompletionsError codesRate limits & quota
Secrets appear onceEvery example reads API_KEY from the environment.

The contract at a glance

Do not hard-code model IDs from a static list. Call GET /v1/models with the user's key for models filtered by subscription, plan, permission, capability, and ready routes.

Bearer key

A single Authorization header.

Quota-aware

Subscription rate and quota enforcement.

Bounded SSE

Incremental deltas ending with [DONE].

Authentication

HTTP header
Authorization: Bearer YOUR_API_KEY

The full API key appears only on create or rotate. Key lists return only a masked prefix afterward; no endpoint retrieves the secret.

Endpoints

POST
/v1/chat/completions

Create an OpenAI-compatible chat completion.

POST
/v1/combo

Quote, fan out, and synthesize one request across multiple models.

GET
/v1/models

List models available to the current API key.

GET
/v1/models/:model

Retrieve one model available to the current API key.

POST
/v1/embeddings

Create vector embeddings for text input.

POST
/v1/messages

Create a message using the Anthropic-compatible contract.

POST
/v1/completions

Create a legacy text completion.

POST
/v1/images/generations

Generate images from a text prompt.

POST
/v1/images/edits

Edit an image from an image and prompt.

POST
/v1/audio/speech

Generate speech audio from text.

POST
/v1/audio/transcriptions

Transcribe audio into text.

POST
/v1/audio/translations

Translate audio into English text.

POST
/v1/rerank

Rerank documents against a query.

POST
/v1/moderations

Classify potentially unsafe input.

GET
/v1beta/models

List models through the Gemini-compatible contract.

POST
/v1beta/models/*path

Generate content through the Gemini-compatible contract.

POST
/v1/responses

Create a response with the OpenAI Responses contract.

POST
/v1/responses/compact

Compact a Responses conversation context.

Code explorer

Switch endpoint, streaming mode, and client; code always uses an environment variable.

POST /v1/chat/completions
curl https://api.xpncore.com/v1/chat/completions \
  -H 'Authorization: Bearer $XPNCORE_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"model":"gpt-4o-mini","messages":[{"role":"user","content":"Hello"}]}'

Try it live

The browser calls the gateway directly; the secret stays only in this tab's memory.

208 / 32,768 bytes
Response
The response will appear here.
Headers
No headers yet.

Responses and errors

200

OpenAI-compatible JSON with choices, usage, and model.

200 SSE

Each data event carries choices[].delta.content; [DONE] confirms completion.

4xx / 5xx

A clear error envelope for auth, scope, quota, validation, or upstream failures.

{
  "id": "chatcmpl_...",
  "object": "chat.completion",
  "model": "provider/model",
  "choices": [{
    "index": 0,
    "message": { "role": "assistant", "content": "Hello" },
    "finish_reason": "stop"
  }],
  "usage": { "prompt_tokens": 12, "completion_tokens": 4, "total_tokens": 16 }
}
data: {"object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"Hel"}}]}

data: {"object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"lo"}}]}

data: [DONE]

If the stream emits an error or disconnects after a delta, preserve the partial output and do not retry automatically: a new request can duplicate content.

Limits and operations

Request body2 MiB Backend hard limit
Gateway deadline25s processing · 30s HTTP
Streamingstream=false JSON · stream=true text/event-stream · [DONE]
Model discoveryGET /v1/models per API key
Rate limitPer subscription + API key

Ready to send a request?

Setup Wizard creates the key and configuration; Playground calls the gateway directly with client-side limits.

Start setup Playground