Best Practices
Learn best practices for using Limitry
Follow these best practices to get the most out of Limitry.
Idempotency
Always use idempotency keys when tracking events to prevent duplicates.
await client.track.trackUsage({
customerId: 'customer_123',
eventType: 'model_call',
idempotencyKey: `req_${requestId}`, // Unique per request
// ... other fields
});await client.track.track_usage(
customer_id="customer_123",
event_type="model_call",
idempotency_key=f"req_{request_id}", # Unique per request
# ... other fields
)Error Handling
Handle errors gracefully and implement retries.
try {
await client.track.trackUsage({ /* ... */ });
} catch (error) {
if (error.status === 429) {
// Rate limited, retry after delay
} else {
// Log error but don't block request
console.error('Failed to track usage:', error);
}
}try:
await client.track.track_usage(...)
except Exception as error:
if error.status == 429:
# Rate limited, retry after delay
pass
else:
# Log error but don't block request
print(f"Failed to track usage: {error}")Batch Operations
Use batch endpoints when tracking multiple events.
await client.events.batch({
events: [
{ customerId: 'customer_123', eventType: 'model_call', /* ... */ },
{ customerId: 'customer_123', eventType: 'model_call', /* ... */ },
],
});await client.events.batch(
events=[
{"customer_id": "customer_123", "event_type": "model_call", ...},
{"customer_id": "customer_123", "event_type": "model_call", ...},
],
)Next Steps
- Tracking Usage - Learn about tracking
- API Reference - Full API documentation