API Character AI: Cambia client in tre righe
Collega il tuo chatbot a un LLM senza censura in pochi minuti usando la nostra API compatibile con OpenAI. Questa guida mostra la configurazione, le richieste di base e lo streaming senza problemi di configurazione.
https://api.characteraiapi.com/v1
Prerequisiti
Prima di scrivere codice, hai bisogno di un account attivo su characteraiapi.com. Visita la pagina Ottieni chiave API e registrati con solo email e password. Non è richiesta una carta di credito per iniziare e i nuovi account ricevono $0,50 di credito di prova valido per 7 giorni. Una volta registrato, la tua chiave API viene visualizzata immediatamente. Conserva questa chiave in modo sicuro, poiché autentica tutte le richieste all'endpoint. Avrai anche bisogno di un SDK per il linguaggio supportato installato nel tuo ambiente di sviluppo. L'endpoint character ai api accetta parametri standard OpenAI, quindi qualsiasi client compatibile con OpenAI può funzionare con modifiche minime.
Installa l'SDK
Per i progetti Python, installa il pacchetto ufficiale OpenAI usando pip. Questa libreria gestisce automaticamente la serializzazione JSON e le richieste HTTP. Per le applicazioni Node.js, usa npm per aggiungere il pacchetto openai. Entrambe le librerie supportano le funzionalità di streaming e chiamata di strumenti descritte più avanti in questa guida. Assicurati che la versione dell'SDK sia recente abbastanza da supportare gli eventi inviati dal server (SSE) per lo streaming dei token in tempo reale. Se usi un client HTTP personalizzato invece di un SDK, devi gestire manualmente il payload JSON e l'analisi dello stream SSE secondo la specifica dell'API OpenAI.
Autenticazione
Ogni richiesta all'API deve includere la tua chiave API nell'intestazione Authorization. Usa il formato Bearer YOUR_API_KEY. L'URL di base per tutte le richieste è https://api.characteraiapi.com/v1. Quando usi un SDK, imposta la configurazione base_url su questo valore e fornisci la tua chiave tramite il parametro api_key. Se perdi la chiave o sospetti una perdita, puoi rigenerarla dal dashboard; la vecchia chiave verrà revocata immediatamente. È consentita solo una chiave attiva per account. Assicurati di utilizzare l'URL di base corretto, poiché le richieste all'endpoint standard OpenAI falliranno con un errore 404 o 401.
Completamento chat di base
La funzionalità principale è servita tramite l'endpoint /v1/chat/completions. Invia una richiesta POST con il nome del modello uncensored e la cronologia dei messaggi. Il modello risponde con un output testuale senza applicare i filtri standard sui contenuti per i contenuti adulti leciti. Di seguito è riportato un esempio curl che dimostra una semplice richiesta di completamento del testo.
curl https://api.characteraiapi.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."}]
}'
Questa richiesta restituisce un oggetto di completamento contenente il testo generato. Puoi regolare parametri come temperature per controllare la casualità o max_tokens per limitare la lunghezza dell'output. Il modello supporta una finestra di contesto di 100.000 token, consentendo di elaborare una cronologia di conversazioni sostanziale o documenti lunghi in una singola richiesta.
Risposte in streaming
Per una migliore esperienza utente, abilita lo streaming impostando stream: true nella tua richiesta. L'API restituisce eventi inviati dal server (SSE) contenenti chunk di token parziali man mano che vengono generati. Questo riduce la latenza percepita per le applicazioni chatbot. Usa il parametro stream_options se vuoi ricevere le statistiche di utilizzo finali nell'ultimo evento. Lo streaming è particolarmente utile per il roleplay di personaggi in tempo reale, dove la visualizzazione del testo parola per parola migliora l'immersione. Assicurati che il codice del client gestisca correttamente il formato SSE per analizzare ogni chunk in sequenza.
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)
Limiti di richiesta ed errori
L'API impone un limite di 300 richieste al minuto per chiave. Se superi questo limite, riceverai un errore 429 Too Many Requests. I corpi delle richieste sono limitati a 8 MB. Gli errori comuni includono 401 per una chiave non valida o mancante, e 402 se il tuo credito prepagato è esaurito. Puoi ricaricare a partire da $10 utilizzando criptovalute (USDT o USDC), con crediti bonus disponibili per depositi più grandi. A differenza di alcuni provider, non ci sono commissioni nascoste o blocchi di abbonamento; paghi solo per i token che consumi. I prezzi sono trasparenti: $0,25 per 1M di token di input e $1,00 per 1M di token di output. Assicurati che la logica di gestione degli errori riprovi in caso di 429 con un backoff esponenziale.
from openai import OpenAI
client = OpenAI(base_url="https://api.characteraiapi.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.characteraiapi.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);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 |
| Autenticazione | Authorization: Bearer YOUR_KEY |
| Base URL | https://api.characteraiapi.com/v1 |
| ID modello | uncensored |
| Modalità JSON | response_format: {"type": "json_object"} |
| 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 |
| Finestra di contesto | 100.000 token (input + output) |
| Streaming | sì — server-sent events; l'ultimo blocco riporta l'uso dei token |
| Function calling | sì — tools, tool_choice; risposte con tool_calls anche in streaming; risultati come role: tool |
| Dimensione | fino a 8 MB per richiesta |
| Header | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| Concorrenza | 8 richieste contemporanee per chiave |
| Limite di frequenza | 300 richieste al minuto per chiave |
| 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 |
| Prezzo | $0,25 per 1M token in input · $1,00 per 1M in output |
| Fatturazione | credito prepagato in base all'uso reale; errori e rifiuti gratuiti |
| 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 |
| 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 |
Domande e risposte
È l'API ufficiale di Character.ai?
No, questo è un servizio indipendente ospitato su characteraiapi.com. Offre il proprio modello senza censura e non è affiliato a Character.AI o ad altri principali fornitori di LLM.
Il modello supporta la generazione di immagini o audio?
No. L'API è solo per il testo. Accetta input testuali e restituisce output testuali. Non supporta embedding, fine-tuning o input/output multimodali.
Come viene definito "senza censura"?
Il modello non rifiuta argomenti legali per adulti, di finzione o controversi. Blocca solo i contenuti sessuali che coinvolgono minori, che è un limite rigido applicato a tutte le richieste.
La tua chiave è a un modulo di distanza
Crea un account, copia la chiave, cambia l'URL di base. È tutta qui la configurazione.