> ## Documentation Index
> Fetch the complete documentation index at: https://docs.querying.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Créditos e limites: preços, reservas, concorrência e limites de taxa

> Quanto custa cada tarefa, como os créditos são reservados e cobrados e os limites que retornam 429 ou 503.

Toda tarefa tem um preço em créditos. O preço é reservado quando você envia, cobrado quando a tarefa é concluída e liberado quando ela falha. Seu plano define quantas tarefas você pode ter na fila ou em execução ao mesmo tempo.

Para a lista atualizada de mecanismos e preços, chame o endpoint público de capacidades. Ele não exige chave de API:

```bash theme={"theme":"css-variables"}
curl https://api.querying.ai/v1/capabilities
```

Adicione `?taskType=GEMINI` para ler um mecanismo. Aliases como `GOOGLE_AIO` são aceitos. Veja [Obter capacidades](/pt/api-reference/capabilities.md).

## Créditos por tarefa

| `taskType` | Créditos |
| - | - |
| `CHATGPT` | 1 por resposta. Cada entrada em `payload.followUps` é mais uma resposta. |
| `PERPLEXITY`, `BING_COPILOT`, `META_AI` | 1 |
| `GEMINI`, `GOOGLE` (`GOOGLE_AIO`), `AIMODE` (`GOOGLE_AIMODE`), `NAVER_AI_BRIEF`, `NAVER_AI_TAB`, `QWEN`, `DOUBAO` | 1,25 |
| `GOOGLE_SERP`, `NAVER_SERP`, `BING_SEARCH`, `REDDIT` | 1 |
| `COMMERCE_SERP` | 3 |
| `COMMERCE_PRODUCT` | 3 |
| `WEB_SCRAPE`, `WEB_MAP` | 1 |
| `WEB_CRAWL` | 1 por página retornada. Reserva `maxPages` créditos no envio; as páginas que não puderam ser lidas não são cobradas. |
| `KEYWORD_VOLUME` | 3 por tarefa (até 100 palavras-chave) |
| `PROMPT_RESEARCH` | 11 |
| `GEO_SCORE` | 10 por página, mais 5 por imagem cujo texto é lido (`images.read`, até 12). Reserva 70 no envio; as imagens que não puderam ser lidas não são cobradas e uma imagem que reutiliza uma leitura dos últimos 90 dias (`images.reused`) custa 2. |
| `AI_RENDERING` ([AI Rendering](/pt/research/ai-rendering.md)) | 5 por renderização, mais 5 por imagem cujo texto é lido e 2 por imagem que reutiliza uma leitura dos últimos 90 dias, até 12. Reserva 65 no envio. Uma atualização custa o mesmo. |
| Perguntas de uma consulta do [Product Lookup](/pt/research/product-lookup.md#preço) | 10 por produto (o produto e cada concorrente) e 5 por prompt de compra, quaisquer que sejam os mecanismos. Cada pergunta é uma tarefa de mecanismo e é cobrada pela sua parte desse preço, no lugar do preço do mecanismo acima. |
| Place Lookup (`POST /v1/place-lookup`) | 10 por consulta aos mecanismos padrão do país: 1 por pergunta em `KR` e 1,25 nos demais países. Uma consulta a menos mecanismos paga as perguntas que envia. Veja [Place Lookup](/pt/research/place-lookup.md). |
| `CITATION_ANALYSIS` | Medido pelo uso, até o valor da reserva. Veja abaixo. |

| Adicional | Créditos |
| - | - |
| `payload.include.analysis` | 2 além do preço do mecanismo, cobrados só quando `analysis.status` é `ok` |
| `payload.include.html` | 0,25 no `CHATGPT`, no `PERPLEXITY` e no `META_AI`, cobrados só quando `html.status` é `ok`. Grátis no `GEMINI`, no `GOOGLE` e no `AIMODE`. |
| `payload.include.citationAnalysis` | Uma tarefa `CITATION_ANALYSIS` separada, cobrada pelo uso |
| Leitura de concorrentes de um monitor | 80 créditos a cada 30 dias por monitor, divididos entre as execuções. Veja [Monitoramento GEO](/pt/monitors.md#custo-e-agenda). |

Os preços não variam por plano; o valor em dólar de um crédito, sim. Os créditos podem ter duas casas decimais, como `1.25`.

### Medição do Citation Analysis

Uma tarefa `CITATION_ANALYSIS` reserva `20 + 12 × citations + 80 × ⌈answer characters ÷ 1,000⌉` créditos no envio. Ao ser concluída, ela é cobrada em `1 + ⌈input tokens ÷ 500⌉ + ⌈output tokens ÷ 100⌉ + 2 × source fetches`, nunca acima da reserva. O restante da reserva é liberado. Veja [Citation Analysis](/pt/research/citation-analysis.md).

## Reserva, cobrança e liberação

**1. Envio: reserva**

O preço da tarefa (para `WEB_CRAWL`, `GEO_SCORE` e `CITATION_ANALYSIS`, o máximo) sai do seu saldo disponível para uma reserva. Se o saldo não cobrir, o envio retorna `402 INSUFFICIENT_CREDITS`. A resposta do envio mostra `credits` como `0`.

**2. Concluída: cobrança**

A cobrança é feita a partir da reserva. O polling final e o webhook a mostram em `creditsCharged`.

**3. Com falha: liberação**

A reserva volta para o seu saldo. Uma tarefa com falha custa `0`.

Uma conta nova recebe 500 créditos no cadastro.

## Consulte seu saldo

`GET /v1/credits` retorna os créditos da sua conta. A consulta não custa nada, então um programa pode verificá-la antes de cada lote. Veja [Saldo de créditos](/pt/api-reference/credits.md).

```bash theme={"theme":"css-variables"}
curl https://api.querying.ai/v1/credits \
  -H "Authorization: Bearer $QUERYING_API_KEY"
```

```json theme={"theme":"css-variables"}
{
  "success": true,
  "remaining": 1879939,
  "perCycle": 1000000,
  "cycleResetsAt": "2026-11-14T07:37:57.000Z",
  "reserved": 61,
  "plan": "max",
  "topUpBalance": { "credits": 1000000, "nextExpiresAt": "2027-01-19T10:01:57.000Z", "nextCredits": 1000000 }
}
```

* `remaining` é o que você pode gastar agora. As tarefas que você já enviou reservam o preço em `reserved`, então não o subtraia de novo.
* `perCycle` é o que seu plano concede a cada ciclo, e `cycleResetsAt` é quando o ciclo atual termina. Os dois são `null` sem um plano ativo.
* `topUpBalance` mostra os créditos de recarga incluídos em `remaining`, com a data em que os próximos expiram e quantos são. É `null` quando você não tem nenhum. Créditos de recarga valem por três meses a partir da compra, continuam após as renovações e são gastos depois dos créditos do plano.

A chave de uma subconta recebe `403 SUB_ACCOUNT_FORBIDDEN`, porque uma subconta gasta os seus créditos. Veja [Subcontas](/pt/sub-accounts.md).

## Consulte seu uso

`GET /v1/usage` retorna os créditos cobrados da sua conta em um intervalo de datas UTC, divididos por dia, mecanismo e chave de API como você escolher. A consulta não custa nada. Veja [Uso de créditos](/pt/api-reference/usage.md).

```bash theme={"theme":"css-variables"}
curl "https://api.querying.ai/v1/usage?from=2026-10-01&to=2026-10-20&groupBy=engine" \
  -H "Authorization: Bearer $QUERYING_API_KEY"
```

```json theme={"theme":"css-variables"}
{
  "success": true,
  "data": {
    "from": "2026-10-01",
    "to": "2026-10-20",
    "groupBy": ["engine"],
    "credits": 66.25,
    "tasks": 65,
    "rows": [
      { "taskType": "CHATGPT", "credits": 49, "tasks": 49 },
      { "taskType": "GEMINI", "credits": 6.25, "tasks": 5 },
      { "taskType": "PERPLEXITY", "credits": 11, "tasks": 11 }
    ]
  }
}
```

* `from` e `to` são datas UTC, e os dois dias estão incluídos. Por padrão, são o primeiro dia do mês UTC atual e hoje. Um intervalo abrange no máximo 366 dias.
* `groupBy` aceita `day`, `engine` e `key`, separados por vírgulas, e o padrão é `day,engine`. Cada linha traz os campos das divisões que você escolheu, e uma combinação sem cobrança não tem linha. `credits` e `tasks` no topo somam todas as linhas.
* `groupBy=key` mostra quem gastou os créditos. Uma tarefa enviada com uma chave de API tem `"source": "api"` e um `apiKey` com `id`, `keyPrefix`, `name` e `subAccountId`. O gasto sem chave de API tem `source` igual a `monitor` (as execuções de um monitor), `playground` ou `dashboard`, e `apiKey` é `null`.
* O uso soma o que foi cobrado das tarefas, e uma tarefa com falha custa `0`. A leitura de concorrentes de um monitor é cobrada sem uma tarefa, então reduz o seu saldo, mas não aparece no uso.
* As tarefas das suas [subcontas](/pt/sub-accounts.md) estão no seu uso, e `apiKey.subAccountId` indica a subconta dona de uma chave. [`GET /v1/sub-accounts/{id}/usage`](/pt/api-reference/sub-accounts/get-usage) lê uma única subconta. A chave de uma subconta recebe `403 SUB_ACCOUNT_FORBIDDEN`.

## Consulte sua fila

`GET /v1/async/status` retorna suas tarefas na fila e em execução junto ao limite de concorrência em que elas contam. A consulta não custa nada. Veja [Status da fila](/pt/api-reference/queue-status.md).

```bash theme={"theme":"css-variables"}
curl https://api.querying.ai/v1/async/status \
  -H "Authorization: Bearer $QUERYING_API_KEY"
```

```json theme={"theme":"css-variables"}
{
  "success": true,
  "queuedTasks": 19,
  "processingTasks": 6,
  "priorityBreakdown": [{ "priority": 8, "count": 3 }, { "priority": 1, "count": 16 }],
  "concurrency": { "used": 25, "max": 200 }
}
```

* `concurrency.used` é `queuedTasks` mais `processingTasks`, os dois números que o [limite de concorrência](#concorrência-do-plano) do seu plano soma. `max` é esse limite, então `max - used` é a folga que resta para novas tarefas.
* `priorityBreakdown` lista as tarefas na fila pela `priority` com que foram enviadas, da maior para a menor.
* As contagens incluem as tarefas das suas subcontas, que dividem o seu limite. A chave de uma subconta recebe `403 SUB_ACCOUNT_FORBIDDEN` e lê as próprias contagens em [`GET /stats`](/pt/api-reference/stats).

## Planos

| Plano | Preço por mês | Créditos por mês | Tarefas simultâneas |
| - | - | - | - |
| Free | \$0 | 500 no cadastro | 2 |
| Basic | \$20 | 8.000 | 50 |
| Pro | \$200 | 170.000 | 200 |
| Scale | \$500 | 480.000 | 500 |
| Max | \$1.000 | 1.000.000 | 1.000 |

Compare os planos na [página de preços](https://querying.ai/pt/pricing).

### Concorrência do plano

O limite de concorrência conta juntas as tarefas `QUEUED` e `PROCESSING` da sua conta. Não é um limite de velocidade de envio. Um envio que o ultrapassaria retorna `429 PLAN_CONCURRENCY_LIMIT` com `details.limit`, `details.active` e `Retry-After`. Um contrato pode definir outro limite para a sua conta, e uma conta principal pode definir um para uma [subconta](/pt/sub-accounts.md).

## Limites por chave e por subconta

| Limite | Onde se define | Quando é atingido |
| - | - | - |
| Limite diário de créditos de uma chave de API | Gerencie a chave no [painel](https://querying.ai/dashboard/keys), de 0,01 a 20.000.000 créditos | `429 KEY_DAILY_CREDIT_LIMIT` até a próxima meia-noite UTC. `Retry-After` conta os segundos até lá. |
| `monthlyCreditLimit` de uma subconta | A conta principal. Veja [Subcontas](/pt/sub-accounts.md). | `429 SUB_ACCOUNT_CREDIT_LIMIT` |

O limite diário da chave conta a reserva de que uma tarefa precisa, então uma tarefa é recusada quando `used + price` passaria do limite.

## Taxa de requisições e contrapressão

| Limite | Resposta |
| - | - |
| 1.200 requisições por minuto por credencial `Authorization` em `/v1/*` | `429` da borda |
| 6.000 requisições por minuto por IP de origem | `429` da borda |
| A fila de um mecanismo está cheia | `503 QUEUE_BACKPRESSURE` com `Retry-After` |
| A admissão está saturada | `503 SERVER_OVERLOADED` com `Retry-After` |
| A fila global de tarefas está cheia | `503 SERVER_OVERLOADED` com `Retry-After` |
| Um mecanismo não está aceitando tarefas temporariamente | `503 ENGINE_UNAVAILABLE` com `Retry-After` |

Os `429` da borda acontecem antes da API e não trazem o envelope de erro JSON nem `Retry-After`. Ao receber um, aguarde com backoff exponencial. Um `429` ou `503` dos endpoints de envio de tarefas traz um cabeçalho `Retry-After` em segundos. Códigos e orientações de nova tentativa estão em [Erros](/pt/concepts/errors.md).

## Distribua envios grandes

**1. Use lotes em vez de laços**

Um `POST /v1/async/task/batch` com 500 itens é uma única requisição para o limite da borda. Para mais do que o seu limite de concorrência, use `POST /v1/batches`: o servidor libera os itens conforme abre espaço. Veja [Lotes e grades](/pt/concepts/bulk-submission.md).

**2. Respeite o Retry-After**

Espere o número de segundos de `Retry-After` antes de reenviar uma tarefa recusada. Reutilize o mesmo `idempotencyKey` para que uma nova tentativa nunca crie uma duplicata.

**3. Ordene o trabalho dependente**

A ordem de execução não é garantida. Espere uma tarefa ser concluída antes de enviar trabalho que depende do resultado dela.

**4. Acompanhe suas contagens**

[`GET /v1/async/status`](/pt/api-reference/queue-status) devolve suas tarefas na fila e em execução junto ao limite do seu plano, para que você as mantenha abaixo dele. [`GET /stats`](/pt/api-reference/stats) acrescenta as tarefas concluídas nas últimas 24 horas.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.