Saltar para o conteúdo principal
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:
Adicione ?taskType=GEMINI para ler um mecanismo. Aliases como GOOGLE_AIO são aceitos. Veja Obter capacidades.

Créditos por tarefa

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.

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.
  • 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.

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.
  • 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 estão no seu uso, e apiKey.subAccountId indica a subconta dona de uma chave. GET /v1/sub-accounts/{id}/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.
  • concurrency.used é queuedTasks mais processingTasks, os dois números que o limite de concorrência 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.

Planos

Compare os planos na página de preços.

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.

Limites por chave e por subconta

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

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.

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.
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 devolve suas tarefas na fila e em execução junto ao limite do seu plano, para que você as mantenha abaixo dele. GET /stats acrescenta as tarefas concluídas nas últimas 24 horas.