Saltar al contenido principal
Si usas querying.ai dentro de tu propio producto, crea una subcuenta por cliente. Una subcuenta tiene sus propias claves de API, límites, tareas, lotes y monitores. Sus créditos salen de tu saldo, y los endpoints de uso te indican cuánto cobrar a cada cliente.

Cómo funciona una subcuenta

  • Sus propias claves y resultados. Una clave de subcuenta envía y lee tareas, lotes y monitores como cualquier otra clave, y solo ve su propio trabajo. Una tarea creada con la clave de Acme devuelve 404 a la clave de Globex y a tus propias claves.
  • Tus créditos. Sus tareas se cobran de tu saldo. Una subcuenta no tiene saldo, así que sus claves reciben 403 SUB_ACCOUNT_FORBIDDEN de GET /v1/credits y GET /v1/usage.
  • Tu capacidad. El límite de concurrencia de tu plan o contrato cubre tus propias tareas y las de todas las subcuentas en conjunto, así que las subcuentas nunca añaden capacidad. GET /v1/async/status cuenta esa cola compartida con tu clave, y la clave de una subcuenta recibe 403 SUB_ACCOUNT_FORBIDDEN.
  • Tus límites de monitores. El límite monitors de GET /v1/monitors/capabilities cuenta tus monitores y los de todas las subcuentas en conjunto, y los límites prompts y tasksPerRun se aplican a los monitores de una subcuenta igual que a los tuyos.
  • Sus propios límites. monthlyCreditLimit limita lo que se le puede cobrar en un mes natural UTC. concurrencyLimit limita sus tareas en cola y en ejecución dentro de tu límite. Ambos son opcionales.
  • Un solo nivel. Una subcuenta no puede tener subcuentas. Los correos de alerta de sus monitores van a los administradores de tu cuenta.

Quién puede gestionar subcuentas

Llama a los endpoints /v1/sub-accounts con una de tus propias claves de API sin restricción de motores ni límite diario de créditos. Cualquier otra clave recibe 403 SUB_ACCOUNT_FORBIDDEN, porque una clave restringida podría emitir claves sin sus propias restricciones. Las claves de una subcuenta reciben el mismo error.

Crear una subcuenta y una clave

La respuesta es 201:
Cualquier otro campo devuelve 400 VALIDATION_ERROR, así que un límite mal escrito nunca deja a un cliente sin límite. Después, emite una clave para la subcuenta:
key aparece solo en esta respuesta. Guárdala ahora; no se vuelve a mostrar.
Una clave admite los mismos ajustes opcionales que una clave del dashboard: name (de 1 a 64 caracteres, por defecto default), allowedTaskTypes, dailyCreditLimit y expiresAt (de 5 minutos a 2 años en el futuro). No envíes cuerpo para una clave sin restricciones. Una subcuenta puede tener hasta 5 claves activas; las revocadas y caducadas no cuentan. Una sexta devuelve 409 KEY_LIMIT. Revoca una antes. La clave de tu cliente funciona en todos los endpoints como cualquier otra:

Gestionar claves

GET /v1/sub-accounts/{id}/keys lista todas las claves que ha tenido la subcuenta, de la más reciente a la más antigua, incluidas las revocadas y caducadas. Revisa revokedAt y expiresAt para encontrar las claves activas.
DELETE /v1/sub-accounts/{id}/keys/{keyId} revoca una clave y devuelve {"success": true, "data": {"revoked": "<keyId>"}}. Una clave ya revocada, o que no pertenece a la subcuenta, devuelve 404 NOT_FOUND.

Límites

Solo se rechaza la subcuenta que alcanzó su propio límite; tus demás clientes siguen funcionando. Un límite ampliado se aplica a la siguiente solicitud.
retryAfterSec cuenta hasta el inicio del siguiente mes UTC, cuando el cómputo mensual vuelve a empezar. Consulta Créditos y límites para los límites de toda la cuenta.

Consultar una subcuenta ahora

GET /v1/sub-accounts/{id} devuelve la subcuenta con el uso de este mes y activeTasks, el número de sus tareas en cola o en ejecución en este momento. Compáralo con concurrencyLimit para ver lo cerca que está el cliente de su límite.
Los valores de arriba son un ejemplo. En usage, credits y tasks son lo cobrado en este mes UTC, y reservedCredits es lo retenido por tareas aún en ejecución.

Uso y facturación

Cada cargo aparece también en tu propio libro de facturación; estos endpoints lo dividen por cliente. Las tareas fallidas nunca se cobran ni se cuentan. Las cantidades de créditos llevan hasta dos decimales.
  • GET /v1/sub-accounts lista tus subcuentas, de la más antigua a la más reciente, cada una con el usage de este mes. Pagina con limit (100 por defecto, 1.000 como máximo) y devuelve nextCursor como cursor.
  • GET /v1/sub-accounts/usage suma cada subcuenta en un rango de fechas UTC.
  • GET /v1/sub-accounts/{id}/usage devuelve los cargos de una subcuenta por día y motor.
Ambos endpoints de uso aceptan from y to como YYYY-MM-DD, inclusivos. from es por defecto el día 1 del mes UTC actual y to hoy; un rango abarca como máximo 366 días.

Todas las subcuentas

Por ejemplo:
Las subcuentas aparecen de mayor a menor. Una subcuenta sin cargos en el rango se deja fuera.

Una subcuenta

Por ejemplo:
  • credits y tasks en el nivel superior son los totales de days.
  • days tiene una fila por fecha UTC y motor con algún cargo, ordenadas por fecha y después por taskType. Los días sin cargos no tienen fila.
  • taskType: "OTHER" es un cargo que no es una tarea, como la lectura de competidores de un monitor. Suma créditos pero no tasks.

Suspender y reanudar

  • Sus claves devuelven 401 en cinco segundos.
  • Sus monitores dejan de ejecutarse y los elementos de lote que no han empezado terminan como API_KEY_INACTIVE.
  • Las tareas ya en cola o en ejecución terminan y se cobran.
{"status": "active"} restaura sus claves y monitores. Cada monitor se ejecuta una vez al volver en lugar de recuperar las ejecuciones perdidas. El mismo PATCH cambia name, externalId, monthlyCreditLimit y concurrencyLimit; null elimina un límite o el externalId. Una subcuenta no se puede eliminar; suspéndela.

Errores

Endpoints