---
title: "Bulk ingest events"
method: POST
path: "/events/bulk"
tags: ["Events"]
---

# Bulk ingest events

`POST /events/bulk`

Use when batching usage events (e.g. backfill or high-volume ingestion). More efficient than single event calls; returns 202 when accepted.

## Request body

- BulkIngestEventRequest
  - `events` IngestEventRequest[], required
    - `customer_id` string
    - `event_id` string
    - `event_name` string, required
    - `external_customer_id` string, required
    - `properties` object — Handled separately for dynamic columns
    - `source` string
    - `timestamp` string — Handled separately due to parsing

## Response `202`

message:Event accepted for processing

- object

## Other responses

- `400` — Invalid request
- `500` — Server error

## Changes

- **2026-05-18** `f62d8a5fe7cf` — 4 warning
  - removed the optional property `details` from the response with the `400` status
  - removed the optional property `details` from the response with the `500` status
  - added the new `too_many_requests` enum value to the `code` response property for the response status `400`
  - added the new `too_many_requests` enum value to the `code` response property for the response status `500`
- **2026-04-06** `4ded3711f401` — 4 warning, 8 info
  - removed the optional property `error` from the response with the `400` status
  - removed the optional property `error` from the response with the `500` status
  - removed the optional property `success` from the response with the `400` status
  - removed the optional property `success` from the response with the `500` status
  - …8 more

[Change history](https://skmtc.dev/flexprice/apis/flexprice-api-2/changes/events/bulk/post.md)

---

[API](https://skmtc.dev/flexprice/apis/flexprice-api-2.md) · [All operations](https://skmtc.dev/flexprice/apis/flexprice-api-2/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/flexprice/flexprice-api-2/revisions/da8f268dc77d/schema)
