Skip to main content
PUT
Ingest into a configured endpoint (PUT alias of ingestWebhookEvent)

Authorizations

Authorization
string
header
required

An ik_live_… ingest key. Stored hashed; the plaintext is returned once at creation.

Headers

Idempotency-Key
string

Optional; a repeat key short-circuits with 200 before quota is charged.

X-Hookie-Signature
string

Required only when the ingest key has require_signature. Format 't=,v1='.

Path Parameters

ingest_key
string
required

The plaintext ingest key.

slug
string
required

Webhook slug in the key's project; '-v' pins a version, a bare slug takes the newest enabled one.

Body

Identical to the POST form: form encodings flattened, everything else parsed as JSON first with textual non-JSON bodies stored as {body, content_type}, empty body becomes {}, 1,000,000-byte cap.

Any JSON value.

Response

Duplicate - this endpoint (or, on /v1/ingest, this ingest key) already stored a submission with the same dedup key, so the retry is answered with the first submission's id and nothing is stored or counted (ING-9, #193). The dedup key is, in order: an Idempotency-Key header; else a provider delivery id kept the same across that provider's retries - webhook-id (Standard Webhooks), svix-id, X-GitHub-Delivery, X-Shopify-Webhook-Id, X-Gitlab-Event-UUID, I-Twilio-Idempotency-Token, Linear-Delivery, Twitch-Eventsub-Message-Id, X-Atlassian-Webhook-Identifier; else Stripe's event id (a body with object 'event' and an evt_ id) or Slack's event_id (type 'event_callback'). The key space is the ENDPOINT's, not the workspace's: two endpoints may receive the same key. deduplicated_by names which source matched. A request that loses the unique-index race has already been counted against the monthly quota.

submission_id
string
required
idempotent
enum<boolean>
required
Available options:
true
deduplicated_by
enum<string>

Which dedup source matched.

Available options:
idempotency-key,
standard-webhooks,
svix,
github,
shopify,
gitlab,
twilio,
linear,
twitch,
atlassian,
stripe,
slack