// Reference · v1 · OpenAI-compatible

The OpenAI-compatible endpoint.

Eleven frontier models behind one base_url. Same SDKs you already use. Half the per-token price. Migration is one string.

BASE URL https://api.slashed.pro/v1 // drop-in replacement for api.openai.com/v1

Quickstart.

Three lines. No SDK swap. Pick your language and paste.

cURL
Python
Node
# Set your sl- key from https://dashboard.slashed.pro
curl https://api.slashed.pro/v1/chat/completions \
  -H "Authorization: Bearer $SLASHED_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.4",
    "messages": [{"role": "user", "content": "Why am I paying full price?"}]
  }'
# pip install openai — yes, the official one
from openai import OpenAI

client = OpenAI(
  base_url="https://api.slashed.pro/v1",
  api_key="sl-..."
)

resp = client.chat.completions.create(
  model="claude-opus-4.6",
  messages=[{"role": "user", "content": "Hello, half-price world."}]
)
print(resp.choices[0].message.content)
// npm i openai — yes, the official one
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.slashed.pro/v1",
  apiKey: "sl-...",
});

const resp = await client.chat.completions.create({
  model: "gemini-3.1-pro",
  messages: [{ role: "user", content: "Hello, half-price world." }],
});
console.log(resp.choices[0].message.content);

Endpoints.

All paths under /v1. All proxied 1:1 to upstream provider semantics. Anything OpenAI-spec works unchanged.

PathDescriptionNotes
POST/v1/chat/completions Chat completion. Streaming, tool-use, vision, JSON mode all supported per upstream model capability. Stream via stream:true
POST/v1/completions Legacy completion endpoint. Routed for backwards compat with older SDKs. Prefer chat/completions
POST/v1/embeddings Vector embeddings. Routed to provider-native embedding model based on requested ID. Returns data[].embedding
GET/v1/models List of all 11 supported models with their canonical IDs and family. No auth required
GET/v1/usage Token + cost ledger for the authenticated key (last 30 days). Mirrors dashboard data

Models & pricing.

Per 1M output tokens. Direct list price → SLASHED price. Always 50%, always.

Anthropic
claude-opus-4.6
$15.00$7.50
Anthropic
claude-sonnet-4.6
$3.00$1.50
Anthropic
claude-haiku-4.5
$0.25$0.13
Google
gemini-3.1-pro
$3.50$1.75
Google
gemini-3-flash
$0.075$0.038
OpenAI
gpt-5.4
$5.00$2.50
OpenAI
gpt-5.3-codex
$5.00$2.50
OpenAI
gpt-5.2
$4.00$2.00
OpenAI
gpt-5.2-codex
$4.00$2.00
OpenAI
gpt-5.1-codex
$3.00$1.50
OpenAI
gpt-5.1-codex-max
$8.00$4.00

Authentication.

Standard Bearer token. SLASHED keys are prefixed sl- and 32 chars after the prefix. Pre-existing provider keys are honoured during migration.

  1. Open the dashboard. Visit dashboard.slashed.pro and click Generate sl- key. No card, no contract.
  2. Copy the key. Shown once, then truncated. Store in your secret manager (AWS Secrets Manager, Doppler, Vault, .env, whatever you already use).
  3. Set the header. Authorization: Bearer sl-... on every request. Same as OpenAI.
  4. (Optional) Import an existing key. Paste a qua-, sk-, or or- key into the dashboard to mirror your current usage and start saving immediately.

// Recognised key prefixes

sl-...SLASHED native
qua-...Quatarly · auto-migrate
sk-...OpenAI direct · auto-migrate
or-...OpenRouter · auto-migrate

Errors.

OpenAI-compatible error envelope. {"error": {"type": "...", "message": "..."}} on every non-2xx.

CodeTypeWhat it means
400invalid_requestMalformed body, missing required field, unknown model. Check the message field for specifics.
401invalid_api_keyMissing, malformed, revoked, or expired key. Generate a new one on the dashboard.
402quota_exceededPer-key spend cap hit, or billing issue. Raise the cap on the dashboard, or top up.
404not_foundPath doesn't exist on /v1, or model ID isn't in the supported set. See /v1/models.
429rate_limitedPer-key RPM cap hit. We pass through upstream backpressure with a Retry-After header.
500internal_errorSLASHED gateway problem. Always retryable. We page on this.
502upstream_errorUpstream provider returned a 5xx. Body includes the upstream error verbatim.
503unavailableUpstream model temporarily unavailable. Try a sibling model in the same family.

Migrate without rewriting.

Already on Quatarly, OpenRouter, or paying OpenAI direct? Paste your existing key on the dashboard. We'll mirror your usage history, project savings, and let you cut over when you're ready.

  • No SDK change. Same OpenAI client.
  • No model ID rewrite. Same names you already use.
  • No middleware. No router. No MSA.
  • 24-hour grace window when rotating keys.
Open dashboard →
01

Status

Live uptime, p50/p95/p99 latency per model, and incident log at status.slashed.pro. We page on every 500.

02

Support

Email hi@slashed.pro — reaches a founder on the first reply. WhatsApp on request.

03

Changes

The API surface is locked at v1. New models add to the catalogue without changing the contract. See endpoints.