Skip to main content
Events are the foundation of usage-based billing. Send events when billable actions occur, and meters aggregate them into charges.

API Reference — Events Ingestion

Dokumentasi API lengkap dengan contoh dan kode respons.

Event Structure

string
wajib
Pengenal unik untuk event, digunakan untuk mendeteksi event duplikat saat melakukan retry. Turunkan ID ini dari tindakan yang dilakukan, misalnya customer ID + tindakan + timestamp, sehingga event yang di-retry tetap memiliki ID yang sama. UUID acak baru pada setiap retry dapat menyebabkan event yang sama dihitung dua kali.
string
wajib
Customer ID Dodo Payments. Harus merupakan customer yang valid dan sudah ada.
string
wajib
Jenis event yang cocok dengan nama event meter Anda (peka huruf besar-kecil). Contoh: api.call, image.generated.
string
Timestamp ISO 8601 (UTC). Jika tidak disertakan, nilainya secara default adalah waktu server saat ini. Sertakan untuk penagihan yang akurat pada event yang tertunda atau batch. Timestamp yang lebih lama dari 1 jam atau lebih dari 5 menit di masa mendatang akan ditolak.
object
Properti tambahan untuk agregasi dan pemfilteran. Hingga 50 kunci; setiap kunci dapat memiliki panjang hingga 100 karakter dan setiap nilai hingga 500 karakter.
  • Nilai numerik: bytes, tokens, duration_ms
  • Filter: endpoint, method, quality

Sending Events

Kelompokkan hingga 1.000 event dalam setiap request untuk performa yang lebih baik. API memberlakukan batas tetap sebanyak 1.000 event per request.

Ingestion Blueprints

Ready-made event patterns for common use cases. Start with a proven blueprint instead of building from scratch.

LLM Blueprint

Track AI token usage across OpenAI, Anthropic, Groq, Gemini, and more.

API Gateway Blueprint

Meter API requests with endpoint filtering and rate limiting support.

Object Storage Blueprint

Track file uploads and storage consumption for cloud storage services.

Stream Blueprint

Measure streaming bandwidth for video, audio, and real-time data.

Time Range Blueprint

Bill by elapsed time for serverless functions and compute instances.

View All Blueprints

See all available blueprints with detailed implementation guides.

Best Practices

Gunakan ID deterministik untuk mencegah duplikasi: ${customerId}_${action}_${timestamp}.
Lakukan retry pada error 5xx dan 429 dengan exponential backoff. Jangan melakukan retry pada error 4xx lainnya.
Jangan sertakan timestamp untuk event real-time. Sertakan timestamp untuk event yang tertunda atau batch agar akurat.
Track success rates and queue failed events for retry.

Troubleshooting

  • Nama event harus sama persis dengan meter (peka huruf besar-kecil)
  • Customer ID harus ada di akun Anda
  • Periksa apakah filter meter tidak mengecualikan event
  • Pastikan timestamp masih baru
Pastikan API key sudah benar dan gunakan format: Bearer YOUR_API_KEY.
Pastikan semua field yang wajib sudah ada: event_id, customer_id, event_name.
  • Key metadata harus sama persis dengan “Over Property” pada meter
  • Gunakan angka, bukan string: tokens: 150 bukan tokens: "150"

Next Steps

Create Meters

Define how your events are aggregated into billable quantities with filters and aggregation functions.

Ingestion Blueprints

Use ready-made blueprints for common use cases like LLM tracking, API gateways, and storage.

Complete Tutorial

Build a full AI image generator with usage-based billing from scratch.

API Reference

Complete API documentation with all parameters, response codes, and interactive testing.
Terakhir diubah pada 26 September 2026