set_response
Configure what a bin replies to webhook senders: HTTP status, content-type, body, custom response headers, optional delay. Body and header values support {{…}} templates rendered per-request from the INCOMING delivery — {{body.challenge}}, {{query.hub.challenge}}, {{header.x-hook-secret}}, {{hmac_sha256 body.plainToken YOUR_SECRET}} — so a bin can pass provider verification handshakes with zero code: Slack URL verification (body {{body.challenge}}), Zoom CRC (JSON with the hmac_sha256 helper), Meta/WhatsApp GET echo (text/plain {{query.hub.challenge}}), Strava (JSON {"hub.challenge":"{{query.hub.challenge}}"}), Asana (response header X-Hook-Secret: {{header.x-hook-secret}}). Only the fields you pass change; everything else keeps its current value. Works on bins created via create_bin by this same client; the incoming request is still captured in full either way.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| bin | Yes | bin id (or custom slug) from create_bin | |
| body | No | response body, max 10000 chars; {{…}} templates allowed | |
| status | No | HTTP status to respond with, 100-599 (bins default to 200) | |
| headers | No | custom response headers as name→value (max 10; values may use {{…}} templates). Pass {} to clear. Hop-by-hop/security headers (set-cookie, location, strict-transport-security…) are rejected. | |
| delay_ms | No | artificial response delay in milliseconds, 0-10000 (for testing sender timeouts/retries) | |
| content_type | No | Content-Type of the response (e.g. application/json, text/plain) |