---
title: "Elasticsearch-compatible bulk ingest"
method: POST
path: "/ingest/bulk"
tags: ["Ingest"]
---

# Elasticsearch-compatible bulk ingest

`POST /ingest/bulk`

Accepts Elasticsearch `_bulk` API format for zero-config migration from Filebeat, Logstash, Vector, Fluentd.
Prefer `/es/_bulk`; `/ingest/bulk` is an alias to the same handler.

- `_index` is accepted but mapped to `_source` tag (LynxDB is single-index by design).
- `_type` is ignored.
- Response mimics ES bulk shape for client compatibility.

## Response `200`

Bulk ingest result (ES-compatible shape)

- ESBulkResponse
  - `took` integer
  - `errors` boolean
  - `items` object[]
    - `index` object
      - `_id` string
      - `status` integer

## Other responses

- `401` — Authentication required
- `429` — Too many requests

---

[API](https://skmtc.net/lynxbase/apis/lynxdb-api.md) · [All operations](https://skmtc.net/lynxbase/apis/lynxdb-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lynxbase/lynxdb-api/revisions/4363a070c444/schema)
