---
title: "Receive Slack App Delivery"
method: POST
path: "/api/v1/triggers/ingress/slack/apps/{registration_id}"
tags: ["Triggers"]
---

# Receive Slack App Delivery

`POST /api/v1/triggers/ingress/slack/apps/{registration_id}`

## Request

- The document declares no server URL.
- Auth: none declared

Accept one Slack Events API delivery and fan it out to the triggers it fires.

The same pipeline as the per-trigger route, with the app in place of the
trigger: resolve the registration, read a bounded body, verify Slack's
signature with the registration's signing secret, rate-limit, and only then
touch the database. Every refusal is the same ``404``.

Nothing is refused before the signature is checked. A registration id is an
operator's chosen name, not a secret, and a budget spent before verification
is keyed on the client address - which, behind a reverse proxy that is not
trusted for ``X-Forwarded-For``, is the proxy's, shared with Slack. Anyone
who knew the Request URL could then exhaust it with unsigned requests and
get every workspace's real deliveries refused. Verifying first costs a read
of at most ``trigger_ingress_max_body_bytes`` and one HMAC-SHA256, and the
budgets below are charged only for deliveries that verify.

What a failed request does spend is the per-client probing budget, and only
to bound its audit rows: the audit queue is bounded and single-writer, so a
flood of garbage must not crowd out real rows. Slack's own deliveries never
fail verification and never touch it.

## Path parameters

- `registration_id` string, required

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-21** `4349fbe90c64`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/langflow-ai/apis/langflow/changes/api/v1/triggers/ingress/slack/apps/:registration_id/post.md)

---

[API](https://skmtc.dev/langflow-ai/apis/langflow.md) - [All operations](https://skmtc.dev/langflow-ai/apis/langflow/llms.txt) - [OpenAPI document](https://skmtc.dev/langflow-ai/apis/langflow/revisions/4349fbe90c64?raw)
