chatbotapis.comDocumentazione
Guida rapida all'API Chatbot
Inizia con l'API Chatbot in pochi minuti. Questa guida copre l'autenticazione, le richieste di base, lo streaming e la chiamata di funzioni utilizzando il nostro endpoint compatibile con OpenAI.
URL di base e Autenticazione
Sostituisci l’URL base standard di OpenAI con https://api.chatbotapis.com/v1 per instradare le richieste verso il nostro LLM senza censura. L’autenticazione avviene tramite una chiave API standard passata nell’intestazione Authorization. La chiave viene generata immediatamente dopo la registrazione nella pagina Ottieni chiave API ed è associata a un singolo account. Puoi rigenerare la chiave in qualsiasi momento, revocando istantaneamente quella precedente. Non serve una carta di credito per iniziare e il credito di prova dura 7 giorni.
Richiesta di completamento di base
Invia una richiesta standard chat/completions per ottenere un output testuale. L'ID del modello è sempre uncensored. Questa API supporta input e output testuali con una finestra di contesto di 100.000 token. Usa questo endpoint per interazioni dirette con LLM senza embeddings o generazione di immagini.
curl https://api.chatbotapis.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."}]
}'La risposta include il testo generato nel campo content. Se la tua chiave non è valida, ottieni un errore 401. Se non hai credito prepagato, ottieni un errore 402.
Avvio rapido SDK Python
Installa la libreria ufficiale Python di OpenAI e puntala al nostro URL di base. Questo ti permette di utilizzare lo stesso SDK che già conosci per OpenAI, ma di accedere direttamente al nostro modello senza censura. Imposta api_key e base_url prima di effettuare le richieste.
from openai import OpenAI
client = OpenAI(base_url="https://api.chatbotapis.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)Questa configurazione funziona sia per i completamenti semplici che per la chiamata di funzioni complessa. L'SDK gestisce automaticamente la formattazione JSON. Ricorda che i prompt non vengono utilizzati per addestrare i dati del tuo account.
Integrazione SDK Node.js
Per gli sviluppatori JavaScript, l'SDK OpenAI per Node.js funziona identicamente. Inizializza il client con la tua chiave e l'URL base specifico per ChatBotApis. Questo è utile per costruire servizi backend o funzioni serverless che necessitano dell'output grezzo del LLM.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.chatbotapis.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);Assicurati di gestire correttamente gli errori. Un codice di stato 429 indica che hai raggiunto il limite di richieste di 300 al minuto. Un errore 400 indica solitamente un corpo della richiesta non valido o il superamento del limite di 8 MB.
Risposte in streaming tramite SSE
Usa gli eventi inviati dal server (SSE) per la generazione di testo a bassa latenza. Imposta stream: true nella richiesta. L’API restituisce blocchi di testo man mano che vengono generati, consentendo alla tua applicazione di visualizzare i token in tempo reale. Questo riduce significativamente la latenza percepita rispetto all’attesa della risposta completa.
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)La modalità streaming funziona sia con gli SDK Python che Node.js. È ideale per le interfacce chat dove gli utenti si aspettano feedback istantanei. La finestra di contesto si applica ancora ai token totali del prompt più del completamento.
Limiti di richiesta, errori e contesto
La nostra API applica limiti rigorosi per garantire la stabilità. Hai diritto a 300 richieste al minuto per chiave. La dimensione massima del corpo della richiesta è 8 MB. Se superi il limite, ricevi un errore 429. La finestra di contesto è di 100.000 token, contando sia input che output. Questo modello è senza censura per uso adulto legale ma blocca i contenuti sessuali che coinvolgono minori. Non ci sono garanzie SLA o certificazioni, ma i prezzi sono trasparenti e il credito prepagato non scade mai.
Domande e risposte
È questa l'API ufficiale di OpenAI?
No. Siamo un servizio indipendente che utilizza il formato API compatibile con OpenAI. Il nostro modello è un modello a pesi aperti, non GPT-4 o GPT-3.5.
Come funzionano i crediti bonus?
Ricevi un credito bonus del +5% quando ricarichi $50 o più, e del +10% quando ricarichi $100 o più. I crediti vengono aggiunti al tuo saldo prepagato e non scadono mai.
Cosa succede se rigenero la mia chiave API?
La vecchia chiave viene revocata immediatamente e non può più essere utilizzata. La nuova chiave è valida istantaneamente. Non perdi alcun credito prepagato o la cronologia cambiando chiave.
La tua chiave è a un modulo di distanza
Crea un account, copia la chiave, modifica l'URL di base. È tutta qui la configurazione.
Ottieni la chiave APILeggi la documentazione
ChatBotApis
chatbotapis.com
Scheda tecnica dell'API
Tutti i limiti e le funzioni reali dell'API in un unico posto: controllali prima di ricaricare.
| Voce | Valore |
|---|---|
| Formato | compatibile OpenAI: qualsiasi SDK OpenAI funziona cambiando base URL e chiave |
| Endpoint | POST /v1/chat/completions · GET /v1/models |
| ID modello | uncensored |
| Autenticazione | Authorization: Bearer YOUR_KEY |
| Base URL | https://api.chatbotapis.com/v1 |
| Finestra di contesto | 100.000 token (input + output) |
| Modalità JSON | response_format: {"type": "json_object"} |
| Streaming | sì — server-sent events; l'ultimo blocco riporta l'uso dei token |
| Output massimo | fino al resto della finestra di 100.000 token; max_tokens opzionale (nessun limite separato) |
| Parametri | temperature, top_p, stop, seed, presence_penalty, frequency_penalty |
| Function calling | sì — tools, tool_choice; risposte con tool_calls anche in streaming; risultati come role: tool |
| Header | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| Dimensione | fino a 8 MB per richiesta |
| Limite di frequenza | 300 richieste al minuto per chiave |
| Concorrenza | 8 richieste contemporanee per chiave |
| Fatturazione | credito prepagato in base all'uso reale; errori e rifiuti gratuiti |
| Prezzo | $0,25 per 1M token in input · $1,00 per 1M in output |
| Prova gratuita | $0,50 per 7 giorni, senza carta · Chiave di prova: 2 richieste parallele, 60 al minuto; limiti completi (8 e 300) dopo la prima ricarica |
| Scadenza | il credito pagato non scade, nessun abbonamento |
| Bonus | +5% da $50, +10% da $100 |
| Ricarica | USDT (TRC20) o USDC (Base), qualsiasi importo intero da $10 a $500 |
| Chiavi | una chiave attiva per account; una nuova sostituisce la precedente |
| Accesso | Google oppure e-mail e password |
| Contenuti | contenuti per adulti consentiti; rifiutati i contenuti sessuali con minori |
Codici di errore
Gli errori arrivano in JSON con un type fisso; le richieste fallite o rifiutate non si pagano.
| Codice | Tipo | Significato |
|---|---|---|
400 | bad_request | JSON non valido, messaggi vuoti, parametro errato o contesto troppo lungo |
401 | missing_key · invalid_key · key_revoked | chiave mancante, errata o sostituita |
402 | no_credit | credito esaurito — ricarica e riparti subito |
403 | content_blocked | contenuti sessuali con minori — rifiutato, non addebitato |
404 | not_found | endpoint sconosciuto |
413 | request_too_large | corpo oltre 8 MB |
429 | rate_limited · concurrency | oltre 300/min o 8 in parallelo — attendi e riprova |
503 | upstream_busy | modello occupato — riprova tra pochi secondi |