NL ▾
API-sleutel aanvragen

Snelstart voor OpenRouter NSFW-gebruikers

Integreer onze ongecensureerde LLM API in je bestaande codebase door de base URL en API-sleutel bij te werken. Deze gids behandelt de standaard OpenAI-compatible endpoints, streaming en constraint-handling voor directe ontwikkelaars.

Basis-URL en authenticatie

Vervang de base URL van je huidige provider door https://api.openrouternsfw.com/v1. Authenticatie gebruikt de standaard Authorization: Bearer <key> header. Je verkrijgt je sleutel direct na het aanmelden via Google of e-mail op de API-sleutel ophalen pagina. Er is geen telefoonnummer nodig en de sleutel wordt slechts één keer weergegeven, dus kopieer hem voordat je de pagina verlaat.

Onze service is een onafhankelijke API, geen doorverkoper van modellen van andere leveranciers. De model-id die je in verzoeken stuurt is uncensored, die op onze eigen servers draait. Het is afgestemd op het geven van antwoorden zonder inhoudsweigeringen voor wettelijk volwassen gebruik, maar het is geen GPT, Claude of enig ander benoemd leveranciersmodel.

Zorg dat je clientbibliotheek is geconfigureerd om deze nieuwe base URL te gebruiken. Alle verzoeken moeten een geldige API-sleutel in de header bevatten. Als de sleutel ontbreekt of ongeldig is, retourneert de server een 401-fout. Als je geen prepaid tegoed hebt, ontvang je een 402-fout. Dit zijn standaard HTTP-statuscodes die authenticatie- of betalingsproblemen aangeven, geen serverfouten.

Chat Completies Endpoint

De kernfunctionaliteit wordt geleverd via het POST /v1/chat/completions endpoint. Dit endpoint accepteert een JSON-verzoekbody met de modelnaam, messages-array en optionele parameters. Het retourneert een JSON-object met de gegenereerde tekst, tokenverbruikstatistieken en finish reason. Deze structuur is compatibel met de officiële OpenAI SDK's en de meeste OpenAI-compatibele client libraries.

Je hoeft geen aangepaste HTTP-clients te schrijven als je liever een SDK gebruikt. Je moet wel de configuratie aanpassen om naar onze base URL te verwijzen. Het volgende voorbeeld toont een standaard completion request met cURL. Dit verzoek stuurt een prompt naar het ongecensureerde model en verwacht een tekstantwoord.

curl https://api.openrouternsfw.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
  }'

Onthoud dat deze API alleen tekst levert. Er zijn geen embeddings-, afbeeldings-, audio- of video-generatie-endpoints. Als je applicatie multimodale inputs of outputs vereist, moet je die apart afhandelen. Onze service richt zich uitsluitend op hoogwaardige tekstgeneratie met een ongecensureerd model.

Python SDK-integratie

Het gebruik van de Python SDK vereenvoudigt het integratieproces. Initialiseer de client met de juiste base URL en je API-sleutel. De bibliotheek verwerkt de HTTP-verzoeken en JSON-parsing voor je. Je kunt de model-id specificeren als uncensored om zeker te weten dat je ons specifieke model gebruikt.

from openai import OpenAI

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

resp = client.chat.completions.create(
    model="uncensored",
    messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)

Deze codefragmenten tonen hoe je een bericht verstuurt en het antwoord ophaalt. De client verwerkt automatisch de verbinding en foutmeldingen. Als de server een fout retourneert, gooit de SDK een uitzondering. Je moet deze uitzonderingen afhandelen in je applicatielogica om een betere gebruikerservaring te bieden.

De Python SDK is slechts één optie. Je kunt elke taal gebruiken die HTTP-verzoeken ondersteunt. De endpoint-structuur blijft hetzelfde, ongeacht de client die je kiest. Deze flexibiliteit stelt je in staat het ongecensureerde model in elke bestaande workflow te integreren zonder significante codeaanpassingen.

Node SDK-gebruik

De Node SDK werkt vergelijkbaar met de Python-versie. Configureer de client met de base URL en API-sleutel en roep vervolgens de chat completions-methode aan. Deze aanpak is ideaal voor server-side applicaties of backend services die tekst asynchroon moeten genereren.

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://api.openrouternsfw.com/v1", apiKey: process.env.API_KEY });

const resp = await client.chat.completions.create({
  model: "uncensored",
  messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);

Node.js-ontwikkelaars kunnen deze API eenvoudig integreren in hun bestaande projecten. De SDK verwerkt de serialisatie en deserialisatie van JSON-gegevens. Je kunt ook extra parameters specificeren zoals temperature of top_p om de willekeurigheid van de output te sturen.

Zorg ervoor dat je de asynchrone aard van de verzoeken correct afhandelt. Gebruik async/await of Promise chains om de responsgegevens te beheren. Dit zorgt ervoor dat je applicatie responsief blijft terwijl je wacht op de gegenereerde tekst van het model. De Node SDK is een betrouwbare keuze voor het bouwen van schaalbare text generation services.

Streamingresponsen

Schakel streaming in door de stream parameter op true te zetten in je verzoek. De server stuurt een reeks Server-Sent Events (SSE) in plaats van een enkel JSON-antwoord. Elk evenement bevat een gedeeltelijk stuk van de gegenereerde tekst.

stream = client.chat.completions.create(
    model="uncensored",
    messages=[{"role": "user", "content": "Tell the story in second person."}],
    stream=True,
)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)

Streaming is nuttig voor realtime-applicaties waarbij je de output wilt weergeven terwijl deze wordt gegenereerd. Het laatste stuk van de stream bevat het totale token-gebruik voor het verzoek. Hiermee kun je kosten nauwkeurig bijhouden zonder te wachten tot het hele antwoord compleet is.

Verwerk de stream-events zorgvuldig om ervoor te zorgen dat de tekst correct wordt samengesteld. Voeg de chunks samen in de volgorde waarin ze worden ontvangen. De server garandeert dat de chunks in volgorde worden verzonden. Als de verbinding wordt onderbroken, moet je mogelijk het verzoek opnieuw proberen. Streaming is een krachtige functie die de gebruikerservaring bij tekstgeneratietaken verbetert.

Rate Limits en Contextvenster

Elke API-sleutel is beperkt tot 300 verzoeken per minuut en 8 gelijktijdige verzoeken. De grootte van het verzoeklichaam is beperkt tot 8 MB. Als je deze limieten overschrijdt, retourneert de server een 429-statuscode. Dit is een standaard HTTP-statuscode die aangeeft dat je te veel verzoeken hebt gestuurd binnen een bepaalde tijdswindow. Je moet exponentiële backoff in je client implementeren om deze fouten soepel af te handelen.

Het contextvenster ondersteunt tot 100,000 tokens voor de gecombineerde prompt en voltooiing. Er is geen aparte uitvoergrens. Als je de max_tokens parameter niet specificeert, kan de respons tot het einde van het venster lopen. Je kunt de uitvoerlengte beperken door max_tokens op een lagere waarde in te stellen.

Monitor je token-gebruik om je prepaid tegoed effectief te beheren. Fouten en refusaties verbruiken geen tokens, dus je wordt niet gefactureerd voor mislukte verzoeken. Dit zorgt ervoor dat je alleen betaalt voor succesvolle tekstgeneratie. Houd je rate limits in de gaten om onderbrekingen in je service te voorkomen.

Technische specificaties

Alle echte limieten en functies van de API op één plek — controleer ze voordat je opwaardeert.

OnderdeelWaarde
API-formaatOpenAI-compatibel: elke OpenAI-SDK werkt — vervang alleen base URL en sleutel
AuthenticatieAuthorization: Bearer YOUR_KEY
EndpointsPOST /v1/chat/completions · GET /v1/models
Base URLhttps://api.openrouternsfw.com/v1
Model-IDuncensored
JSON-modusresponse_format: {"type": "json_object"}
Max. uitvoertot de rest van het venster van 100.000 tokens; max_tokens optioneel (geen aparte limiet)
Contextvenster100.000 tokens (invoer + uitvoer)
Parameterstemperature, top_p, stop, seed, presence_penalty, frequency_penalty
Function callingja — tools, tool_choice; antwoorden bevatten tool_calls, ook bij streaming; resultaten als role: tool
Streamingja — server-sent events; het laatste deel bevat het tokenverbruik
ResponsheadersX-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency
Verzoekgroottetot 8 MB
Gelijktijdige verzoekentot 8 tegelijk per sleutel
Rate limit300 verzoeken per minuut per sleutel
OpwaarderenUSDT (TRC20) of USDC (Base), elk heel bedrag van $20 tot $500
Geldigheidbetaald tegoed verloopt niet, geen abonnement
Afrekeningprepaid tegoed op basis van echt verbruik; fouten en weigeringen zijn gratis
Gratis proeftegoed$0,50 voor 7 dagen, zonder kaart · Proefsleutel: 2 parallelle verzoeken, 60 per minuut; volledige limieten (8 en 300) na eerste opwaardering
Bonus+5% vanaf $50, +10% vanaf $100, +15% vanaf $200
Prijs$0,15 per 1 mln invoertokens · $0,50 per 1 mln uitvoertokens
Inhoudinhoud voor volwassenen toegestaan; seksuele inhoud met minderjarigen wordt geweigerd
InloggenGoogle of e-mail en wachtwoord
Sleutelséén actieve sleutel per account; een nieuwe vervangt de oude

Foutcodes

Fouten komen als JSON met een vaste type; mislukte of geweigerde verzoeken kosten niets.

CodeTypeBetekenis
400bad_requestongeldige JSON, lege berichten, verkeerde parameter of context te lang
401missing_key · invalid_key · key_revokedsleutel ontbreekt, is onjuist of is vervangen
402no_creditgeen tegoed — waardeer op en ga direct verder
403content_blockedseksuele inhoud met minderjarigen — geweigerd, niet gerekend
404not_foundonbekend endpoint
413request_too_largebody groter dan 8 MB
429rate_limited · concurrencymeer dan 300/min of 8 tegelijk — wacht en probeer opnieuw
503upstream_busymodel bezet — probeer het over enkele seconden opnieuw

Vragen en antwoorden

Hoe verschilt het ongecensureerde model van die van andere aanbieders?

Ons model is een open-weight model dat op onze eigen servers draait, afgestemd op het geven van antwoorden zonder inhoudsweigeringen voor wettelijk volwassen gebruik. Het is geen GPT, Claude, Gemini, Grok, DeepSeek, Qwen, Llama of enig ander model van een andere leverancier. We routeren niet tussen leveranciers; we bedienen één ongecensureerd endpoint.

Wat gebeurt er als ik de rate limit overschrijd?

Als je meer dan 300 verzoeken per minuut of 8 gelijktijdige verzoeken per sleutel overschrijdt, retourneert de server een 429-statuscode. Dit is een standaard HTTP-statuscode die aangeeft dat je te veel verzoeken hebt gestuurd binnen een bepaalde tijdswindow. Je moet backoff-logica in je client implementeren om deze fouten af te handelen.

Ondersteunt de API function calling en JSON-modus?

Ja, de API ondersteunt function calling (tools, tool_choice) en JSON-modus (response_format json_object). Je kunt ook parameters zoals temperature, top_p, stop, seed, presence_penalty en frequency_penalty specificeren om de output te sturen.

Je sleutel is nog maar één formulier verwijderd

Maak een account aan, kopieer de sleutel, pas de base URL aan. Dat is de hele setup.

API-sleutel aanvragen