Saltar para o conteúdo principal
Se você usa o querying.ai dentro do seu próprio produto, crie uma subconta para cada cliente. Uma subconta tem suas próprias chaves de API, limites, tarefas, lotes e monitores. Os créditos saem do seu saldo, e os endpoints de uso mostram quanto cobrar de cada cliente.

Como uma subconta funciona

  • Chaves e resultados próprios. Uma chave de subconta envia e lê tarefas, lotes e monitores como qualquer outra chave e só vê o próprio trabalho. Uma tarefa criada com a chave da Acme retorna 404 para a chave da Globex e para as suas próprias chaves.
  • Seus créditos. As tarefas dela são cobradas do seu saldo. Uma subconta não tem saldo, então as chaves dela recebem 403 SUB_ACCOUNT_FORBIDDEN em GET /v1/credits e GET /v1/usage.
  • Sua capacidade. O limite de concorrência do seu plano ou contrato cobre as suas tarefas e as de todas as subcontas juntas, então subcontas nunca adicionam capacidade. GET /v1/async/status conta essa fila compartilhada com a sua chave, e a chave de uma subconta recebe 403 SUB_ACCOUNT_FORBIDDEN nele.
  • Seus limites de monitores. O limite monitors de GET /v1/monitors/capabilities conta os seus monitores e os de todas as subcontas juntos, e os limites prompts e tasksPerRun valem para os monitores de uma subconta como valem para os seus.
  • Limites próprios. monthlyCreditLimit limita quanto pode ser cobrado dela em um mês civil UTC. concurrencyLimit limita as tarefas na fila e em execução dela dentro do seu limite. Ambos são opcionais.
  • Um único nível. Uma subconta não pode ter subcontas. Os e-mails de alerta dos monitores dela vão para os administradores da sua conta.

Quem pode gerenciar subcontas

Chame os endpoints /v1/sub-accounts com uma das suas próprias chaves de API, sem escopo de mecanismo e sem limite diário de créditos. Qualquer outra chave recebe 403 SUB_ACCOUNT_FORBIDDEN, porque, do contrário, uma chave restrita poderia emitir chaves sem as suas restrições. As chaves da própria subconta recebem o mesmo erro.

Crie uma subconta e uma chave

A resposta é 201:
Qualquer outro campo retorna 400 VALIDATION_ERROR, então um limite escrito errado nunca deixa um cliente sem limite. Depois, emita uma chave para a subconta:
key aparece somente nesta resposta. Guarde-a agora; ela nunca é mostrada de novo.
Uma chave aceita as mesmas configurações opcionais de uma chave do painel: name (de 1 a 64 caracteres, padrão default), allowedTaskTypes, dailyCreditLimit e expiresAt (de 5 minutos a 2 anos à frente). Não envie corpo para uma chave sem restrições. Uma subconta pode ter até 5 chaves ativas; chaves revogadas e expiradas não contam. Uma sexta retorna 409 KEY_LIMIT. Revogue uma antes. A chave do seu cliente funciona em todos os endpoints como qualquer outra:

Gerencie as chaves

GET /v1/sub-accounts/{id}/keys lista todas as chaves que a subconta já teve, da mais recente para a mais antiga, incluindo as revogadas e expiradas. Confira revokedAt e expiresAt para encontrar as chaves ativas.
DELETE /v1/sub-accounts/{id}/keys/{keyId} revoga uma chave e retorna {"success": true, "data": {"revoked": "<keyId>"}}. Uma chave já revogada, ou que não é da subconta, retorna 404 NOT_FOUND.

Limites

Só a subconta que atingiu o próprio limite é recusada; os seus outros clientes continuam rodando. Um limite ampliado vale a partir da próxima requisição.
retryAfterSec conta até o início do próximo mês UTC, quando a contagem mensal recomeça. Veja Créditos e limites para os limites da conta como um todo.

Consulte uma subconta agora

GET /v1/sub-accounts/{id} retorna a subconta com o uso deste mês e activeTasks, o número de tarefas dela na fila ou em execução neste momento. Compare com concurrencyLimit para ver o quanto o cliente está perto do limite.
Os valores acima são um exemplo. Em usage, credits e tasks são o que foi cobrado neste mês UTC, e reservedCredits é o que está reservado por tarefas ainda em execução.

Uso e cobrança

Toda cobrança também aparece no seu próprio extrato de cobrança; estes endpoints a dividem por cliente. Tarefas que falham nunca são cobradas nem contadas. Os valores em créditos têm até duas casas decimais.
  • GET /v1/sub-accounts lista as suas subcontas, da mais antiga para a mais nova, cada uma com o usage deste mês. Pagine com limit (padrão 100, no máximo 1.000) e envie nextCursor de volta como cursor.
  • GET /v1/sub-accounts/usage soma cada subconta em um intervalo de datas UTC.
  • GET /v1/sub-accounts/{id}/usage traz as cobranças de uma subconta por dia e mecanismo.
Os dois endpoints de uso aceitam from e to como YYYY-MM-DD, inclusivos. from é por padrão o dia 1º do mês UTC atual e to é hoje; um intervalo abrange no máximo 366 dias.

Todas as subcontas

Por exemplo:
As subcontas aparecem da maior para a menor. Uma subconta sem cobranças no intervalo fica de fora.

Uma subconta

Por exemplo:
  • credits e tasks no nível superior são os totais de days.
  • days tem uma linha por data UTC e mecanismo com cobrança, ordenada por data e depois por taskType. Dias sem cobranças não têm linha.
  • taskType: "OTHER" é uma cobrança que não é uma tarefa, como a leitura de concorrentes de um monitor. Soma créditos, mas não tasks.

Suspender e reativar

  • As chaves dela passam a retornar 401 em até cinco segundos.
  • Os monitores dela param de rodar, e os itens de lote que ainda não começaram terminam como API_KEY_INACTIVE.
  • Tarefas já na fila ou em execução terminam e são cobradas.
{"status": "active"} restaura as chaves e os monitores. Cada monitor roda uma vez ao voltar, em vez de recuperar as execuções perdidas. O mesmo PATCH altera name, externalId, monthlyCreditLimit e concurrencyLimit; null remove um limite ou o externalId. Uma subconta não pode ser excluída; suspenda-a.

Erros

Endpoints