QwQ AI / API v1
Documentação da API
Integre respostas web, pesquisa avançada e financeira do QwQ AI. Use seu saldo aos mesmos preços do site.
Início rápido
Entre na conta, crie uma chave API no perfil e recarregue o saldo. Envie Authorization: Bearer QWQ_API_KEY. Guarde a chave em uma variável de ambiente do servidor.
export QWQ_API_KEY='qwq_your_key_here'
curl https://qwq32.com/api/v1/answer \
-H "Authorization: Bearer $QWQ_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "What causes the aurora borealis?"
}'URL base: https://qwq32.com/api/v1
APIs disponíveis
| Endpoint | Finalidade |
|---|---|
| POST /api/v1/answer | Respostas web rápidas com citações e resultados de busca. |
| POST /api/v1/research | Cinco níveis de pesquisa, controles de fontes e JSON estruturado. |
| POST /api/v1/finance_research | Pesquisa financeira nos níveis Deep e Exhaustive. |
| GET /api/v1/research/{task_id} | Recupere suas próprias tarefas em segundo plano. A consulta é gratuita. |
Parâmetros e exemplos
Answer
query é obrigatório, não vazio, máximo de 400 caracteres. Opcionais: freshness (day/week/month/year ou YYYY-MM-DDtoYYYY-MM-DD), country, language, safesearch e include_domains / exclude_domains / boost_domains. Cada lista admite 500 domínios. include_domains não pode ser combinado com as outras duas. Use códigos country e language compatíveis com You.com.
curl https://qwq32.com/api/v1/answer \
-H "Authorization: Bearer $QWQ_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "Recent advances in renewable energy",
"freshness": "month",
"language": "EN",
"safesearch": "moderate",
"include_domains": [
"energy.gov"
]
}'Research
input é obrigatório, não vazio, máximo de 40.000 caracteres. research_effort: lite, standard (padrão), deep, exhaustive, frontier. source_control admite listas de domínios, freshness e country com as mesmas restrições do Answer. background é opcional. Indique o idioma da resposta em input.
curl https://qwq32.com/api/v1/research \
-H "Authorization: Bearer $QWQ_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input": "Compare three battery technologies. Respond in Chinese.",
"research_effort": "deep",
"background": true,
"source_control": {
"freshness": "year",
"exclude_domains": [
"example.com"
]
}
}'output_schema opcional usa o subconjunto JSON Schema do You.com e retorna um objeto em output.content; lite não é compatível. A raiz deve ser object, todo objeto requer additionalProperties:false e todas as propriedades devem estar em required. O provedor valida estrutura, profundidade e limites; falhas são reembolsadas.
Finance Research
input é obrigatório, não vazio, máximo de 40.000 caracteres. research_effort admite apenas deep (padrão) e exhaustive. Finance é síncrono e pode levar cerca de seis minutos.
curl https://qwq32.com/api/v1/finance_research \
-H "Authorization: Bearer $QWQ_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input": "Analyze the latest NVIDIA earnings and cite sources.",
"research_effort": "deep"
}'Campos desconhecidos são rejeitados. O corpo admite até 180.000 bytes. Não é possível indicar usuário, preço ou chave do provedor.
Respostas síncronas
HTTP 200 preserva answer, citations e results do Answer e adiciona billing com custo, ID da solicitação e saldo após a cobrança. Valores em USD; uma unidade de saldo equivale a $0.0000001.
{
"answer": "A cited answer [[1]]",
"citations": [
{
"source": "https://example.com",
"excerpts": [
"Supporting evidence"
]
}
],
"results": {
"web": []
},
"billing": {
"request_id": "uuid",
"cost_usd": 0.02,
"cost_units": 200000,
"balance_usd": 9.98
}
}Research e Finance retornam output.content, output.content_type, output.sources e billing. A citação [[1]] corresponde à primeira fonte. Research estruturado retorna um objeto JSON em output.content.
Pesquisa em segundo plano
Research deep, exhaustive e frontier usam automaticamente o modo em segundo plano e retornam HTTP 202. Ative para lite / standard com background:true. Guarde o task_id do QwQ e recupere em 24 horas. Apenas o envio é cobrado; consultas são gratuitas.
{
"task_id": "qwq-task-uuid",
"status": "queued",
"expires_at": "2026-10-04T00:00:00.000Z",
"billing": {
"request_id": "qwq-task-uuid",
"cost_usd": 0.3,
"cost_units": 3000000,
"balance_usd": 9.7
}
}curl https://qwq32.com/api/v1/research/QWQ_TASK_ID \
-H "Authorization: Bearer $QWQ_API_KEY"Consulte a cada 5–15 segundos. Estados: submitting, queued, running, completed, failed. Leia result.output ao concluir; failed inclui QUERY_FAILED_REFUNDED. Qualquer chave ativa da conta proprietária pode recuperar a tarefa. Falhas temporárias permitem nova tentativa e não reembolsam tarefas em andamento.
{
"task_id": "qwq-task-uuid",
"status": "completed",
"expires_at": "2026-10-04T00:00:00.000Z",
"result": {
"output": {
"content": "A researched report [[1]]",
"content_type": "text",
"sources": [
{
"url": "https://example.com",
"title": "Source"
}
]
}
}
}Exemplos de integração no servidor
JavaScript / Node.js
const response = await fetch("https://qwq32.com/api/v1/answer", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.QWQ_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ query: "What causes the aurora borealis?" }),
});
const data = await response.json();
if (!response.ok) throw new Error(data.code);
console.log(data.answer, data.billing.cost_usd);Python / requests
import os
import requests
response = requests.post(
"https://qwq32.com/api/v1/finance_research",
headers={"Authorization": f"Bearer {os.environ['QWQ_API_KEY']}"},
json={"input": "Analyze NVIDIA earnings", "research_effort": "deep"},
timeout=370,
)
response.raise_for_status()
print(response.json()["output"]["content"])Preço por chamada
Preços usam a mesma configuração e saldo do site. A cobrança ocorre antes da execução, e falhas são reembolsadas uma única vez. Tarefas não concluídas que expirarem também são reembolsadas. Recarga mínima: $10. Sem assinaturas.
| Ferramenta / nível | Por chamada (USD) |
|---|---|
| answer | $0.02 |
| research / lite | $0.04 |
| research / standard | $0.15 |
| research / deep | $0.30 |
| research / exhaustive | $1.35 |
| research / frontier | $3.60 |
| finance / deep | $0.35 |
| finance / exhaustive | $1.50 |
Tratamento de erros
Erros retornam JSON com um campo code descrevendo a falha.
- 400 / 413
- INVALID_REQUEST / QUERY_TOO_LONG: Parâmetros inválidos ou corpo muito grande. Sem cobrança.
- 401
- INVALID_API_KEY: Chave ausente, incorreta ou revogada.
- 402
- INSUFFICIENT_BALANCE: Saldo insuficiente; o provedor não é chamado.
- 404 / 410
- JOB_NOT_FOUND / JOB_EXPIRED: Tarefa desconhecida, de outra conta ou expirada.
- 502 / 503
- QUERY_FAILED_REFUNDED: Solicitação falhou e foi reembolsada. JOB_POLL_FAILED: Falha temporária na consulta; tente novamente. SERVICE_UNAVAILABLE / BILLING_UNAVAILABLE: Serviço indisponível; a cobrança pode precisar de conciliação, verifique o histórico primeiro.
Cada novo POST é uma nova consulta paga; repetição idempotente não é suportada. Verifique o histórico após timeout ou erro de cobrança. Se souber o ID da tarefa, repita apenas GET.
Privacidade e registros
Só o hash SHA-256 de cada chave é armazenado; a chave aparece uma vez e pode ser revogada. O histórico mostra as últimas 100 chamadas cobradas com ferramenta, nível, custo, estado e nome da chave. Não guardamos perguntas, respostas ou relatórios. O provedor retém temporariamente resultados em segundo plano; recupere logo e salve em seu sistema.