Autenticazione & URL di Base
La tua chiave API autentica ogni richiesta. Genera una chiave tramite la dashboard utilizzando Google o email; non è richiesto alcun numero di telefono. Utilizza questa chiave nell' Authorization header. L'URL base per tutte le richieste è HTTPS://api.modelsnsfw.com/v1. Questo endpoint funziona con qualsiasi client compatibile con OpenAI semplicemente modificando l'URL di base e fornendo la tua chiave.
curl https://api.modelsnsfw.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "List all available nsfw model tiers and their monthly costs."}]
}'
Endpoint Chat Completions
Invia testo e ricevi testo tramite POST /v1/chat/completions. L'ID del modello è uncensored. È un modello open-weight ottimizzato per nessun rifiuto sui contenuti adulti legali. Non è GPT, Claude o qualsiasi altro modello di un fornitore. I token di input costano $0.15 per milione; i token di output costano $0.50 per milione. Gli errori sono gratuiti.
from openai import OpenAI
client = OpenAI(base_url="https://api.modelsnsfw.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)
Risposte in streaming (SSE)
Abilita lo streaming impostando stream: true. L'API restituisce Server-Sent Events (SSE) con l'utilizzo dei token nell'ultimo chunk. Questo è ideale per le interfacce di chat in tempo reale. Ricevi i token parziali immediatamente. Questo riduce significativamente la latenza percepita per l'utente.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.modelsnsfw.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);
Function Calling & JSON Mode
Usa response_format: {"type": "json_object"} per output strutturato. Puoi anche definire strumenti per il function calling. Il modello supporta temperature, top_p, stop, e seed parametri. Questo garantisce risultati deterministici quando necessario. La modalità JSON forza l'output in formato JSON valido.
Limiti di frequenza e vincoli
Hai un limite di 300 richieste al minuto per chiave. Solo 8 richieste possono essere eseguite simultaneamente. Il corpo della richiesta non deve superare gli 8 MB. Se invii troppe richieste, ricevi un errore 429. Le chiavi non valide restituiscono 401. Il credito insufficiente restituisce 402. Gli errori durante l'elaborazione non consumano il tuo credito prepagato.
Utilizzo dei Token e Fatturazione
La finestra di contesto è di 100.000 token in totale. L'output massimo è di 16.000 token per richiesta. Se max_tokens è non impostato, il valore predefinito è 2.048. I crediti sono prepagati e non scadono. I ricarichi sono solo in criptovalute (USDT/TRC20 o USDC/Base). Il credito bonus si applica per ricariche più grandi. Non è richiesto alcun abbonamento.
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)