• Precios
  • Blog
Iniciar sesiónAgendá una demo
Introducción

Inicio rápido

Aprender

Registrar usoCobro por Tokens de IAGestión de LicenciasGestión de Quota

Recursos

Referencia del SDKVersionado de APIManejo de erroresTestingCLI

Plugins

Better Auth
DocumentaciónRecursosConstruir con AIAPI ReferenceWebhooks

Registrar uso

Registrá consumo medido con los SDKs actuales de Commet.

Cada feature medida tiene un único código. Enviá ese código como featureCode; Commet agrega los eventos para acceso, credits, balance y facturación.

Registrar un evento

import { Commet } from "@commet/node";const commet = new Commet({ apiKey: "ck_xxx" });const usageEvent = await commet.usage.track({  featureCode: "api_calls",  customerId: "user_123",  model: "example",  inputTokens: 1,  outputTokens: 1,});
from commet import Commetcommet = Commet("ck_xxx")usage_event = commet.usage.track(    feature_code="api_calls",    customer_id="user_123",    model="example",    input_tokens=1,    output_tokens=1,)
client, err := commet.New("ck_xxx")if err != nil {	log.Fatal(err)}ctx := context.Background()usageEvent, err := client.Usage.Track(ctx, &commet.TrackUsageParams{	FeatureCode: "api_calls",	CustomerID: "user_123",	Model: func(value string) *string { return &value }("example"),	InputTokens: func(value int) *int { return &value }(1),	OutputTokens: func(value int) *int { return &value }(1),})if err != nil {	log.Fatal(err)}
import co.commet.Commet;import co.commet.params.TrackUsageParams;var commet = Commet.builder().apiKey("ck_xxx").build();var usageEvent = commet.usage().track(    TrackUsageParams.builder("api_calls", "user_123").model("example").inputTokens(1L).outputTokens(1L).build());
use Commet\Commet;$commet = new Commet('ck_xxx');$usageEvent = $commet->usage->track(    featureCode: 'api_calls',    customerId: 'user_123',    model: 'example',    inputTokens: 1,    outputTokens: 1,);

El request acepta:

CampoRequeridoSignificado
featureCodeSíCódigo de la feature medida
customerIdSíID del customer en Commet o tu ID estable
valueNoCantidad numérica; por defecto es uno en eventos normales
eventIdNoID del evento de negocio controlado por quien llama para deduplicar reintentos
timestampNoFecha ISO 8601 del evento; por defecto es ahora
propertiesNoPropiedades string para atribución y debugging

Los eventos de modelos de IA usan la misma operación, pero envían model, inputTokens y outputTokens en lugar de value.

ID del evento de negocio e idempotencia del request

eventId identifica el evento de consumo en tu sistema. Reutilizalo cuando reintentes el mismo evento.

La idempotencia del request protege una mutación HTTP y se pasa mediante las opciones del SDK como idempotencyKey. Se convierte en el header Idempotency-Key. No envíes esa clave de transporte dentro del body de uso.

await commet.usage.track(
  {
    featureCode: 'api_calls',
    customerId: 'user_123',
    value: 1,
    eventId: 'request_01JXYZ',
  },
  { idempotencyKey: 'delivery_01JXYZ' },
)

Corregir el uso del período actual

Usá set cuando tu fuente de verdad necesite reemplazar el total medido actual:

import { Commet } from "@commet/node";const commet = new Commet({ apiKey: "ck_xxx" });const usageAdjustment = await commet.usage.set({  customerId: "user_123",  featureCode: "api_calls",  value: 1,});
from commet import Commetcommet = Commet("ck_xxx")usage_adjustment = commet.usage.set(    customer_id="user_123",    feature_code="api_calls",    value=1,)
client, err := commet.New("ck_xxx")if err != nil {	log.Fatal(err)}ctx := context.Background()usageAdjustment, err := client.Usage.Set(ctx, &commet.SetUsageParams{	CustomerID: "user_123",	FeatureCode: "api_calls",	Value: 1,})if err != nil {	log.Fatal(err)}
import co.commet.Commet;import co.commet.params.SetUsageParams;var commet = Commet.builder().apiKey("ck_xxx").build();var usageAdjustment = commet.usage().set(    SetUsageParams.builder("user_123", "api_calls", 1L).build());
use Commet\Commet;$commet = new Commet('ck_xxx');$usageAdjustment = $commet->usage->set(    customerId: 'user_123',    featureCode: 'api_calls',    value: 1,);

value es el total deseado, no un delta. Commet registra un ajuste con signo y conserva el historial original de eventos. Esta operación aplica solamente al período medido activo.

Verificar antes de consumir

Cuando el acceso o costo dependan de la cantidad propuesta, llamá a Usage Check antes de ejecutar la acción:

import { Commet } from "@commet/node";const commet = new Commet({ apiKey: "ck_xxx" });const usageCheck = await commet.usage.check({  customerId: "user_123",  featureCode: "api_calls",});
from commet import Commetcommet = Commet("ck_xxx")usage_check = commet.usage.check(    customer_id="user_123",    feature_code="api_calls",)
client, err := commet.New("ck_xxx")if err != nil {	log.Fatal(err)}ctx := context.Background()usageCheck, err := client.Usage.Check(ctx, &commet.CheckUsageAvailabilityParams{	CustomerID: "user_123",	FeatureCode: "api_calls",})if err != nil {	log.Fatal(err)}
import co.commet.Commet;import co.commet.params.CheckUsageAvailabilityParams;var commet = Commet.builder().apiKey("ck_xxx").build();var usageCheck = commet.usage().check(    CheckUsageAvailabilityParams.builder("user_123", "api_calls").build());
use Commet\Commet;$commet = new Commet('ck_xxx');$usageCheck = $commet->usage->check(    customerId: 'user_123',    featureCode: 'api_calls',);

Relacionado

  • Configurar features
  • Facturación de tokens de IA
  • Consumption Models

¿Cómo está esta guía?

Upgrade y Downgrade de Planes

Cómo cambian de plan los clientes desde el Portal del Cliente y el dashboard.

Cobro por Tokens de IA

Mide y cobra el uso de tokens de IA automáticamente con precios por modelo y márgenes configurables.

On this page

Registrar un evento
ID del evento de negocio e idempotencia del request
Corregir el uso del período actual
Verificar antes de consumir
Relacionado