API Reference
Ingest

Ingest API

All ingest endpoints require the X-API-Key header.

POST /api/ingest/:collection/documents

Upsert a single document.

Request: JSON document body.

Response: 201 with the upserted document.

POST /api/ingest/:collection/documents/import

Bulk import documents.

Request: JSON array of documents.

Response: 200 with import results (per-document success/failure).

PATCH /api/ingest/:collection/documents/:id

Partial update a document.

Request: JSON with fields to update.

Response: 200 with the updated document.

DELETE /api/ingest/:collection/documents/:id

Delete a single document by ID.

Response: 200 with the deleted document.

DELETE /api/ingest/:collection/documents?filter_by=

Delete documents matching a filter.

Query params:

  • filter_by (required) — Typesense filter expression

Response: 200 with deletion count.

GET /api/ingest/queue/status

Get ingestion queue statistics.

Response:

{
  "pending": 0,
  "active": 0,
  "completed": 42,
  "failed": 0,
  "maxSize": 10000,
  "concurrency": 5,
  "backend": "redis"
}

Authentication

All ingest endpoints require X-API-Key header matching PROXY_API_KEY:

curl -H "X-API-Key: your-secret" http://localhost:3000/api/ingest/...

Missing or invalid key returns 401.

Rate Limiting

Limited to RATE_LIMIT_INGEST requests per minute per IP (default: 30).