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

EndpointFinalidade
POST /api/v1/answerRespostas web rápidas com citações e resultados de busca.
POST /api/v1/researchCinco níveis de pesquisa, controles de fontes e JSON estruturado.
POST /api/v1/finance_researchPesquisa 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ívelPor 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
Recarregar saldo →

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.