Início rápido para usuários do Qwen
Conecte seu cliente compatível com OpenAI ao nosso endpoint sem censura. Altere a URL base, insira sua chave e comece a enviar requisições.
uncensoredhttps://api.qwenapi.cc/v1
Nesta página
Autenticação e URL Base
Nossa API usa autenticação padrão com token Bearer. Você recebe sua chave imediatamente após entrar via Google ou e-mail. Mantenha esta chave segura; ela fornece acesso ao seu crédito pré-pago. A URL base para todas as requisições é https://api.qwenapi.cc/v1. Atualize a configuração do seu cliente para apontar para este endpoint em vez da URL padrão do OpenAI.
A autenticação é feita passando o cabeçalho Authorization em cada requisição. Sem chave de API, o modelo não pode verificar o saldo da sua conta, resultando em erro 401. Não há cabeçalhos ocultos ou esquemas de autenticação personalizados necessários.
Primeira Requisição
Envie uma requisição padrão de conclusão de chat para testar a conectividade. Substitua YOUR_API_KEY pela sua chave real. O endpoint aceita payloads JSON padrão com campos model, messages e content.
- Identificador do modelo:
uncensored - Endpoint:
POST /v1/chat/completions - Formato: JSON
Esta requisição consumirá tokens de entrada do seu saldo. Certifique-se de que seu cliente processe a resposta JSON corretamente para verificar se a conexão está funcionando.
Integração com SDK Python
Use a biblioteca oficial da OpenAI para Python. Ela requer configuração mínima para rotear tráfego para nosso endpoint. Inicialize o cliente com sua chave e o URL base correto. Essa abordagem aproveita bases de código existentes sem reescrever a lógica de requisição.
Passe o ID do modelo uncensored ao criar a resposta. A biblioteca lida com serialização e desserialização automaticamente. Este método é recomendado para a maioria das integrações de backend e fluxos de trabalho baseados em scripts.
Integração com SDK Node.js
Para ambientes JavaScript ou TypeScript, use o @anthropic-ai/sdk ou o pacote padrão do OpenAI para Node. Configure a URL base para apontar para a nossa API. Isso permite que você integre nosso serviço em aplicativos Node existentes sem grandes refatorações.
Certifique-se de estar usando uma versão recente do SDK que suporte URLs base personalizadas. Passe o identificador do modelo uncensored para selecionar nosso modelo sem censura. Esta configuração funciona perfeitamente com rotas Express ou funções serverless.
Respostas em Streaming
Habilite o streaming definindo stream: true na sua requisição. A API retorna Server-Sent Events (SSE) conforme o modelo gera texto. Isso fornece menor latência para os usuários finais e permite a exibição em tempo real da saída.
As estatísticas de uso de tokens são incluídas no último fragmento do stream. Processe cada delta incrementalmente para construir a resposta completa. Este recurso é essencial para interfaces de chat e aplicativos que exigem feedback imediato.
Limites, Erros e Contexto
Respeite os limites de taxa para evitar interrupções no serviço. A API permite 300 requisições por minuto e 8 requisições simultâneas por chave. O tamanho máximo do corpo da requisição é 8 MB. Se você exceder esses limites, receberá um erro 429.
Erros de autenticação retornam 401, indicando uma chave inválida ou ausente. Erros de saldo retornam 402, significando que seu crédito pré-pago está esgotado. A janela de contexto suporta 100.000 tokens no total, com um máximo de 32.000 tokens de saída por requisição. Erros e recusas não consomem créditos.
cURL
curl https://api.qwenapi.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.qwenapi.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.qwenapi.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)Perguntas e respostas
Como lidar com o limite de requisições?
A API impõe um limite de 300 requisições por minuto e 8 requisições simultâneas por chave. Se você exceder esses limites, a API retornará o código de status 429. Implemente backoff exponencial no seu cliente para lidar com as novas tentativas de forma elegante.
A API suporta chamada de funções?
Sim, a API suporta chamada de funções via o formato padrão de ferramentas. Você pode especificar ferramentas e tool_choice na sua requisição para habilitar saída estruturada ou integração com ferramentas externas. Este recurso funciona com o esquema padrão compatível com OpenAI.
O que acontece se eu exceder minha janela de contexto?
O modelo suporta uma janela de contexto total de 100.000 tokens, incluindo prompt e conclusão. Se você exceder esse limite, a requisição falhará. Certifique-se de que seu aplicativo acompanhe o uso de tokens para permanecer dentro desses limites.
Sua chave está a um formulário de distância
Crie uma conta, copie a chave, altere a URL base. Essa é toda a configuração necessária.
Ficha técnica da API
Todos os limites e recursos reais da API em um só lugar — confira antes de recarregar.
| Item | Valor |
|---|---|
| Formato | compatível com OpenAI: qualquer SDK da OpenAI funciona trocando a base URL e a chave |
| ID do modelo | uncensored |
| Base URL | https://api.qwenapi.cc/v1 |
| Endpoints | POST /v1/chat/completions · GET /v1/models |
| Autenticação | Authorization: Bearer YOUR_KEY |
| Saída máxima | até o restante da janela de 100.000 tokens; max_tokens opcional (sem limite separado) |
| Chamada de funções | sim — tools, tool_choice; resposta com tool_calls, inclusive em streaming; resultados como role: tool |
| Streaming | sim — server-sent events; o último bloco traz o uso de tokens |
| Janela de contexto | 100.000 tokens (entrada + saída) |
| Parâmetros | temperature, top_p, stop, seed, presence_penalty, frequency_penalty |
| Modo JSON | response_format: {"type": "json_object"} |
| Concorrência | 8 requisições ao mesmo tempo por chave |
| Cabeçalhos | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| Limite de taxa | 300 requisições por minuto por chave |
| Tamanho | até 8 MB por requisição |
| Teste grátis | $0,50 por 7 dias, sem cartão · Chave de teste: 2 requisições paralelas, 60 por minuto; limites totais (8 e 300) após a primeira recarga |
| Cobrança | crédito pré-pago pelo uso real; erros e recusas são grátis |
| Preço | $0,25 por 1M tokens de entrada · $1,00 por 1M de saída |
| Bônus | +5% a partir de $50, +10% a partir de $100 |
| Validade | crédito pago não expira, sem assinatura |
| Recarga | USDT (TRC20) ou USDC (Base), qualquer valor inteiro de $10 a $500 |
| Conteúdo | conteúdo adulto permitido; conteúdo sexual com menores é recusado |
| Login | Google ou e-mail e senha |
| Chaves | uma chave ativa por conta; uma nova substitui a anterior |
Códigos de erro
Erros chegam em JSON com um type fixo; requisições com falha ou recusadas não são cobradas.
| Código | Tipo | Significado |
|---|---|---|
400 | bad_request | JSON inválido, mensagens vazias, parâmetro errado ou contexto longo demais |
401 | missing_key · invalid_key · key_revoked | chave ausente, errada ou substituída |
402 | no_credit | sem crédito — recarregue e continue na hora |
403 | content_blocked | conteúdo sexual com menores — recusado, sem cobrança |
404 | not_found | endpoint desconhecido |
413 | request_too_large | corpo acima de 8 MB |
429 | rate_limited · concurrency | acima de 300/min ou 8 em paralelo — aguarde e tente de novo |
503 | upstream_busy | modelo ocupado — tente em alguns segundos |