~/products/ai-gateway

// ai-cloud/ai-gateway

One API for available AI models.

One API for available models

The AI Gateway puts available language models behind a single endpoint that speaks the same request format as the OpenAI API. Point your existing code at setcloud.com/v1, create one key, and switch between supported models after checking their capabilities — every request bills against one prepaid balance.

curl — /v1/chat/completions
$ curl https://setcloud.com/v1/chat/completions \
    -H "Authorization: Bearer sk-sc-…" \
    -H "Content-Type: application/json" \
    -d '{"model": "nova-lite",
         "messages": [{"role": "user", "content": "ship it"}]}'
{
  "choices": [{ "message": { "role": "assistant", … } }],
  "usage": { "prompt_tokens": 10, "completion_tokens": 42 }
}

// 01 — drop-in compatible

Use familiar chat and embedding endpoints.

The gateway supports OpenAI-compatible chat completions, text embeddings, and model listing. Set the base URL, key, and an available model ID. Compatibility covers these endpoints; model capabilities and supported parameters vary.

  • + Standard endpoints: POST /v1/chat/completions, POST /v1/embeddings, and GET /v1/models
  • + Tool calling — tools, tool_choice, and streamed tool calls work with OpenAI SDKs and agent frameworks
  • + Text embeddings for search and retrieval — 256, 512, or 1024 dimensions, float or base64
  • + Streaming responses with stream: true
  • + Familiar error formats your retry logic already understands
# your existing SDK, two lines changed
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://setcloud.com/v1",
    api_key=os.environ["SETCLOUD_API_KEY"],
)

reply = client.chat.completions.create(
    model="nova-micro",
    messages=[{"role": "user", "content": "Hello"}],
)

// 02 — the catalog

Choose from the current catalog.

Browse available models and their current input, output, and long-context prices below. Capabilities differ by model; choose one with tools support for action calls. Ready custom models also appear in your account catalog.

modelAPI idinput /1Moutput /1M
Loading current model prices…

per 1M tokens · each nonzero request rounds up to cents ·

// 03 — api keys

Keys you actually control.

Create up to 25 keys per account. Scope a key to specific models, cap its requests and tokens per minute, and revoke it the moment it leaks. Keys are hashed at rest — the secret is shown once.

  • + Per-key model allowlists
  • + Per-key rate limits — requests/min and tokens/min
  • + Instant revocation from the dashboard or CLI

// 04 — metering

Pay only for the tokens you use.

Each request with nonzero usage is priced at the model rate and rounded up to a whole cent, with a $0.01 minimum. There is no separate seat fee. Watch usage by key and by model in the dashboard, try prompts in the playground before you write code, and fine-tune a custom model on your own data when a stock model isn't enough.

  • + Usage by key, model, and token in the dashboard
  • + Playground for testing prompts before you write code
  • + Accept a fixed training quote before starting; custom-model storage and inference bill separately

Current pricing

USD rates from the current billing catalog. Regional references vary with attributed usage.

Loading current rates…

Point your app at one endpoint.

A live model catalog, text embeddings, and one prepaid balance.