---
title: "Ingest a batch of usage events"
method: POST
path: "/api/events/batch"
tags: ["Events"]
---

# Ingest a batch of usage events

`POST /api/events/batch`

Send up to 100 usage events in a single request. Each event is processed independently - failures do not affect other events.

## Request body

- BatchEventsDto
  - `events` CreateEventDto[], required — Array of events to ingest (max 100)
    - `transactionId` string, required — Unique transaction ID for idempotency
    - `subscriptionId` string, required — Subscription ID or external subscription ID
    - `code` string, required — Billable metric code
    - `timestamp` string — Event timestamp (defaults to now)
    - `properties` object — Event properties

## Response `201`

Batch processing results

- BatchEventResponse
  - `received` number, required
  - `processed` number, required
  - `duplicates` number, required

---

[API](https://skmtc.net/novabilling/apis/novabilling-api.md) · [All operations](https://skmtc.net/novabilling/apis/novabilling-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/novabilling/novabilling-api/versions/0e449a4e0dc8/schema)
