Snelstart: Eerste verzoek
Wijs je client eerst naar onze basis-URL. Gebruik https://api.grockapi.com/v1 en stel je API-sleutel in de header. De modelidentifier is altijd uncensored.Dit werkt met elke OpenAI-compatible SDK.
Authenticatie vereist een geldig Bearer-token. Voer het als Authorization: Bearer YOUR_API_KEY. Als de sleutel ontbreekt of ongeldig is, ontvang je onmiddellijk een 401-fout.
Maak je eerste call om de connectiviteit te testen. De request body moet de modelnaam en een messages-array bevatten.
Ondersteunde parameters en modi
Configureer het generatiegedrag met standaardparameters. Je kunt de temperatuur aanpassen voor creativiteit of top_p voor nucleus sampling. Gebruik de stop-parameter om specifieke sequenties te definiëren die de generatie stoppen.
Stel seed in voor deterministische uitvoer tijdens foutopsporing. Presence- en frequency-penalties helpen herhaling te verminderen. Het model ondersteunt maximaal 100.000 tokens in het contextvenster.
De maximale uitvoer is doorgaans 16.000 tokens per verzoek. Laat max_tokens ongesteld om de standaard limiet van 2.048 uitvoer te gebruiken. Fouten en weigeringen verbruiken geen tegoed.
Streaming en Token-gebruik
Activeer streaming door stream: true. De API retourneert chunks via Server-Sent Events (SSE). Elke chunk bevat gedeeltelijke inhoud en metadata.
Tokenverbruiksgegevens verschijnen in de laatste chunk. Dit stelt je in staat kosten nauwkeurig in realtime te volgen. De laatste chunk bevat de volledige verbruiksstatistieken voor het verzoek.
Verwerk de streamsluiting correct om resourcelekken te voorkomen. Verwerk altijd het laatste blok om accurate facturatiegegevens te krijgen.
Functiedaanroep (Tools)
Definieer tools in de request body. Specificeer toolnamen, beschrijvingen en parameterschema's. Het model reageert met toolaanroepen wanneer dit gepast is.
Gebruik de tool_choice-parameter om specifiek gedrag af te dwingen of toe te staan. Je kunt het instellen op auto, required of specifieke tool-IDs.
Verwerk toolaanroepen in je applicatielogica. Stuur de tooloutput terug naar het model om het gesprek voort te zetten. Dit maakt complexe multi-step workflows mogelijk zonder externe parsering.
JSON-modus en beperkingen
Forceer gestructureerde uitvoer door response_format in te stellen op json_object. Het model retourneert JSON zonder markdown-codeblokken.
Deze modus is ideaal voor het parseren van gegevens in applicaties. Zorg ervoor dat je schema duidelijk is om de nauwkeurigheid te verbeteren. Ongeldige JSON-structuren kunnen parserfouten in je client veroorzaken.
Combineer JSON-modus met temperatuurcontroles voor consistente opmaak. Gebruik stopsequentie om achterloopkarakters na de sluitende haakje te voorkomen.
Rate Limits en quota
Elke API-sleutel is beperkt tot 300 verzoeken per minuut. U kunt maximaal 8 gelijktijdige verzoeken uitvoeren. De maximale grootte van de request body is 8 MB.
Een 429-fout geeft aan dat u de rate limit heeft overschreden. Wacht voordat u opnieuw probeert of verlaag uw concurrency. Er bestaat één actieve sleutel per account; het genereren van een nieuwe sleutel vervangt de oude.
Monitor je gebruik via de laatste streaming chunk of response headers. Fouten zoals 402 (geen tegoed) of 401 (ongeldige sleutel) zijn gratis en tellen niet mee voor je quota.
cURL
curl https://api.grockapi.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "calculate the sum of two and three"}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.grockapi.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)Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.grockapi.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);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)