Documentatie
Smart AIPI biedt zowel OpenAI- als Anthropic-compatible APIs. Gebruik onze service met elke bestaande OpenAI- of Anthropic-SDK, tool of app door simpelweg de base URL te wijzigen. Geen codewijzigingen nodig.
OpenAI Basis URL
https://api.smartaipi.com/v1
Anthropic Basis URL
https://api.smartaipi.com
CLI & MCP Hulpmiddelen
Smart AIPI biedt twee npm-pakketten om developers te helpen met hun accounts te werken:
Beide installeren
npm install -g smart-aipi @smart-aipi/mcp
Apart installeren
npm install -g smart-aipi
npm install -g @smart-aipi/mcp
Authenticatie
Alle API requests vereisen een API key. Dezelfde key werkt met beide authenticatiemethoden:
Authorization: Bearer YOUR_API_KEY
x-api-key: YOUR_API_KEY
Migratiegids
Migreren duurt minder dan een minuut. Onze API is 100% compatibel met zowel OpenAI- als Anthropic-endpoints.
Van OpenAI
Haal je Smart AIPI API key op
Maak een account aan en maak een API key aan vanuit je dashboard.
Wijzig de base URL
Vervang https://api.openai.com/v1 door https://api.smartaipi.com/v1
Werk je API key bij
Gebruik je Smart AIPI key in plaats van je OpenAI key. Dat is alles!
Van Anthropic
Haal je Smart AIPI API key op
Maak een account aan en maak een API key aan vanuit je dashboard.
Wijzig de base URL
Vervang https://api.anthropic.com door https://api.smartaipi.com
Werk je API key bij
Gebruik je Smart AIPI key in plaats van je Anthropic key. Je bestaande Claude-modelnamen werken gewoon zoals ze zijn.
Je bestaande code, SDKs en apps die de Anthropic Messages API gebruiken, werken zonder codewijzigingen. Claude-modelnamen (claude-opus-4-6, claude-sonnet-4-5-20250929, claude-haiku-4-5-20251001) worden automatisch doorgestuurd naar krachtige GPT-5.4-modellen. Elk antwoord bevat een x-actual-model header die voor volledige transparantie het echte backend-model toont.
Chat-voltooiingen
Maak een chat completion voor de opgegeven berichten en het model. Dit is het belangrijkste endpoint voor interactie met taalmodellen.
Request body-parameters
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
| model | snaar | Ja | Te gebruiken model-ID (bijv. "gpt-6-astra", "gpt-5.6-sol") |
| messages | reeks | Ja | Array van berichtobjecten met role en content |
| temperature | nummer | Nee | Sampling temperature (0-2). Hoger = willekeuriger. Standaard: 1 |
| max_tokens | geheel getal | Nee | Maximum aantal tokens om in het antwoord te genereren |
| top_p | nummer | Nee | Nucleus sampling. Houd rekening met tokens met top_p-kans. Standaard: 1 |
| frequency_penalty | nummer | Nee | Geef tokens een straf op basis van frequentie (-2 tot 2). Standaard: 0 |
| presence_penalty | nummer | Nee | Geef tokens een straf op basis van aanwezigheid (-2 tot 2). Standaard: 0 |
| stop | string/array | Nee | Stopsequenties. Maximaal 4 sequenties waarbij generatie stopt. |
| stream | Booleaans | Nee | Schakel streaming responses via SSE in. Standaard: false |
Berichtrollen
system- system - Stelt het gedrag/de persona van de assistant inuser- user - Berichten van de gebruikerassistant- assistant - Vorige antwoorden van de assistant
Codevoorbeelden
from openai import OpenAI
client = OpenAI(
base_url="https://api.smartaipi.com/v1",
api_key="your-api-key"
)
response = client.chat.completions.create(
model="gpt-6-astra",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
],
temperature=0.7,
max_tokens=1000
)
print(response.choices[0].message.content)
Streaming
Schakel streaming in om tokens te ontvangen terwijl ze worden gegenereerd via Server-Sent Events (SSE). Dit zorgt voor een betere gebruikerservaring bij lange antwoorden.
Stel "stream": true in je request in om streaming in te schakelen.
Streaming-voorbeeld
from openai import OpenAI
client = OpenAI(
base_url="https://api.smartaipi.com/v1",
api_key="your-api-key"
)
# Enable streaming
stream = client.chat.completions.create(
model="gpt-6-astra",
messages=[{"role": "user", "content": "Write a poem"}],
stream=True
)
# Process chunks as they arrive
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")
Reasoning
Beheer de diepte van reasoning met de parameter reasoning_effort voor GPT-5-modellen.
Smart AIPI gebruikt standaard reasoning.effort = "high" voor alle Responses API requests.
Na uitgebreid testen hebben we vastgesteld dat high de beste reasoning effort is voor praktisch gebruik - het biedt diepgaande, betrouwbare tool-use en analyse zonder de latentie-kosten van xhigh. Je kunt dit overschrijven door expliciet reasoning effort in je request in te stellen.
Smart AIPI gebruikt standaard store = false voor alle Responses API- en WebSocket-requests.
De upstream API vereist store: false voor GPT-5.4 en nieuwere modellen. Als je expliciet store: true in je requests instelt, krijg je een foutmelding "Store must be set to false". Verwijder het of stel het in op false.
Ondersteunde modellen
Reacties API
gpt-5.4, gpt-5.3, gpt-5.1, gpt-5 en alle Codex-varianten
Alleen Chat Completions
gpt-5.4-nano — reasoning-ondersteuning is alleen beschikbaar op /v1/chat/completions .
Niveaus van reasoning effort
none- Geen reasoning. Slaat denken volledig over.low- Minimale reasoning. Ideaal voor eenvoudige taken.medium- Gebalanceerde snelheid en diepte.high- Diepgaande analyse voor complexe problemen. (Smart AIPI-standaard)xhigh- Extra hoog. Maximale reasoning-diepte voor de moeilijkste problemen.
Snelle modus (Priority Processing)
Gebruik service_tier: "priority" voor priority processing met lagere latentie. Dit is wat de opdracht /fast in Codex CLI gebruikt. Het verandert de reasoning-diepte niet - je krijgt dezelfde kwaliteit, sneller.
Prijzen: Priority processing wordt gefactureerd tegen 1.5x het standaardtarief. GPT-5.4 output kost bijvoorbeeld normaal $3.75/1M tokens - met prioriteit kost het $5.625/1M tokens.
response = client.responses.create(
model="gpt-6-astra",
input="Refactor this function",
service_tier="priority" # priority processing, lower latency
)
Chatvoltooiingen API
response = client.chat.completions.create(
model="gpt-6-astra",
messages=[{"role": "user", "content": "Analyze this code for bugs..."}],
reasoning_effort="high" # or "xhigh" for maximum depth
)
Reacties API
# Reasoning is set via the "reasoning" object
response = client.responses.create(
model="gpt-6-astra",
input=[{"role": "user", "content": "Refactor this function..."}],
reasoning={"effort": "high"} # defaults to "high" on Smart AIPI
)
Afbeeldingsgeneratie
Genereer afbeeldingen uit tekst-prompts met ons image generation endpoint.
/v1/images/variations ) worden nog niet ondersteund. Image edits zijn beschikbaar via /v1/images/edits.
Request body-parameters
| Parameter | Type | Beschrijving |
|---|---|---|
| prompt | snaar | Tekstbeschrijving van de te genereren afbeelding (verplicht) |
| model | snaar | "gpt-image-2.5-flare" (frontier), "gpt-image-2.5-sunburst" of "gpt-image-2". Standaard: "gpt-image-2.5-flare" |
| n | geheel getal | Aantal afbeeldingen om te genereren (1-10). Standaard: 1 |
| size | snaar | "1024x1024", "1024x1792" of "1792x1024". Standaard: "1024x1024" |
| quality | snaar | "standard" of "hd". Standaard: "standard" |
Beschikbare modellen
gpt-image-2.5-flare- Frontier-model, hoogste kwaliteit (standaard)gpt-image-2.5-sunburst- Nauwkeurige bewerking en hoogwaardig creatief werk (langzamere generatie)gpt-image-latest- Alias voor gpt-image-2.5-flaregpt-image-2- Vlaggenschip van de vorige generatiegpt-image-1.5- Ouder vlaggenschip (ondersteunt transparante achtergronden)gpt-image-1- Afbeeldingsgeneratie met volledige kwaliteitgpt-image-1-mini- Sneller, kleinere afbeeldingen
Voorbeeld
response = client.images.generate(
model="gpt-image-2.5-flare",
prompt="A futuristic city at sunset, cyberpunk style",
size="1024x1024",
n=1
)
# Response contains base64-encoded image
image_b64 = response.data[0].b64_json
# Save to file
import base64
with open("output.png", "wb") as f:
f.write(base64.b64decode(image_b64))
Afbeeldingen bewerken
Bewerk bestaande afbeeldingen met een tekst-prompt. Ondersteunt zowel JSON (base64-string) als multipart/form-data (bestandsupload), zodat OpenAI SDKs direct werken.
Request body-parameters
| Parameter | Type | Beschrijving |
|---|---|---|
| prompt | snaar | Tekstbeschrijving van de gewenste bewerking (verplicht) |
| image | snaar | Base64-gecodeerde afbeelding om te bewerken (verplicht) |
| model | snaar | "gpt-image-2.5-flare" (standaard), "gpt-image-2.5-sunburst" of "gpt-image-2" |
| n | geheel getal | Aantal bewerkte afbeeldingen om te genereren (1-10). Standaard: 1 |
| size | snaar | "1024x1024", "1024x1792" of "1792x1024". Standaard: "1024x1024" |
| quality | snaar | "low", "medium", "high" of "auto". Standaard: "medium" |
image as an array of base64 strings (JSON) or as repeated image / image[] parts (multipart). Add a mask field alongside image to restrict edits to specific regions (white = edit, black = preserve). Works identically to the official OpenAI SDK.
Voorbeeld
import base64
response = client.images.edit(
model="gpt-image-2.5-flare",
image=open("input.png", "rb"),
prompt="Change the background to a sunset beach",
size="1024x1024",
n=1
)
# Save the edited image
edited_b64 = response.data[0].b64_json
with open("edited.png", "wb") as f:
f.write(base64.b64decode(edited_b64))
Realtime API met WebSocket
WebSockets zijn een breed ondersteunde API voor realtime gegevensoverdracht en een uitstekende keuze om verbinding te maken met de Smart AIPI Realtime API in server-to-server-applicaties.
In een server-to-server-integratie maakt je backend-systeem rechtstreeks verbinding via WebSocket met de Realtime API. Gebruik een standaard API-toets om de verbinding te authenticeren, aangezien de token alleen beschikbaar is op je beveiligde backend-server.
Verbind via WebSocket
Hieronder staan verschillende voorbeelden van verbinden via WebSocket. Naast het gebruik van de WebSocket-URL moet je ook een authenticatie-header doorgeven met je API key.
import WebSocket from "ws";
const url = "wss://api.smartaipi.com/v1/responses";
const ws = new WebSocket(url, {
headers: {
Authorization: "Bearer " + process.env.SMARTAIPI_API_KEY,
},
});
ws.on("open", function open() {
console.log("Connected to server.");
// Send a response.create event
ws.send(JSON.stringify({
type: "response.create",
response: {
model: "gpt-6-astra",
store: false,
input: [{ role: "user", content: "Hello!" }],
stream: true,
},
}));
});
ws.on("message", function incoming(message) {
const event = JSON.parse(message.toString());
console.log(event.type, event);
});
Events verzenden en ontvangen
Sessies worden beheerd met door de client verzonden en door de server verzonden JSON-events via de WebSocket-verbinding. Wikkel je request in een response.create envelop:
| Evenement | Richting | Beschrijving |
|---|---|---|
| response.create | Cliënt | Verstuur een request (omsluit je model, input en parameters) |
| response.created | Server | Sessie geaccepteerd, verwerking gestart |
| response.output_text.delta | Server | Streaming-tekstfragment |
| response.completed | Server | Terminal event met volledig antwoord en gebruik |
| response.failed | Server | Terminal event dat een fout aangeeft |
"store": false in de response-envelop. De verbinding blijft bestaan over meerdere beurten heen - verstuur extra response.create frames bevatten zonder opnieuw te verbinden.
Modellen weergeven
Haal een lijst op van alle beschikbare modellen. Gebruik dit endpoint om dynamisch te ontdekken welke modellen beschikbaar zijn voor je account.
Antwoordformaat
{
"object": "list",
"data": [
{
"id": "gpt-6-astra",
"object": "model",
"created": 1700000000,
"owned_by": "smart-aipi"
},
{
"id": "gpt-5.3-codex",
"object": "model",
"created": 1700000000,
"owned_by": "smart-aipi"
},
// ... more models
]
}
Voorbeeld
from openai import OpenAI
client = OpenAI(
base_url="https://api.smartaipi.com/v1",
api_key="your-api-key"
)
# List all available models
models = client.models.list()
for model in models.data:
print(model.id)
Beschikbare modellen
GPT-serie
- gpt-6-astra Nieuwste
- gpt-5.6-sol
- gpt-5.6-terra
- gpt-5.6-luna
- gpt-5.5
- gpt-5.4-pro
- gpt-5.4
- gpt-5.4-mini
- gpt-5.4-nano alleen completions
Codex-serie
- gpt-5.3-codex
- gpt-5.2-codex
- gpt-5.2
- gpt-5.1
Anthropic Berichten API
Volledige compatibiliteit met de Anthropic Messages API. Gebruik elke Anthropic SDK, Claude Code of app die het Anthropic-protocol spreekt - verander alleen de base URL.
Ondersteunde functies
- ✓ Streaming (volledig Anthropic SSE event protocol)
- ✓ Toolgebruik / function calling
- ✓ System messages (string- en arrayformaten)
- ✓ Afbeeldingsinput (base64 en URL)
- ✓ Token tellen (
/v1/messages/count_tokens) - ✓ Uitgebreid denken / reasoning effort
Codevoorbeelden
from anthropic import Anthropic
client = Anthropic(
base_url="https://api.smartaipi.com",
api_key="your-api-key"
)
response = client.messages.create(
model="claude-sonnet-4-5-20250929",
max_tokens=1024,
messages=[
{"role": "user", "content": "Hello!"}
]
)
print(response.content[0].text)
Model mapping
Claude-modelnamen worden geaccepteerd en automatisch doorgestuurd naar GPT-5.4 met gelaagde reasoning effort. Elk antwoord bevat een x-actual-model header die het echte backend-model toont.
| Claude-model | Achterkant | Redenering | Beste voor |
|---|---|---|---|
| claude-opus-4-6 | gpt-5.4 | Hoog | Complexe reasoning, architectuur |
| claude-sonnet-4-5-20250929 | gpt-5.4 | Gemiddeld | Dagelijks coderen, gebalanceerde kwaliteit |
| claude-haiku-4-5-20251001 | gpt-5.4 | Laag | Snelle antwoorden, eenvoudige taken |
Claude Code
Gebruik Claude Code met Smart AIPI als backend. Volledige ondersteuning voor toolgebruik, streaming en agentic mogelijkheden.
Automatische setup
npx smart-aipi claude
Dit configureert ~/.claude/settings.json en ~/.claude.json automatisch. Als je Claude Code al hebt ingesteld met een Anthropic-account, krijg je de handmatige configuratie te zien in plaats van dat deze wordt overschreven.
Handmatige setup
Voeg toe aan ~/.claude/settings.json:
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.smartaipi.com",
"ANTHROPIC_API_KEY": "sk-your-key",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-haiku-4-5-20251001"
},
"model": "opus"
}
Voeg daarna "hasCompletedOnboarding": true toe aan ~/.claude.json toe om de setup-wizard over te slaan.
Na het bewerken van instellingen moet je Claude Code opnieuw starten zodat de wijzigingen van kracht worden. Als je Claude Code al verbonden hebt met een echt Anthropic-account, zullen deze env vars die verbinding overschrijven - gebruik een projectniveau- .claude/settings.json om beide te behouden.
Wat elke instelling doet
"model": "opus"— Hoofdmodel. Gebruikt claude-opus-4-6 (hoge reasoning) voor alle primaire taken.ANTHROPIC_DEFAULT_HAIKU_MODEL— Achtergrondmodel. Gebruikt claude-haiku-4-5 (lage reasoning) voor snelle achtergrondtaken zoals bestandsindexering.- Wissel halverwege een sessie tussen modellen met
/model sonnet,/model opus, of/model haiku.
| Alias | Claude-model | Achterkant | Redenering |
|---|---|---|---|
| opus | claude-opus-4-6 | gpt-5.4 | Hoog |
| sonnet | claude-sonnet-4-5-20250929 | gpt-5.4 | Gemiddeld |
| haiku | claude-haiku-4-5-20251001 | gpt-5.4 | Laag |
OpenCode
Gebruik Smart AIPI als je OpenCode-backend via de OpenAI-compatible SDK.
Config-setup
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"smart-aipi": {
"npm": "@ai-sdk/openai-compatible",
"name": "Smart AIPI",
"options": {
"baseURL": "https://api.smartaipi.com/v1",
"apiKey": "YOUR_API_KEY"
},
"models": {
"gpt-6-astra": {
"name": "GPT-6 Astra",
"reasoning": true,
"limit": { "context": 400000, "output": 128000 }
},
"gpt-5.3-codex": {
"name": "GPT-5.3 Codex",
"reasoning": true,
"limit": { "context": 400000, "output": 128000 }
},
"gpt-5.2-codex": {
"name": "GPT-5.2 Codex",
"reasoning": true,
"limit": { "context": 400000, "output": 128000 }
},
"gpt-5-codex": {
"name": "GPT-5 Codex",
"reasoning": true,
"limit": { "context": 400000, "output": 128000 }
}
}
}
},
"model": "smart-aipi/gpt-6-astra"
}
Codex CLI
Gebruik Smart AIPI met OpenAI's Codex CLI-tool. Er moeten drie bestanden worden geconfigureerd.
Automatische setup
npx smart-aipi codex
Dit configureert automatisch alle drie onderstaande bestanden. Voeg na het uitvoeren model_reasoning_effort toe aan je config (zie stap 2).
Handmatige setup
Configureer deze drie bestanden:
1. API-sleutel — ~/.codex/auth.json
{
"auth_mode": "apikey",
"OPENAI_API_KEY": "sk-your-key"
}
2. Model en redenering — ~/.codex/config.toml
Voeg altijd model_reasoning_effort toe - vereist voor custom modellen.
Zonder dit gebruikt Codex standaard geen reasoning en zal het niet goed werken. Gebruik "high" voor de beste resultaten.
model = "gpt-6-astra"
model_reasoning_effort = "high"
Geldige reasoning-niveaus: low, medium, high (aanbevolen), xhigh.
3. Omgevingsvariabelen — ~/.zshrc
# Smart AIPI
export OPENAI_API_KEY="sk-your-key"
export OPENAI_BASE_URL="https://api.smartaipi.com/v1"
Na het bewerken van je shell-profiel moet je je terminal opnieuw starten of source ~/.zshrc uitvoeren zodat de wijzigingen van kracht worden.
Gebruik Codex daarna zoals gewoonlijk:
codex "fix this bug"
Codex WebSocket-snelheidsgids
WebSocket-modus is meestal sneller voor agentic coding-flows met veel tool calls. In plaats van herhaaldelijk opnieuw te verbinden via HTTP en volledige request-enveloppen opnieuw te versturen, houdt Codex één live verbinding open en verstuurt het incrementele beurten, wat continuation-overhead vermindert.
Schakel WebSockets in Codex in
Gebruik de WebSocket v2 feature flag in ~/.codex/config.toml: ~/.codex/config.toml:
model = "gpt-6-astra"
model_reasoning_effort = "high"
[features]
responses_websockets_v2 = true
CLI-equivalent:
codex --enable responses_websockets_v2
Oudere builds kunnen de legacy-flag gebruiken:
[features]
responses_websockets = true
Bekend gedrag van Homebrew
Bij sommige via Homebrew verspreide builds kunnen WebSocket-beurten vastlopen tijdens langlopende taken en daarna stilletjes terugvallen op HTTP. We zagen dit vooral in complexe tool-call-lussen. Herbouwen vanuit de open-sourcecode met de onderstaande fixes verbeterde zowel de stabiliteit als de snelheid.
Na het mergen: los de open-source WebSocket-bug op
Gebruik na het mergen van je branch deze checklist om te verzekeren dat de fix in je lokale binary zit:
# 1) Pull merged main
git checkout main
git pull --ff-only
# 2) Confirm websocket flags exist
codex features list | rg responses_websockets
# 3) Build and install
cd codex-rs
cargo build --release
install -m 0755 target/release/codex ~/.local/bin/codex-beta
# 4) Run with websocket enabled
CODEX_RS_RESPONSES_WS=true \
OPENAI_BASE_URL=https://api.smartaipi.com/v1 \
~/.local/bin/codex-beta --enable responses_websockets_v2
Als je handmatig moet patchen, controleer dan of deze code-level fixes aanwezig zijn:
# A) Build websocket request with IntoClientRequest so required headers are set
let mut request = url.as_str().into_client_request()?;
request.headers_mut().extend(headers);
# B) Ensure TLS roots are enabled for tokio-tungstenite in Cargo.toml
tokio-tungstenite = { version = "...", features = ["rustls-tls-native-roots"] }
Cursor & Cline
Gebruik Smart AIPI met Cursor IDE of de Cline VS Code-extensie.
Cursor
- Open Cursor-instellingen
- Ga naar het
Modelstabblad - Klik op
+ Add Model - Stel Base URL in:
https://api.smartaipi.com/v1 - Voer je API key in
- Model:
gpt-6-astra
Cline (VS Code)
- Open de Cline-instellingen in VS Code
- Selecteer
OpenAI Compatible - Basis URL:
https://api.smartaipi.com/v1 - Voer je API key in
- Model:
gpt-6-astra
Chatten
Gebruik Smart AIPI Chat op chat.smartaipi.com. voor workflows met tekst, afbeeldingen, video, code, search en spraak.
Functies
- ✓ Chatten — Tekstgesprekken voor algemeen gebruik met Smart AIPI-modellen.
- ✓ Afbeeldingen — Genereer en bewerk afbeeldingen vanuit prompts.
- ✓ Video — Genereer video's vanuit tekst- of afbeeldingsinput.
- ✓ Code — Code-assistentie en bewerken in de browser.
- ✓ Zoeken — Gebruik web search voor onderbouwde antwoorden.
- ✓ Spraak — Praat met het model via spraakinput en gesproken antwoorden.
Aan de slag
- 1. Open chat.smartaipi.com
- 2. Log in of maak een account aan.
- 3. Begin te chatten met tekst, afbeeldingen, video, code, search of spraak.
Facturering: Gebruik wordt verrekend met je Smart AIPI-credits.
API Tester
Test de API direct vanuit je browser: