Trackear Uso
Trackea eventos de consumo para features metered con el SDK de Commet.
Cada feature metered tiene un código de evento. Tu aplicación envía eventos con ese código y Commet los agrega para cobrar al fin del período.
Componentes del evento de uso
| Componente | Descripción | Ejemplo |
|---|---|---|
| Feature | Código de evento de una feature metered | api_calls, storage_gb |
| Value | Cantidad consumida | 1, 0.5, 100 |
| Customer | Quién consumió | customerId: "user_123" |
| Idempotency Key | Previene eventos duplicados | "req_abc123" |
| Timestamp | Cuándo ocurrió (por defecto, ahora) | "2026-01-15T10:00:00Z" |
Configurar códigos de evento
Cuando creas una feature metered en el dashboard, defines su código de evento. Ve a Features, haz click en Crear Feature, selecciona Metered e ingresa el código de evento.
Convenciones para códigos de evento
| Buenos códigos | Malos códigos |
|---|---|
api_calls | feature1 |
storage_gb | metric |
emails_sent | usage |
compute_minutes | x |
Usa snake_case. Sé descriptivo — esto es lo que aparece en el código.
Trackear un solo evento
await commet.usage.track({
customerId: "user_123",
feature: "api_calls",
value: 1,
})commet.usage.track(
customer_id="user_123",
feature="api_calls",
value=1,
)value := 1
client.Usage.Track(ctx, &commet.TrackUsageParams{
Feature: "api_calls",
CustomerID: "user_123",
Value: &value,
})commet.usage().track(
TrackParams.builder("api_calls")
.customerId("user_123")
.value(1)
.build()
);$commet->usage->track(
customerId: 'user_123',
feature: 'api_calls',
value: 1,
);curl -X POST https://commet.co/api/usage/events \
-H "x-api-key: $COMMET_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"feature": "api_calls",
"customerId": "user_123",
"value": 1
}'Pasa un ID de Commet (cus_xxx) o tu ID externo como customerId.
Parámetros
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
feature | string | Sí | Código de evento de una feature metered. Solo letras minúsculas, números y guiones bajos (a-z0-9_) |
customerId | string | Sí | ID del cliente en Commet (cus_xxx) o tu ID externo |
value | number | No | Cantidad consumida. Debe ser >= 0. Default: 1 |
idempotencyKey | string | No | Previene eventos duplicados |
timestamp | string | No | Fecha-hora ISO 8601. Default: ahora |
properties | object | No | Metadata clave-valor para debugging. Forma: { [key: string]: string } |
Idempotencia
Previene cargos duplicados pasando un idempotencyKey. Commet rechaza eventos con una key que ya fue registrada para el mismo cliente.
await commet.usage.track({
customerId: "user_123",
feature: "api_calls",
value: 1,
idempotencyKey: "req_abc123",
})commet.usage.track(
customer_id="user_123",
feature="api_calls",
value=1,
idempotency_key="req_abc123",
)value := 1
client.Usage.Track(ctx, &commet.TrackUsageParams{
Feature: "api_calls",
CustomerID: "user_123",
Value: &value,
IdempotencyKey: "req_abc123",
})commet.usage().track(
TrackParams.builder("api_calls")
.customerId("user_123")
.value(1)
.idempotencyKey("req_abc123")
.build()
);$commet->usage->track(
customerId: 'user_123',
feature: 'api_calls',
value: 1,
idempotencyKey: 'req_abc123',
);curl -X POST https://commet.co/api/usage/events \
-H "x-api-key: $COMMET_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"feature": "api_calls",
"customerId": "user_123",
"value": 1,
"idempotencyKey": "req_abc123"
}'Relacionado
- Cobro por Tokens de IA — Trackea y cobra tokens de modelos de IA automáticamente
- Configurar Features — Crea features metered y códigos de evento
- Modelos de Consumo — Cómo se cobra el uso entre metered, credits y balance
¿Cómo está esta guía?