QNP API-Dokumentation

OpenAI-kompatibler Proxy mit konfigurierbarem per-Key-Fallback über verschiedene Anbieter.

Einführung

QNP ist ein OpenAI-kompatibles API-Gateway. Richten Sie jedes OpenAI-SDK auf unsere Basis-URL aus und Ihr bestehender Code wird über Anthropic, OpenAI, Google, Mistral, Groq und mehr geroutet – mit automatischem Fallback.

  • Konfigurierbarer Fallback – legen Sie die Anbieterreihenfolge pro Schlüssel fest.
  • OpenAI SDK-kompatibel – Plug-and-Play-Ersatz, keine Code-Änderungen nötig.
  • BYOK oder Plattform-Guthaben – bringen Sie Ihre eigenen Schlüssel mit oder nutzen Sie Pay-as-you-go.
  • Unterstützte Anbieter – OpenAI, Anthropic, Google, Mistral, Groq und weitere.
  • Einheitliche Nutzung, Abrechnung und Überwachung.

Produktions-Base-URL: {url}

Für Chat lösen sich Modellnamen qnp oder qnp/auto in das erste Modell Ihrer Fallback-Kette auf. Andernfalls verwendet QNP einen intent-basierten Standard. Ihre Fallback-Reihenfolge bleibt weiterhin gültig.

Schnellstartanleitung

1

Konto erstellen

Registrieren Sie sich unter qnp.ai/login mit Google, Apple, Passkey oder E-Mail-Magic-Link. Sie erhalten eine kostenlose Stufe mit 50 Anfragen pro Tag.

2

API-Schlüssel erhalten

Gehen Sie zu Dashboard → API-Schlüssel und erstellen Sie einen neuen Schlüssel. Konfigurieren Sie Ihre Provider-Kette. Kopieren Sie den Schlüssel – er beginnt mit qnp- und wird nur einmal angezeigt.

3

Erste Anfrage senden

Verwenden Sie ein beliebiges OpenAI-kompatibles SDK oder cURL. Ändern Sie einfach die Basis-URL und den API-Schlüssel (siehe unten).

4

Nutzung überwachen

Zeigen Sie Anfragelogs, Kosten und Latenz auf der Seite Dashboard → Logs an. Exportieren Sie Daten als CSV zur Analyse.

cURL
curl -X POST "https://qnp.ai/api/v1/chat/completions" \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"openai/gpt-4o-mini","messages":[{"role":"user","content":"Hello!"}]}'

Authentifizierung

All API requests require authentication via your QNP key. Two header formats are supported:

Authorization: Bearer YOUR_KEY
# or
X-API-Key: YOUR_KEY

Schlüsselverwaltung

  • Schlüssel werden im Dashboard erstellt und nur einmal bei der Erstellung angezeigt.
  • Jeder Schlüssel hat seine eigene Provider-Kette – wählen Sie, über welche Provider ein Fallback erfolgen soll.
  • Schlüssel können mit erlaubten IPs, Referrern, Modellen und Tagesbudgets eingeschränkt werden.
  • Rotieren Sie Schlüssel ohne Ausfallzeit – der alte Schlüssel bleibt für ein Kulanzfenster gültig.
  • Widerrufen Sie Schlüssel sofort bei Kompromittierung – der alte Schlüssel gibt beim nächsten Aufruf 401 zurück.
  • Kostenlose Stufe: bis zu 5 aktive Schlüssel, 1.000 Anfragen/Tag.

Schlüssel-Einschränkung

  • Provider-Kette – welche Provider in welcher Reihenfolge versucht werden.
  • Erlaubte IPs – schränken Sie die Schlüsselnutzung auf bestimmte IP-Adressen oder CIDRs ein.
  • Erlaubte Referrer – schränken Sie die Schlüsselnutzung auf bestimmte Ursprünge ein.
  • Berechtigungen – Chat, Embeddings, Bilder oder Audio pro Schlüssel.
  • Budget – legen Sie Tagesausgabelimits in USD fest.
  • Ratenlimits – benutzerdefinierte RPM/TPM-Obergrenzen pro Schlüssel.

Fallback-Konfiguration

Pro API-Schlüssel definieren Sie eine Anbieterkette. QNP versucht diese der Reihe nach, bis einer eine erfolgreiche Antwort zurückgibt.

Example: OpenAI (primary) → Anthropic (fallback 1) → Groq (fallback 2). If OpenAI 5xx's, traffic flows to Anthropic.

Configure fallback in the dashboard under Keys → [your key] → Routing.

Ohne konfigurierte Fallback-Option verwendet der Schlüssel Plattform-Guthaben – abgerechnet über Ihr Konto.

Chat Completions

POST/v1/chat/completions

OpenAI-compatible chat endpoint. Supports streaming, function calling, and vision inputs.

cURL
curl -X POST "https://qnp.ai/api/v1/chat/completions" \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"openai/gpt-4o-mini","messages":[{"role":"user","content":"Hello!"}]}'
Python (OpenAI SDK)
from openai import OpenAI

client = OpenAI(
    base_url="https://qnp.ai/api/v1",
    api_key="YOUR_KEY"
)

response = client.chat.completions.create(
    model="openai/gpt-4o-mini",  # routes to your fallback chain
    messages=[{"role": "user", "content": "Hello!"}]
)
print(response.choices[0].message.content)
Node.js (OpenAI SDK)
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://qnp.ai/api/v1",
  apiKey: "YOUR_KEY",
});

const response = await client.chat.completions.create({
  model: "openai/gpt-4o-mini", // routes to your fallback chain
  messages: [{ role: "user", content: "Hello!" }],
});
console.log(response.choices[0].message.content);

Embeddings

POST/v1/embeddings

Create vector embeddings for text — useful for search, clustering, and RAG.

cURL
curl -X POST "https://qnp.ai/api/v1/embeddings" \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"text-embedding-3-small","input":"The quick brown fox"}'
Python
response = client.embeddings.create(
    model="text-embedding-3-small",
    input="The quick brown fox"
)
print(response.data[0].embedding[:5])

Bilder

POST/v1/images/generations

Generieren Sie Bilder über DALL-E und andere Bildmodelle.

Modelle

GET/v1/models

Liste der für Ihren API-Schlüssel verfügbaren Modelle.

cURL
curl "https://qnp.ai/api/v1/models" \
  -H "Authorization: Bearer YOUR_KEY"

Streaming

QNP unterstützt Server-Sent Events (SSE) Streaming für Chat-Completions. Setzen Sie "stream": true in Ihren Anfrage-Body. Die Antwort ist ein Stream von data:-Ereignissen im OpenAI-Format.

Jedes SSE-Ereignis enthält einen JSON-Chunk mit Delta-Inhalt. Der Stream endet mit data: [DONE].

cURL
curl -X POST "https://qnp.ai/api/v1/chat/completions" \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"openai/gpt-4o-mini","stream":true,"messages":[{"role":"user","content":"Hello!"}]}'
Python
stream = client.chat.completions.create(
    model="openai/gpt-4o-mini",
    messages=[{"role": "user", "content": "Tell me a story"}],
    stream=True
)
for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="")

Modellkatalog

Lade den Live-Modellkatalog…

Ratenlimits

Ratenbegrenzungen werden pro API-Schlüssel durchgesetzt. Standardobergrenzen variieren je nach Tier:

StufeAnfragen pro TagRPM (Standard)API-Schlüssel
Free50 RPD10 RPM5
ProUnbegrenztUnbegrenztUnbegrenzt

Benutzerdefinierte Ratenbegrenzungen pro Schlüssel (RPM, TPM) sind im Dashboard konfigurierbar.

Bei Ratenbegrenzung gibt die API 429 Too Many Requests mit einem Retry-After-Header zurück.

Fehlercodes

Errors follow OpenAI format: { error: { message, type, code } }

CodeMeaningWhat to do
400Bad RequestCheck your request body format and required fields.
401UnauthorizedCheck your API key is valid and included in the header.
402Insufficient CreditsTop up credits in the dashboard or upgrade to Pro.
403ForbiddenKey lacks permission for this endpoint, or IP/referrer is blocked.
404Not FoundCheck the endpoint URL and model name.
429Rate LimitedWait and retry. Check the Retry-After header. Upgrade tier for higher limits.
500Internal Server ErrorRetry the request. If persistent, contact support.
502Bad GatewayUpstream provider error. Your fallback chain will auto-retry.
503Service UnavailableProvider temporarily unavailable. Fallback routing handles this.

SDK-Beispiele

Verwenden Sie ein beliebiges OpenAI-kompatibles SDK. Ändern Sie einfach die Basis-URL und Ihren QNP-Schlüssel.

Python

pip install openai
from openai import OpenAI

client = OpenAI(
    base_url="https://qnp.ai/api/v1",
    api_key="YOUR_KEY"
)

response = client.chat.completions.create(
    model="openai/gpt-4o-mini",  # routes to your fallback chain
    messages=[{"role": "user", "content": "Hello!"}]
)
print(response.choices[0].message.content)

Node.js

npm install openai
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://qnp.ai/api/v1",
  apiKey: "YOUR_KEY",
});

const response = await client.chat.completions.create({
  model: "openai/gpt-4o-mini", // routes to your fallback chain
  messages: [{ role: "user", content: "Hello!" }],
});
console.log(response.choices[0].message.content);

LangChain

Python
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    base_url="https://qnp.ai/api/v1",
    api_key="YOUR_KEY",
    model="openai/gpt-4o-mini"  # routes to your fallback chain
)
response = llm.invoke("Hello!")
print(response.content)

Cline-Einrichtung

Cline is an AI-powered VS Code coding assistant. QNP works as Cline's API provider.

Steps

  1. Open Cline settings (click the gear icon).
  2. Set API Provider to OpenAI Compatible.
  3. Base URL: {url}.
  4. API Key: Your QNP key (starts with qnp-).
  5. Model: Use {model} (or any other supported model). Pass qnp/auto if you want QNP to pick from your fallback chain.

Tip: configure your API key provider chain in Dashboard → API Keys. The qnp/auto model uses the first model in that chain; if it fails, the next is tried automatically.

Troubleshooting

  • 400 invalid_request_error: Ensure your key has at least one provider in its fallback chain. Add Anthropic or OpenAI in Dashboard → Keys → Routing.
  • Invalid API Key: Confirm the key starts with qnp- and is active.
  • Base URL: Must end with /v1 (no trailing slash).

Setup-Skript

Das Setup-Skript erkennt und konfiguriert automatisch OpenClaw, Claude Code und Hermes Agent. Verwenden Sie QNP als Modell-Provider für einheitliches Fallback und BYOK.

Das Setup-Skript fragt Sie interaktiv nach Ihrem API-Schlüssel und der Basis-URL.

bash
curl -fsSL https://qnp.ai/setup.sh | bash

Was das Skript macht

  • Erkennt installierte Tools (OpenClaw, Claude Code, Hermes Agent) und konfiguriert QNP als Provider für jedes.
  • Setzt input: ["text","image","audio","video"] für alle Modelle.
  • Erstellt vor Änderungen eine Sicherungskopie.