Vereisten
Voor gebruik van de apertus API heb je een account en een API-sleutel nodig. Meld je aan via Google of e-mail op de pagina API-sleutel ophalen. Je ontvangt direct een sleutel; er is geen telefoonnummer nodig. Wil je eerst testen? Elk nieuw account krijgt $0,50 aan gratis proeftegoed dat 7 dagen geldig is. Voor de proefversie heb je geen kaart nodig. Voor productie laad je op met crypto (USDT op TRC20 of USDC op Base). Het tegoed vervalt nooit en fouten verbruiken geen saldo. Je krijgt één actieve sleutel per account; het genereren van een nieuwe vervangt de oude. Bewaar je sleutel veilig en stuur deze mee in de Authorization header als een bearer token. De API is strikt tekstgebaseerd en biedt toegang tot één ongecensureerd model, geoptimaliseerd voor antwoorden zonder inhoudelijke weigeringen.
Base URL en Authenticatie
Stuur alle verzoeken naar https://api.apertus.cc/v1. Deze basis-URL werkt met de officiële OpenAI SDKs en elke compatibele client door simpelweg de endpoint aan te passen. Voeg je API-sleutel toe aan de header: Authorization: Bearer YOUR_API_KEY. Het enige ondersteunde endpoint is POST /v1/chat/completions. Een GET /v1/models endpoint is ook beschikbaar om de verbinding te verifiëren. De te gebruiken model-ID is uncensored. Dit is een open-weight model dat op onze servers draait, en verschilt van GPT, Claude of andere leveranciers. Het verwerkt tekstinput en retourneert tekstoutput. Verwacht geen embeddings, afbeeldingen of audio. De API is ontworpen voor ontwikkelaars die een eenvoudige integratie willen zonder de complexiteit van modelrouting.
Eerste Verzoek
Stuur een eenvoudig completion-verzoek om je setup te verifiëren. Gebruik het curl commando om een POST uit te voeren naar het chat-completions endpoint. Stel het model in op uncensored en voeg een eenvoudige boodschap toe. Dit bevestigt dat je API-sleutel werkt en de basis-URL correct is. Je kunt parameters aanpassen zoals temperature of max_tokens naar behoefte. Het antwoord bevat de tekstoutput van het model. Als je een 401-fout krijgt, controleer dan je sleutel. Een 402-fout betekent onvoldoende tegoed. Een 429-fout betekent dat je de rate limit hebt bereikt. Dit eenvoudige verzoek toont de ruwe API-toegang zonder middleware. Het is de snelste manier om je integratie te valideren voordat je complexere logica bouwt.
Python-integratie
Gebruik de officiële openai Python SDK om met de API te communiceren. Initialiseer de client met de base URL https://api.apertus.cc/v1 en je API-sleutel. Stel het model in op uncensored. Stuur berichten als een lijst van dictionaries. De SDK verwerkt serialisatie en foutparsen automatisch. Deze aanpak is ideaal voor backenddiensten of scripts voor gegevensverwerking. Je kunt antwoorden streamen of volledige blokken ontvangen. De clientcode is identiek aan die voor OpenAI, alleen met een andere base URL. Dit vermindert wrijving bij het overschakelen van andere providers. Zorg voor de nieuwste SDK-versie voor de beste compatibiliteit. De integratie is minimaal en vereist alleen configuratiewijzigingen in je bestaande clientsetup.
Node.js-integratie
Voor JavaScript- of TypeScript-omgevingen gebruik je het openai npm-pakket. Configureer de client met dezelfde base URL en sleutel als in Python. Roep chat.completions.create() aan met het uncensored model. Geef je berichten door in het standaardformaat. Dit werkt goed voor serverless functies of Node.js-backends. De SDK beheert de HTTP-verzoeken en responsparsen. Je kunt fouten afhandelen door de responsstatus te controleren. De code blijft draagbaar over verschillende OpenAI-compatibele diensten. Dit maakt het eenvoudig om van provider te wisselen indien nodig. De Node.js-integratie ondersteunt zowel synchronische als asynchrone patronen. Gebruik het voor het bouwen van API's, bots of geautomatiseerde workflows die ongecensureerde tekstgeneratie vereisen.
Streaming-antwoorden
Schakel streaming in door stream: true in je verzoek in te stellen. De API retourneert tekstfragmenten zodra ze gegenereerd zijn. Dit verbetert de waargenomen latentie voor lange antwoorden. Elk fragment bevat een deel van de voltooiing. Het laatste fragment bevat statistieken over het token-gebruik. Streaming wordt ondersteund via Server-Sent Events (SSE). Gebruik de streaming-helpers van de SDK om fragmenten efficiënt te verwerken. Dit is handig voor chatinterfaces of realtime-toepassingen. Houd er rekening mee dat streaming hetzelfde aantal tokens verbruikt als niet-streaming. Fouten kunnen tijdens het streamen optreden, dus verwerk onderbrekingen. Het ongecensureerde model ondersteunt streaming standaard. Deze functie stelt je in staat tekst incrementeel weer te geven. Het is een standaardfunctie in moderne LLM-APIs. Zorg dat je clientcode gedeeltelijke antwoorden correct verwerkt.
Limieten, Fouten en Context
Het contextvenster is 100.000 tokens in totaal, inclusief prompt en voltooiing. Maximaal 32.000 tokens uitvoer per verzoek, of 2.048 als max_tokens niet is ingesteld. Rate limits zijn 300 verzoeken per minuut en 8 gelijktijdige verzoeken per sleutel. Verzoeklichamen moeten kleiner zijn dan 8 MB. Veelvoorkomende fouten zijn 401 voor ongeldige sleutels, 402 voor geen tegoed, en 429 voor rate limits. Het model weigert seksuele inhoud met minderjarigen. Het weigert andere wettelijke volwassen, fictieve of controversiële onderwerpen niet. Prijzen zijn transparant: $0,25 per 1M invoertokens en $1,00 per 1M uitvoertokens. Fouten zijn gratis.tegoed is prepaid en vervalt nooit. Gebruik deze limieten om de schaal van je applicatie te plannen. De API is ontworpen voor hoogvolume, kostenefficiënte tekstgeneratie.
cURL
curl https://api.apertus.cc/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."}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.apertus.cc/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)Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.apertus.cc/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);Streaming
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)