---
title: "Public ingestion endpoint (whk_ bearer token)"
method: POST
path: "/api/webhooks/ingest/{endpointId}"
tags: ["Webhooks"]
---

# Public ingestion endpoint (whk_ bearer token)

`POST /api/webhooks/ingest/{endpointId}`

## Request

- Base URL: `https://api.historis.app`
- URL: `https://api.historis.app/api/webhooks/ingest/{endpointId}`
- Auth: HTTP bearer

Authenticated by the endpoint's own whk_ token (Authorization: Bearer whk_...), not a user session. Idempotency via an Idempotency-Key header or metadata.external_id.

## Request body

- WebhookIngest
  - `content` string, required
  - `status` string
  - `tags` string[]
  - `person` object
    - `name` string
    - `email` string, email
  - `metadata` object

## Response `200`

Idempotent replay

- object

## Other responses

- `201`: Event created
- `400`: Request failed schema validation
- `401`: Missing or invalid credentials
- `413`: Payload too large
- `429`: Rate limit exceeded for the caller's identity/plan
- `500`: Internal server error

---

[API](https://skmtc.dev/historis/apis/historis-api.md) · [All operations](https://skmtc.dev/historis/apis/historis-api/llms.txt) · [OpenAPI document](https://skmtc.dev/historis/apis/historis-api/revisions/fa382546b63e?raw)
