[{"data":1,"prerenderedAt":2513},["ShallowReactive",2],{"docs-navigation":3,"content-query-eBAFW3akhW":315},[4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,100,103,106,109,112,115,118,121,124,127,130,133,136,139,142,145,148,151,154,157,160,163,166,169,172,175,178,181,184,187,190,193,196,199,202,205,208,211,214,217,220,223,226,229,232,235,238,241,244,247,250,253,256,258,261,264,267,270,273,276,279,282,285,288,291,294,297,300,303,306,309,312],{"_path":5,"title":6},"/docs/account/account-management","Account management",{"_path":8,"title":9},"/docs/account/mfa","Multi-factor authentication (MFA)",{"_path":11,"title":12},"/docs/account/team","Teams and sub-accounts",{"_path":14,"title":15},"/docs/account/billing-and-subscriptions","Billing & subscriptions",{"_path":17,"title":18},"/docs/account/access-tokens","Webhook Relay access tokens: permissions and subscription scopes",{"_path":20,"title":21},"/docs/clawhub","Webhook Relay on ClawHub",{"_path":23,"title":24},"/docs/email","Receive emails as webhooks",{"_path":26,"title":27},"/docs/email/payload","Email webhook payload",{"_path":29,"title":30},"/docs/email/filtering-and-policy","Sender filtering & policy",{"_path":32,"title":33},"/docs/email/cli","Create & poll email addresses from the CLI",{"_path":35,"title":36},"/docs","Getting Started",{"_path":38,"title":39},"/docs/installation/cli","CLI",{"_path":41,"title":42},"/docs/installation/docker","Docker container",{"_path":44,"title":45},"/docs/installation/docker-compose","Docker Compose",{"_path":47,"title":48},"/docs/installation/kubernetes","Kubernetes",{"_path":50,"title":51},"/docs/installation/autostart-windows","Autostart (Windows)",{"_path":53,"title":54},"/docs/installation/autostart-linux","Autostart (Linux)",{"_path":56,"title":57},"/docs/installation/autostart-macos","Autostart (MacOS)",{"_path":59,"title":60},"/docs/installation/behind-proxy","HTTP proxy configuration",{"_path":62,"title":63},"/docs/mcp","MCP Server",{"_path":65,"title":66},"/docs/outbound","Outbound Gateway: send webhooks to your customers",{"_path":68,"title":69},"/docs/outbound/setup","Set up the Outbound Gateway",{"_path":71,"title":72},"/docs/outbound/receiving","Receive and verify outbound webhooks",{"_path":74,"title":75},"/docs/outbound/operating","Monitor, retry and recover deliveries",{"_path":77,"title":78},"/docs/security","Security & Tech",{"_path":80,"title":81},"/docs/service-connections","Service Connections",{"_path":83,"title":84},"/docs/service-connections/ai-providers","AI provider connections",{"_path":86,"title":87},"/docs/service-connections/aws_s3","AWS S3",{"_path":89,"title":90},"/docs/service-connections/aws_sns","AWS SNS",{"_path":92,"title":93},"/docs/service-connections/aws_sqs","AWS SQS",{"_path":95,"title":96},"/docs/service-connections/azure","Azure",{"_path":98,"title":99},"/docs/service-connections/gcp_gcs","GCP Cloud Storage",{"_path":101,"title":102},"/docs/service-connections/gcp_pubsub","GCP Pub/Sub",{"_path":104,"title":105},"/docs/service-connections/secrets","Secrets",{"_path":107,"title":108},"/docs/skills","Agent Skills",{"_path":110,"title":111},"/docs/skills-cli","skills.sh — the Agent Skills CLI",{"_path":113,"title":114},"/docs/tunnels/demoing-your-website","Demoing your website",{"_path":116,"title":117},"/docs/tunnels/regions","Regions",{"_path":119,"title":120},"/docs/tutorials/cicd/jenkins-bitbucket","Jenkins and Bitbucket",{"_path":122,"title":123},"/docs/tutorials/cicd/jenkins-github","Jenkins and GitHub",{"_path":125,"title":126},"/docs/tutorials/cicd/jenkins-plugin","Jenkins Plugin",{"_path":128,"title":129},"/docs/tutorials/cicd/jenkins-plugin-multibranch","Jenkins Multibranch Pipelines",{"_path":131,"title":132},"/docs/tutorials/cicd/kubernetes-operator","Kubernetes Operator",{"_path":134,"title":135},"/docs/tutorials/cicd/terraform-atlantis","Terraform Atlantis",{"_path":137,"title":138},"/docs/tutorials/cicd/webhook-exec","Execute scripts on webhook",{"_path":140,"title":141},"/docs/tutorials/edge/home-assistant","Home Assistant",{"_path":143,"title":144},"/docs/tutorials/edge/javascript-app","JavaScript app",{"_path":146,"title":147},"/docs/tutorials/edge/node-red","Node-RED",{"_path":149,"title":150},"/docs/tutorials/email/airtable","Email to Airtable",{"_path":152,"title":153},"/docs/tutorials/email/api","Email to API",{"_path":155,"title":156},"/docs/tutorials/email/database","Email to Database",{"_path":158,"title":159},"/docs/tutorials/email/discord","Email to Discord",{"_path":161,"title":162},"/docs/tutorials/email/google-sheets","Email to Google Sheets",{"_path":164,"title":165},"/docs/tutorials/email/microsoft-teams","Email to Microsoft Teams",{"_path":167,"title":168},"/docs/tutorials/email/notion","Email to Notion",{"_path":170,"title":171},"/docs/tutorials/email/slack","Email to Slack",{"_path":173,"title":174},"/docs/tutorials","Tutorials",{"_path":176,"title":177},"/docs/tutorials/n8n/email-trigger","n8n Email Trigger (Inbound Email)",{"_path":179,"title":180},"/docs/tutorials/n8n/webhook-trigger","n8n Webhook Trigger (No Public IP)",{"_path":182,"title":183},"/docs/tutorials/n8n/whatsapp-cloud-api-webhook","n8n WhatsApp Cloud API Webhook Setup",{"_path":185,"title":186},"/docs/tutorials/transform/docker-to-slack","DockerHub webhook to Slack notification",{"_path":188,"title":189},"/docs/tutorials/transform/enrich-webhooks","Enrich webhooks from APIs",{"_path":191,"title":192},"/docs/tutorials/transform/stripe-to-plain","Sync Stripe subscriptions to Plain.com tenants",{"_path":194,"title":195},"/docs/tutorials/warehouse/bigquery","GCP BigQuery",{"_path":197,"title":198},"/docs/webhooks/alerts","Alerts",{"_path":200,"title":201},"/docs/webhooks/auth/username-password","Username and password",{"_path":203,"title":204},"/docs/webhooks/auth/hmac","HMAC",{"_path":206,"title":207},"/docs/webhooks/auth/jwt","JWT authentication",{"_path":209,"title":210},"/docs/webhooks/auth/http-method","Auth using request method",{"_path":212,"title":213},"/docs/webhooks/cors","CORS for webhooks",{"_path":215,"title":216},"/docs/webhooks/cron/using-cron-webhooks","Schedule recurring webhooks",{"_path":218,"title":219},"/docs/webhooks/custom-domains","Custom webhook domains",{"_path":221,"title":222},"/docs/webhooks/custom-subdomains","Custom webhook subdomains",{"_path":224,"title":225},"/docs/webhooks/custom-webhook-response","Custom response to webhooks",{"_path":227,"title":228},"/docs/webhooks/durable-webhooks","Durable webhooks: reliable delivery with automatic retries",{"_path":230,"title":231},"/docs/webhooks/functions/manipulating-json","JSON encoding",{"_path":233,"title":234},"/docs/webhooks/functions/make-http-request","Make HTTP request",{"_path":236,"title":237},"/docs/webhooks/functions/modify-request","Modify webhook headers, body, method and path",{"_path":239,"title":240},"/docs/webhooks/functions/multipart-form-data","Multipart form to JSON",{"_path":242,"title":243},"/docs/webhooks/functions/url-encoded-data","URL Encoded Form",{"_path":245,"title":246},"/docs/webhooks/functions/working-with-time","Working with time",{"_path":248,"title":249},"/docs/webhooks/functions/send-emails","Sending emails",{"_path":251,"title":252},"/docs/webhooks/functions/crypto-functions","Base64, encryption",{"_path":254,"title":255},"/docs/webhooks/functions/integrate-into-cicd","Integrating into CI/CD",{"_path":257,"title":195},"/docs/webhooks/functions/big-query",{"_path":259,"title":260},"/docs/webhooks/functions/accessing-metadata","Accessing metadata",{"_path":262,"title":263},"/docs/webhooks/functions/response-functions","Response (post-delivery) functions",{"_path":265,"title":266},"/docs/webhooks/functions/alerting","Alerting from functions",{"_path":268,"title":269},"/docs/webhooks/functions/helper-libraries","Helper libraries",{"_path":271,"title":272},"/docs/webhooks/functions/transform-webhook-payload","Transform a webhook payload",{"_path":274,"title":275},"/docs/webhooks/functions/filter-webhooks","Filter or drop webhooks before forwarding",{"_path":277,"title":278},"/docs/webhooks/functions/provider-helpers","Provider-aware function helpers",{"_path":280,"title":281},"/docs/webhooks/functions","Webhook transformations (functions): modify body, headers, method and path",{"_path":283,"title":284},"/docs/webhooks/internal/localhost","Receive webhooks on localhost with the relay CLI",{"_path":286,"title":287},"/docs/webhooks/large-webhooks","Large Webhooks",{"_path":289,"title":290},"/docs/webhooks/outbound-throttling","Outbound throttling: control webhook delivery speed",{"_path":292,"title":293},"/docs/webhooks/polling-webhooks","Polling webhooks with /v1/events",{"_path":295,"title":296},"/docs/webhooks/public/public-destination","Forward to public URL",{"_path":298,"title":299},"/docs/webhooks/public/multiple-destination-urls","Forward webhooks to multiple destinations",{"_path":301,"title":302},"/docs/webhooks/replay-on-agent-connect","Webhook replay on agent connect: recover missed webhooks",{"_path":304,"title":305},"/docs/webhooks/static-ip-address","Static IP Address",{"_path":307,"title":308},"/docs/webhooks/tls-ssl-errors","Fix TLS/SSL handshake errors: unsupported protocol, wrong version number, handshake failure",{"_path":310,"title":311},"/docs/webhooks/websocket-server","Connecting to websocket server",{"_path":313,"title":314},"/docs/webhooks/zero-retention-buckets","Zero Retention Buckets",{"_path":74,"_dir":316,"_draft":317,"_partial":317,"_locale":318,"title":75,"description":319,"intro":320,"layout":321,"tags":322,"faq":328,"body":341,"_type":2506,"_id":2507,"_source":2508,"_file":2509,"_stem":2510,"_extension":2511,"sitemap":2512},"outbound",false,"","Operate the Webhook Relay Outbound Gateway: delivery history, retrying one delivery, recovering failed deliveries, replaying skipped messages, endpoint health, payload Functions, limits and MCP tools.","Every outbound delivery and attempt is recorded for 35 days. Use the history to answer customer questions, then retry, recover or replay deliveries without republishing.","doc",[323,324,325,326,327],"Outbound webhooks","Webhook replay","Webhook retries","Endpoint health","MCP",[329,332,335,338],{"q":330,"a":331},"How do I resend outbound webhooks after a customer's outage?","Once the endpoint is reachable again, call POST /v1/outbound/endpoints/{id}/recover with an optional since timestamp (the default is the last 24 hours, the maximum is 35 days). Webhook Relay re-sends that endpoint's deliveries that ran out of retries, in the background, with the original webhook-id. If the endpoint was paused or disabled instead, resume it and call replay-missing.",{"q":333,"a":334},"How long is outbound delivery history kept?","Messages, deliveries with their attempts, and recovery tasks are kept for 35 days. Retries, recovery and replay work within that window.",{"q":336,"a":337},"Can I change the payload for one customer?","Yes. Attach a Function to that customer's endpoint with function_id. The Function receives the published JSON payload and can return a different JSON body (up to 256 KiB) or drop the message. It runs once per message and endpoint, and the result is reused for every retry.",{"q":339,"a":340},"Can an AI agent manage outbound webhooks?","Yes. Every Outbound Gateway REST operation has an MCP tool with the same name, such as publish_outbound_message, list_outbound_deliveries or recover_outbound_deliveries. The tools are available to MCP clients and to the agent in the Webhook Relay dashboard, under the same permissions and audit log as the API.",{"type":342,"children":343,"toc":2497},"root",[344,381,388,471,553,670,743,749,774,873,879,892,931,1023,1097,1102,1262,1470,1476,1511,1544,1660,1723,1729,1757,1793,1983,1988,1994,2206,2212,2223,2491],{"type":345,"tag":346,"props":347,"children":348},"element","p",{},[349,356,358,365,367,371,373,379],{"type":345,"tag":350,"props":351,"children":352},"strong",{},[353],{"type":354,"value":355},"text","The Outbound Gateway records every message, delivery and attempt for 35 days.",{"type":354,"value":357}," You can see what a customer's endpoint answered, retry one delivery, re-send everything that failed during an outage, or replay messages skipped while an endpoint was paused. None of this requires publishing the event again, and every copy keeps the original ",{"type":345,"tag":359,"props":360,"children":362},"code",{"className":361},[],[363],{"type":354,"value":364},"webhook-id",{"type":354,"value":366},". Everything on this page is also available in the dashboard's ",{"type":345,"tag":350,"props":368,"children":369},{},[370],{"type":354,"value":323},{"type":354,"value":372}," page and through ",{"type":345,"tag":374,"props":375,"children":377},"a",{"href":376},"#mcp-tools-and-the-dashboard-agent",[378],{"type":354,"value":327},{"type":354,"value":380},".",{"type":345,"tag":382,"props":383,"children":385},"h2",{"id":384},"inspect-delivery-history",[386],{"type":354,"value":387},"Inspect delivery history",{"type":345,"tag":389,"props":390,"children":391},"table",{},[392,411],{"type":345,"tag":393,"props":394,"children":395},"thead",{},[396],{"type":345,"tag":397,"props":398,"children":399},"tr",{},[400,406],{"type":345,"tag":401,"props":402,"children":403},"th",{},[404],{"type":354,"value":405},"Question",{"type":345,"tag":401,"props":407,"children":408},{},[409],{"type":354,"value":410},"Call",{"type":345,"tag":412,"props":413,"children":414},"tbody",{},[415,435,454],{"type":345,"tag":397,"props":416,"children":417},{},[418,424],{"type":345,"tag":419,"props":420,"children":421},"td",{},[422],{"type":354,"value":423},"What did we publish?",{"type":345,"tag":419,"props":425,"children":426},{},[427,433],{"type":345,"tag":359,"props":428,"children":430},{"className":429},[],[431],{"type":354,"value":432},"GET /v1/outbound/messages?consumer=&event_type=&limit=&offset=",{"type":354,"value":434}," (newest first, without payloads)",{"type":345,"tag":397,"props":436,"children":437},{},[438,443],{"type":345,"tag":419,"props":439,"children":440},{},[441],{"type":354,"value":442},"Where did one message go?",{"type":345,"tag":419,"props":444,"children":445},{},[446,452],{"type":345,"tag":359,"props":447,"children":449},{"className":448},[],[450],{"type":354,"value":451},"GET /v1/outbound/messages/{id}",{"type":354,"value":453},": the payload plus one delivery per endpoint, with attempts",{"type":345,"tag":397,"props":455,"children":456},{},[457,462],{"type":345,"tag":419,"props":458,"children":459},{},[460],{"type":354,"value":461},"What did one endpoint receive?",{"type":345,"tag":419,"props":463,"children":464},{},[465],{"type":345,"tag":359,"props":466,"children":468},{"className":467},[],[469],{"type":354,"value":470},"GET /v1/outbound/endpoints/{id}/deliveries",{"type":345,"tag":346,"props":472,"children":473},{},[474,476,482,484,490,492,498,499,505,506,512,514,520,522,528,529,535,537,543,545,551],{"type":354,"value":475},"Filter an endpoint's deliveries with ",{"type":345,"tag":359,"props":477,"children":479},{"className":478},[],[480],{"type":354,"value":481},"status",{"type":354,"value":483}," (",{"type":345,"tag":359,"props":485,"children":487},{"className":486},[],[488],{"type":354,"value":489},"sent",{"type":354,"value":491},", ",{"type":345,"tag":359,"props":493,"children":495},{"className":494},[],[496],{"type":354,"value":497},"failed",{"type":354,"value":491},{"type":345,"tag":359,"props":500,"children":502},{"className":501},[],[503],{"type":354,"value":504},"stalled",{"type":354,"value":491},{"type":345,"tag":359,"props":507,"children":509},{"className":508},[],[510],{"type":354,"value":511},"received",{"type":354,"value":513}," or ",{"type":345,"tag":359,"props":515,"children":517},{"className":516},[],[518],{"type":354,"value":519},"rejected",{"type":354,"value":521},"), ",{"type":345,"tag":359,"props":523,"children":525},{"className":524},[],[526],{"type":354,"value":527},"event_type",{"type":354,"value":513},{"type":345,"tag":359,"props":530,"children":532},{"className":531},[],[533],{"type":354,"value":534},"message_id",{"type":354,"value":536},", and page with ",{"type":345,"tag":359,"props":538,"children":540},{"className":539},[],[541],{"type":354,"value":542},"limit",{"type":354,"value":544}," (up to 100) and ",{"type":345,"tag":359,"props":546,"children":548},{"className":547},[],[549],{"type":354,"value":550},"offset",{"type":354,"value":552},". Each attempt records its status code, duration, response headers (up to 8 KiB) and the start of the response body (4 KiB per attempt; the latest response is kept up to 120 KiB). Custom endpoint headers are left out of the recorded request because they can hold credentials.",{"type":345,"tag":389,"props":554,"children":555},{},[556,572],{"type":345,"tag":393,"props":557,"children":558},{},[559],{"type":345,"tag":397,"props":560,"children":561},{},[562,567],{"type":345,"tag":401,"props":563,"children":564},{},[565],{"type":354,"value":566},"Delivery status",{"type":345,"tag":401,"props":568,"children":569},{},[570],{"type":354,"value":571},"Meaning",{"type":345,"tag":412,"props":573,"children":574},{},[575,591,607,630,654],{"type":345,"tag":397,"props":576,"children":577},{},[578,586],{"type":345,"tag":419,"props":579,"children":580},{},[581],{"type":345,"tag":359,"props":582,"children":584},{"className":583},[],[585],{"type":354,"value":511},{"type":345,"tag":419,"props":587,"children":588},{},[589],{"type":354,"value":590},"Queued; the first attempt hasn't been made yet.",{"type":345,"tag":397,"props":592,"children":593},{},[594,602],{"type":345,"tag":419,"props":595,"children":596},{},[597],{"type":345,"tag":359,"props":598,"children":600},{"className":599},[],[601],{"type":354,"value":504},{"type":345,"tag":419,"props":603,"children":604},{},[605],{"type":354,"value":606},"An attempt failed and a retry is scheduled.",{"type":345,"tag":397,"props":608,"children":609},{},[610,618],{"type":345,"tag":419,"props":611,"children":612},{},[613],{"type":345,"tag":359,"props":614,"children":616},{"className":615},[],[617],{"type":354,"value":489},{"type":345,"tag":419,"props":619,"children":620},{},[621,623,629],{"type":354,"value":622},"The endpoint answered ",{"type":345,"tag":359,"props":624,"children":626},{"className":625},[],[627],{"type":354,"value":628},"2xx",{"type":354,"value":380},{"type":345,"tag":397,"props":631,"children":632},{},[633,641],{"type":345,"tag":419,"props":634,"children":635},{},[636],{"type":345,"tag":359,"props":637,"children":639},{"className":638},[],[640],{"type":354,"value":497},{"type":345,"tag":419,"props":642,"children":643},{},[644,646,652],{"type":354,"value":645},"Retries ran out, the endpoint answered ",{"type":345,"tag":359,"props":647,"children":649},{"className":648},[],[650],{"type":354,"value":651},"410",{"type":354,"value":653},", or the endpoint's Function failed.",{"type":345,"tag":397,"props":655,"children":656},{},[657,665],{"type":345,"tag":419,"props":658,"children":659},{},[660],{"type":345,"tag":359,"props":661,"children":663},{"className":662},[],[664],{"type":354,"value":519},{"type":345,"tag":419,"props":666,"children":667},{},[668],{"type":354,"value":669},"Skipped because the endpoint was paused or disabled, or dropped by a Function.",{"type":345,"tag":671,"props":672,"children":673},"code-block",{},[674],{"type":345,"tag":675,"props":676,"children":680},"pre",{"className":677,"code":678,"language":679,"meta":318,"style":318},"language-bash shiki shiki-themes github-dark","curl --user \"$RELAY_KEY:$RELAY_SECRET\" \\\n  \"https://my.webhookrelay.com/v1/outbound/endpoints/6f0c2c0e-5a3b-4f43-9d0a-4c4f7d7a2b11/deliveries?status=failed&limit=20\"\n","bash",[681],{"type":345,"tag":359,"props":682,"children":683},{"__ignoreMap":318},[684,734],{"type":345,"tag":685,"props":686,"children":689},"span",{"class":687,"line":688},"line",1,[690,696,702,708,714,719,724,729],{"type":345,"tag":685,"props":691,"children":693},{"style":692},"--shiki-default:#B392F0",[694],{"type":354,"value":695},"curl",{"type":345,"tag":685,"props":697,"children":699},{"style":698},"--shiki-default:#79B8FF",[700],{"type":354,"value":701}," --user",{"type":345,"tag":685,"props":703,"children":705},{"style":704},"--shiki-default:#9ECBFF",[706],{"type":354,"value":707}," \"",{"type":345,"tag":685,"props":709,"children":711},{"style":710},"--shiki-default:#E1E4E8",[712],{"type":354,"value":713},"$RELAY_KEY",{"type":345,"tag":685,"props":715,"children":716},{"style":704},[717],{"type":354,"value":718},":",{"type":345,"tag":685,"props":720,"children":721},{"style":710},[722],{"type":354,"value":723},"$RELAY_SECRET",{"type":345,"tag":685,"props":725,"children":726},{"style":704},[727],{"type":354,"value":728},"\"",{"type":345,"tag":685,"props":730,"children":731},{"style":698},[732],{"type":354,"value":733}," \\\n",{"type":345,"tag":685,"props":735,"children":737},{"class":687,"line":736},2,[738],{"type":345,"tag":685,"props":739,"children":740},{"style":704},[741],{"type":354,"value":742},"  \"https://my.webhookrelay.com/v1/outbound/endpoints/6f0c2c0e-5a3b-4f43-9d0a-4c4f7d7a2b11/deliveries?status=failed&limit=20\"\n",{"type":345,"tag":382,"props":744,"children":746},{"id":745},"retry-one-delivery",[747],{"type":354,"value":748},"Retry one delivery",{"type":345,"tag":346,"props":750,"children":751},{},[752,758,760,765,767,773],{"type":345,"tag":359,"props":753,"children":755},{"className":754},[],[756],{"type":354,"value":757},"POST /v1/outbound/endpoints/{id}/retry",{"type":354,"value":759}," with a ",{"type":345,"tag":359,"props":761,"children":763},{"className":762},[],[764],{"type":354,"value":534},{"type":354,"value":766}," re-sends that message to that endpoint in the background and returns a recovery task. If the delivery is waiting for its next scheduled retry, it is sent now. A delivery whose first attempt is still queued is refused with ",{"type":345,"tag":359,"props":768,"children":770},{"className":769},[],[771],{"type":354,"value":772},"409",{"type":354,"value":380},{"type":345,"tag":671,"props":775,"children":776},{},[777],{"type":345,"tag":675,"props":778,"children":780},{"className":677,"code":779,"language":679,"meta":318,"style":318},"curl --user \"$RELAY_KEY:$RELAY_SECRET\" \\\n  -H 'Content-Type: application/json' \\\n  -X POST https://my.webhookrelay.com/v1/outbound/endpoints/6f0c2c0e-5a3b-4f43-9d0a-4c4f7d7a2b11/retry \\\n  -d '{ \"message_id\": \"0199cf5e-7a3c-7d2e-9b1a-3f4e5d6c7b8a\" }'\n",[781],{"type":345,"tag":359,"props":782,"children":783},{"__ignoreMap":318},[784,819,836,859],{"type":345,"tag":685,"props":785,"children":786},{"class":687,"line":688},[787,791,795,799,803,807,811,815],{"type":345,"tag":685,"props":788,"children":789},{"style":692},[790],{"type":354,"value":695},{"type":345,"tag":685,"props":792,"children":793},{"style":698},[794],{"type":354,"value":701},{"type":345,"tag":685,"props":796,"children":797},{"style":704},[798],{"type":354,"value":707},{"type":345,"tag":685,"props":800,"children":801},{"style":710},[802],{"type":354,"value":713},{"type":345,"tag":685,"props":804,"children":805},{"style":704},[806],{"type":354,"value":718},{"type":345,"tag":685,"props":808,"children":809},{"style":710},[810],{"type":354,"value":723},{"type":345,"tag":685,"props":812,"children":813},{"style":704},[814],{"type":354,"value":728},{"type":345,"tag":685,"props":816,"children":817},{"style":698},[818],{"type":354,"value":733},{"type":345,"tag":685,"props":820,"children":821},{"class":687,"line":736},[822,827,832],{"type":345,"tag":685,"props":823,"children":824},{"style":698},[825],{"type":354,"value":826},"  -H",{"type":345,"tag":685,"props":828,"children":829},{"style":704},[830],{"type":354,"value":831}," 'Content-Type: application/json'",{"type":345,"tag":685,"props":833,"children":834},{"style":698},[835],{"type":354,"value":733},{"type":345,"tag":685,"props":837,"children":839},{"class":687,"line":838},3,[840,845,850,855],{"type":345,"tag":685,"props":841,"children":842},{"style":698},[843],{"type":354,"value":844},"  -X",{"type":345,"tag":685,"props":846,"children":847},{"style":704},[848],{"type":354,"value":849}," POST",{"type":345,"tag":685,"props":851,"children":852},{"style":704},[853],{"type":354,"value":854}," https://my.webhookrelay.com/v1/outbound/endpoints/6f0c2c0e-5a3b-4f43-9d0a-4c4f7d7a2b11/retry",{"type":345,"tag":685,"props":856,"children":857},{"style":698},[858],{"type":354,"value":733},{"type":345,"tag":685,"props":860,"children":862},{"class":687,"line":861},4,[863,868],{"type":345,"tag":685,"props":864,"children":865},{"style":698},[866],{"type":354,"value":867},"  -d",{"type":345,"tag":685,"props":869,"children":870},{"style":704},[871],{"type":354,"value":872}," '{ \"message_id\": \"0199cf5e-7a3c-7d2e-9b1a-3f4e5d6c7b8a\" }'\n",{"type":345,"tag":382,"props":874,"children":876},{"id":875},"recover-failed-deliveries-and-replay-missed-ones",[877],{"type":354,"value":878},"Recover failed deliveries and replay missed ones",{"type":345,"tag":346,"props":880,"children":881},{},[882,884,890],{"type":354,"value":883},"Two recovery tasks walk an endpoint's messages from ",{"type":345,"tag":359,"props":885,"children":887},{"className":886},[],[888],{"type":354,"value":889},"since",{"type":354,"value":891}," (RFC 3339, defaulting to 24 hours ago, at most 35 days back) until now:",{"type":345,"tag":893,"props":894,"children":895},"ul",{},[896,914],{"type":345,"tag":897,"props":898,"children":899},"li",{},[900,905,906,912],{"type":345,"tag":350,"props":901,"children":902},{},[903],{"type":354,"value":904},"Recover",{"type":354,"value":483},{"type":345,"tag":359,"props":907,"children":909},{"className":908},[],[910],{"type":354,"value":911},"POST /v1/outbound/endpoints/{id}/recover",{"type":354,"value":913},") re-sends deliveries that ran out of retries, typically after the customer fixes an outage.",{"type":345,"tag":897,"props":915,"children":916},{},[917,922,923,929],{"type":345,"tag":350,"props":918,"children":919},{},[920],{"type":354,"value":921},"Replay missing",{"type":354,"value":483},{"type":345,"tag":359,"props":924,"children":926},{"className":925},[],[927],{"type":354,"value":928},"POST /v1/outbound/endpoints/{id}/replay-missing",{"type":354,"value":930},") sends deliveries that were skipped while the endpoint was paused or disabled. Resume the endpoint first.",{"type":345,"tag":671,"props":932,"children":933},{},[934],{"type":345,"tag":675,"props":935,"children":937},{"className":677,"code":936,"language":679,"meta":318,"style":318},"curl --user \"$RELAY_KEY:$RELAY_SECRET\" \\\n  -H 'Content-Type: application/json' \\\n  -X POST https://my.webhookrelay.com/v1/outbound/endpoints/6f0c2c0e-5a3b-4f43-9d0a-4c4f7d7a2b11/recover \\\n  -d '{ \"since\": \"2026-10-08T00:00:00Z\" }'\n",[938],{"type":345,"tag":359,"props":939,"children":940},{"__ignoreMap":318},[941,976,991,1011],{"type":345,"tag":685,"props":942,"children":943},{"class":687,"line":688},[944,948,952,956,960,964,968,972],{"type":345,"tag":685,"props":945,"children":946},{"style":692},[947],{"type":354,"value":695},{"type":345,"tag":685,"props":949,"children":950},{"style":698},[951],{"type":354,"value":701},{"type":345,"tag":685,"props":953,"children":954},{"style":704},[955],{"type":354,"value":707},{"type":345,"tag":685,"props":957,"children":958},{"style":710},[959],{"type":354,"value":713},{"type":345,"tag":685,"props":961,"children":962},{"style":704},[963],{"type":354,"value":718},{"type":345,"tag":685,"props":965,"children":966},{"style":710},[967],{"type":354,"value":723},{"type":345,"tag":685,"props":969,"children":970},{"style":704},[971],{"type":354,"value":728},{"type":345,"tag":685,"props":973,"children":974},{"style":698},[975],{"type":354,"value":733},{"type":345,"tag":685,"props":977,"children":978},{"class":687,"line":736},[979,983,987],{"type":345,"tag":685,"props":980,"children":981},{"style":698},[982],{"type":354,"value":826},{"type":345,"tag":685,"props":984,"children":985},{"style":704},[986],{"type":354,"value":831},{"type":345,"tag":685,"props":988,"children":989},{"style":698},[990],{"type":354,"value":733},{"type":345,"tag":685,"props":992,"children":993},{"class":687,"line":838},[994,998,1002,1007],{"type":345,"tag":685,"props":995,"children":996},{"style":698},[997],{"type":354,"value":844},{"type":345,"tag":685,"props":999,"children":1000},{"style":704},[1001],{"type":354,"value":849},{"type":345,"tag":685,"props":1003,"children":1004},{"style":704},[1005],{"type":354,"value":1006}," https://my.webhookrelay.com/v1/outbound/endpoints/6f0c2c0e-5a3b-4f43-9d0a-4c4f7d7a2b11/recover",{"type":345,"tag":685,"props":1008,"children":1009},{"style":698},[1010],{"type":354,"value":733},{"type":345,"tag":685,"props":1012,"children":1013},{"class":687,"line":861},[1014,1018],{"type":345,"tag":685,"props":1015,"children":1016},{"style":698},[1017],{"type":354,"value":867},{"type":345,"tag":685,"props":1019,"children":1020},{"style":704},[1021],{"type":354,"value":1022}," '{ \"since\": \"2026-10-08T00:00:00Z\" }'\n",{"type":345,"tag":346,"props":1024,"children":1025},{},[1026,1028,1034,1036,1042,1044,1049,1051,1057,1059,1065,1066,1072,1074,1079,1081,1087,1089,1095],{"type":354,"value":1027},"Each call answers ",{"type":345,"tag":359,"props":1029,"children":1031},{"className":1030},[],[1032],{"type":354,"value":1033},"202",{"type":354,"value":1035}," with a task. Follow its progress with ",{"type":345,"tag":359,"props":1037,"children":1039},{"className":1038},[],[1040],{"type":354,"value":1041},"GET /v1/outbound/recovery-tasks/{id}",{"type":354,"value":1043},". ",{"type":345,"tag":359,"props":1045,"children":1047},{"className":1046},[],[1048],{"type":354,"value":481},{"type":354,"value":1050}," moves from ",{"type":345,"tag":359,"props":1052,"children":1054},{"className":1053},[],[1055],{"type":354,"value":1056},"pending",{"type":354,"value":1058}," to ",{"type":345,"tag":359,"props":1060,"children":1062},{"className":1061},[],[1063],{"type":354,"value":1064},"running",{"type":354,"value":1058},{"type":345,"tag":359,"props":1067,"children":1069},{"className":1068},[],[1070],{"type":354,"value":1071},"completed",{"type":354,"value":1073}," (or ",{"type":345,"tag":359,"props":1075,"children":1077},{"className":1076},[],[1078],{"type":354,"value":497},{"type":354,"value":1080}," with an ",{"type":345,"tag":359,"props":1082,"children":1084},{"className":1083},[],[1085],{"type":354,"value":1086},"error",{"type":354,"value":1088},"), and ",{"type":345,"tag":359,"props":1090,"children":1092},{"className":1091},[],[1093],{"type":354,"value":1094},"processed",{"type":354,"value":1096}," counts the deliveries handled so far. A re-sent delivery starts a fresh retry schedule and keeps its earlier attempts in the history. An account can have up to 10 active recovery tasks.",{"type":345,"tag":346,"props":1098,"children":1099},{},[1100],{"type":354,"value":1101},"The SDK equivalents:",{"type":345,"tag":671,"props":1103,"children":1104},{},[1105],{"type":345,"tag":675,"props":1106,"children":1110},{"className":1107,"code":1108,"language":1109,"meta":318,"style":318},"language-ts shiki shiki-themes github-dark","const task = await relay.outbound.endpoints.recover(endpointId, { since: \"2026-10-08T00:00:00Z\" });\nawait relay.outbound.endpoints.resume(endpointId);\nawait relay.outbound.endpoints.replayMissing(endpointId);\nawait relay.outbound.endpoints.retry(endpointId, messageId);\nconst progress = await relay.outbound.recoveryTasks.get(task.id);\n","ts",[1111],{"type":345,"tag":359,"props":1112,"children":1113},{"__ignoreMap":318},[1114,1163,1185,1205,1226],{"type":345,"tag":685,"props":1115,"children":1116},{"class":687,"line":688},[1117,1123,1128,1133,1138,1143,1148,1153,1158],{"type":345,"tag":685,"props":1118,"children":1120},{"style":1119},"--shiki-default:#F97583",[1121],{"type":354,"value":1122},"const",{"type":345,"tag":685,"props":1124,"children":1125},{"style":698},[1126],{"type":354,"value":1127}," task",{"type":345,"tag":685,"props":1129,"children":1130},{"style":1119},[1131],{"type":354,"value":1132}," =",{"type":345,"tag":685,"props":1134,"children":1135},{"style":1119},[1136],{"type":354,"value":1137}," await",{"type":345,"tag":685,"props":1139,"children":1140},{"style":710},[1141],{"type":354,"value":1142}," relay.outbound.endpoints.",{"type":345,"tag":685,"props":1144,"children":1145},{"style":692},[1146],{"type":354,"value":1147},"recover",{"type":345,"tag":685,"props":1149,"children":1150},{"style":710},[1151],{"type":354,"value":1152},"(endpointId, { since: ",{"type":345,"tag":685,"props":1154,"children":1155},{"style":704},[1156],{"type":354,"value":1157},"\"2026-10-08T00:00:00Z\"",{"type":345,"tag":685,"props":1159,"children":1160},{"style":710},[1161],{"type":354,"value":1162}," });\n",{"type":345,"tag":685,"props":1164,"children":1165},{"class":687,"line":736},[1166,1171,1175,1180],{"type":345,"tag":685,"props":1167,"children":1168},{"style":1119},[1169],{"type":354,"value":1170},"await",{"type":345,"tag":685,"props":1172,"children":1173},{"style":710},[1174],{"type":354,"value":1142},{"type":345,"tag":685,"props":1176,"children":1177},{"style":692},[1178],{"type":354,"value":1179},"resume",{"type":345,"tag":685,"props":1181,"children":1182},{"style":710},[1183],{"type":354,"value":1184},"(endpointId);\n",{"type":345,"tag":685,"props":1186,"children":1187},{"class":687,"line":838},[1188,1192,1196,1201],{"type":345,"tag":685,"props":1189,"children":1190},{"style":1119},[1191],{"type":354,"value":1170},{"type":345,"tag":685,"props":1193,"children":1194},{"style":710},[1195],{"type":354,"value":1142},{"type":345,"tag":685,"props":1197,"children":1198},{"style":692},[1199],{"type":354,"value":1200},"replayMissing",{"type":345,"tag":685,"props":1202,"children":1203},{"style":710},[1204],{"type":354,"value":1184},{"type":345,"tag":685,"props":1206,"children":1207},{"class":687,"line":861},[1208,1212,1216,1221],{"type":345,"tag":685,"props":1209,"children":1210},{"style":1119},[1211],{"type":354,"value":1170},{"type":345,"tag":685,"props":1213,"children":1214},{"style":710},[1215],{"type":354,"value":1142},{"type":345,"tag":685,"props":1217,"children":1218},{"style":692},[1219],{"type":354,"value":1220},"retry",{"type":345,"tag":685,"props":1222,"children":1223},{"style":710},[1224],{"type":354,"value":1225},"(endpointId, messageId);\n",{"type":345,"tag":685,"props":1227,"children":1229},{"class":687,"line":1228},5,[1230,1234,1239,1243,1247,1252,1257],{"type":345,"tag":685,"props":1231,"children":1232},{"style":1119},[1233],{"type":354,"value":1122},{"type":345,"tag":685,"props":1235,"children":1236},{"style":698},[1237],{"type":354,"value":1238}," progress",{"type":345,"tag":685,"props":1240,"children":1241},{"style":1119},[1242],{"type":354,"value":1132},{"type":345,"tag":685,"props":1244,"children":1245},{"style":1119},[1246],{"type":354,"value":1137},{"type":345,"tag":685,"props":1248,"children":1249},{"style":710},[1250],{"type":354,"value":1251}," relay.outbound.recoveryTasks.",{"type":345,"tag":685,"props":1253,"children":1254},{"style":692},[1255],{"type":354,"value":1256},"get",{"type":345,"tag":685,"props":1258,"children":1259},{"style":710},[1260],{"type":354,"value":1261},"(task.id);\n",{"type":345,"tag":671,"props":1263,"children":1264},{},[1265],{"type":345,"tag":675,"props":1266,"children":1270},{"className":1267,"code":1268,"language":1269,"meta":318,"style":318},"language-go shiki shiki-themes github-dark","task, err := api.RecoverOutboundDeliveries(endpointID, time.Now().Add(-48*time.Hour))\n_, err = api.ResumeOutboundEndpoint(endpointID)\n_, err = api.ReplayMissingOutboundDeliveries(endpointID, time.Time{}) // zero time: last 24 hours\n_, err = api.RetryOutboundDelivery(endpointID, messageID)\nprogress, err := api.GetOutboundRecoveryTask(task.ID)\n","go",[1271],{"type":345,"tag":359,"props":1272,"children":1273},{"__ignoreMap":318},[1274,1342,1369,1419,1444],{"type":345,"tag":685,"props":1275,"children":1276},{"class":687,"line":688},[1277,1282,1287,1292,1297,1302,1307,1312,1317,1322,1327,1332,1337],{"type":345,"tag":685,"props":1278,"children":1279},{"style":710},[1280],{"type":354,"value":1281},"task, err ",{"type":345,"tag":685,"props":1283,"children":1284},{"style":1119},[1285],{"type":354,"value":1286},":=",{"type":345,"tag":685,"props":1288,"children":1289},{"style":710},[1290],{"type":354,"value":1291}," api.",{"type":345,"tag":685,"props":1293,"children":1294},{"style":692},[1295],{"type":354,"value":1296},"RecoverOutboundDeliveries",{"type":345,"tag":685,"props":1298,"children":1299},{"style":710},[1300],{"type":354,"value":1301},"(endpointID, time.",{"type":345,"tag":685,"props":1303,"children":1304},{"style":692},[1305],{"type":354,"value":1306},"Now",{"type":345,"tag":685,"props":1308,"children":1309},{"style":710},[1310],{"type":354,"value":1311},"().",{"type":345,"tag":685,"props":1313,"children":1314},{"style":692},[1315],{"type":354,"value":1316},"Add",{"type":345,"tag":685,"props":1318,"children":1319},{"style":710},[1320],{"type":354,"value":1321},"(",{"type":345,"tag":685,"props":1323,"children":1324},{"style":1119},[1325],{"type":354,"value":1326},"-",{"type":345,"tag":685,"props":1328,"children":1329},{"style":698},[1330],{"type":354,"value":1331},"48",{"type":345,"tag":685,"props":1333,"children":1334},{"style":1119},[1335],{"type":354,"value":1336},"*",{"type":345,"tag":685,"props":1338,"children":1339},{"style":710},[1340],{"type":354,"value":1341},"time.Hour))\n",{"type":345,"tag":685,"props":1343,"children":1344},{"class":687,"line":736},[1345,1350,1355,1359,1364],{"type":345,"tag":685,"props":1346,"children":1347},{"style":710},[1348],{"type":354,"value":1349},"_, err ",{"type":345,"tag":685,"props":1351,"children":1352},{"style":1119},[1353],{"type":354,"value":1354},"=",{"type":345,"tag":685,"props":1356,"children":1357},{"style":710},[1358],{"type":354,"value":1291},{"type":345,"tag":685,"props":1360,"children":1361},{"style":692},[1362],{"type":354,"value":1363},"ResumeOutboundEndpoint",{"type":345,"tag":685,"props":1365,"children":1366},{"style":710},[1367],{"type":354,"value":1368},"(endpointID)\n",{"type":345,"tag":685,"props":1370,"children":1371},{"class":687,"line":838},[1372,1376,1380,1384,1389,1394,1399,1403,1408,1413],{"type":345,"tag":685,"props":1373,"children":1374},{"style":710},[1375],{"type":354,"value":1349},{"type":345,"tag":685,"props":1377,"children":1378},{"style":1119},[1379],{"type":354,"value":1354},{"type":345,"tag":685,"props":1381,"children":1382},{"style":710},[1383],{"type":354,"value":1291},{"type":345,"tag":685,"props":1385,"children":1386},{"style":692},[1387],{"type":354,"value":1388},"ReplayMissingOutboundDeliveries",{"type":345,"tag":685,"props":1390,"children":1391},{"style":710},[1392],{"type":354,"value":1393},"(endpointID, ",{"type":345,"tag":685,"props":1395,"children":1396},{"style":692},[1397],{"type":354,"value":1398},"time",{"type":345,"tag":685,"props":1400,"children":1401},{"style":710},[1402],{"type":354,"value":380},{"type":345,"tag":685,"props":1404,"children":1405},{"style":692},[1406],{"type":354,"value":1407},"Time",{"type":345,"tag":685,"props":1409,"children":1410},{"style":710},[1411],{"type":354,"value":1412},"{}) ",{"type":345,"tag":685,"props":1414,"children":1416},{"style":1415},"--shiki-default:#6A737D",[1417],{"type":354,"value":1418},"// zero time: last 24 hours\n",{"type":345,"tag":685,"props":1420,"children":1421},{"class":687,"line":861},[1422,1426,1430,1434,1439],{"type":345,"tag":685,"props":1423,"children":1424},{"style":710},[1425],{"type":354,"value":1349},{"type":345,"tag":685,"props":1427,"children":1428},{"style":1119},[1429],{"type":354,"value":1354},{"type":345,"tag":685,"props":1431,"children":1432},{"style":710},[1433],{"type":354,"value":1291},{"type":345,"tag":685,"props":1435,"children":1436},{"style":692},[1437],{"type":354,"value":1438},"RetryOutboundDelivery",{"type":345,"tag":685,"props":1440,"children":1441},{"style":710},[1442],{"type":354,"value":1443},"(endpointID, messageID)\n",{"type":345,"tag":685,"props":1445,"children":1446},{"class":687,"line":1228},[1447,1452,1456,1460,1465],{"type":345,"tag":685,"props":1448,"children":1449},{"style":710},[1450],{"type":354,"value":1451},"progress, err ",{"type":345,"tag":685,"props":1453,"children":1454},{"style":1119},[1455],{"type":354,"value":1286},{"type":345,"tag":685,"props":1457,"children":1458},{"style":710},[1459],{"type":354,"value":1291},{"type":345,"tag":685,"props":1461,"children":1462},{"style":692},[1463],{"type":354,"value":1464},"GetOutboundRecoveryTask",{"type":345,"tag":685,"props":1466,"children":1467},{"style":710},[1468],{"type":354,"value":1469},"(task.ID)\n",{"type":345,"tag":382,"props":1471,"children":1473},{"id":1472},"watch-endpoint-health",[1474],{"type":354,"value":1475},"Watch endpoint health",{"type":345,"tag":346,"props":1477,"children":1478},{},[1479,1481,1487,1488,1494,1495,1501,1503,1509],{"type":354,"value":1480},"With many customers, some endpoints will always be failing. The gateway tracks this on each endpoint: ",{"type":345,"tag":359,"props":1482,"children":1484},{"className":1483},[],[1485],{"type":354,"value":1486},"state",{"type":354,"value":491},{"type":345,"tag":359,"props":1489,"children":1491},{"className":1490},[],[1492],{"type":354,"value":1493},"consecutive_failures",{"type":354,"value":491},{"type":345,"tag":359,"props":1496,"children":1498},{"className":1497},[],[1499],{"type":354,"value":1500},"failing_since",{"type":354,"value":1502}," and ",{"type":345,"tag":359,"props":1504,"children":1506},{"className":1505},[],[1507],{"type":354,"value":1508},"stats",{"type":354,"value":1510}," (attempts and failures over the last 24 hours). Failing endpoints never open incidents or send email to your account.",{"type":345,"tag":893,"props":1512,"children":1513},{},[1514,1525],{"type":345,"tag":897,"props":1515,"children":1516},{},[1517,1523],{"type":345,"tag":359,"props":1518,"children":1520},{"className":1519},[],[1521],{"type":354,"value":1522},"GET /v1/outbound/health",{"type":354,"value":1524}," counts endpoints by state and reports the account's attempts and failures over the last 24 hours (updated within about 15 seconds).",{"type":345,"tag":897,"props":1526,"children":1527},{},[1528,1534,1536,1542],{"type":345,"tag":359,"props":1529,"children":1531},{"className":1530},[],[1532],{"type":354,"value":1533},"GET /v1/outbound/endpoints?state=failing",{"type":354,"value":1535}," lists failing endpoints across all consumers, longest failing first. Add ",{"type":345,"tag":359,"props":1537,"children":1539},{"className":1538},[],[1540],{"type":354,"value":1541},"consumer",{"type":354,"value":1543}," to narrow it down.",{"type":345,"tag":671,"props":1545,"children":1546},{},[1547],{"type":345,"tag":675,"props":1548,"children":1550},{"className":1107,"code":1549,"language":1109,"meta":318,"style":318},"const { endpoints, stats } = await relay.outbound.health();\nconst failing = await relay.outbound.endpoints.listAll({ state: \"failing\", limit: 20 });\n",[1551],{"type":345,"tag":359,"props":1552,"children":1553},{"__ignoreMap":318},[1554,1607],{"type":345,"tag":685,"props":1555,"children":1556},{"class":687,"line":688},[1557,1561,1566,1571,1575,1579,1584,1588,1592,1597,1602],{"type":345,"tag":685,"props":1558,"children":1559},{"style":1119},[1560],{"type":354,"value":1122},{"type":345,"tag":685,"props":1562,"children":1563},{"style":710},[1564],{"type":354,"value":1565}," { ",{"type":345,"tag":685,"props":1567,"children":1568},{"style":698},[1569],{"type":354,"value":1570},"endpoints",{"type":345,"tag":685,"props":1572,"children":1573},{"style":710},[1574],{"type":354,"value":491},{"type":345,"tag":685,"props":1576,"children":1577},{"style":698},[1578],{"type":354,"value":1508},{"type":345,"tag":685,"props":1580,"children":1581},{"style":710},[1582],{"type":354,"value":1583}," } ",{"type":345,"tag":685,"props":1585,"children":1586},{"style":1119},[1587],{"type":354,"value":1354},{"type":345,"tag":685,"props":1589,"children":1590},{"style":1119},[1591],{"type":354,"value":1137},{"type":345,"tag":685,"props":1593,"children":1594},{"style":710},[1595],{"type":354,"value":1596}," relay.outbound.",{"type":345,"tag":685,"props":1598,"children":1599},{"style":692},[1600],{"type":354,"value":1601},"health",{"type":345,"tag":685,"props":1603,"children":1604},{"style":710},[1605],{"type":354,"value":1606},"();\n",{"type":345,"tag":685,"props":1608,"children":1609},{"class":687,"line":736},[1610,1614,1619,1623,1627,1631,1636,1641,1646,1651,1656],{"type":345,"tag":685,"props":1611,"children":1612},{"style":1119},[1613],{"type":354,"value":1122},{"type":345,"tag":685,"props":1615,"children":1616},{"style":698},[1617],{"type":354,"value":1618}," failing",{"type":345,"tag":685,"props":1620,"children":1621},{"style":1119},[1622],{"type":354,"value":1132},{"type":345,"tag":685,"props":1624,"children":1625},{"style":1119},[1626],{"type":354,"value":1137},{"type":345,"tag":685,"props":1628,"children":1629},{"style":710},[1630],{"type":354,"value":1142},{"type":345,"tag":685,"props":1632,"children":1633},{"style":692},[1634],{"type":354,"value":1635},"listAll",{"type":345,"tag":685,"props":1637,"children":1638},{"style":710},[1639],{"type":354,"value":1640},"({ state: ",{"type":345,"tag":685,"props":1642,"children":1643},{"style":704},[1644],{"type":354,"value":1645},"\"failing\"",{"type":345,"tag":685,"props":1647,"children":1648},{"style":710},[1649],{"type":354,"value":1650},", limit: ",{"type":345,"tag":685,"props":1652,"children":1653},{"style":698},[1654],{"type":354,"value":1655},"20",{"type":345,"tag":685,"props":1657,"children":1658},{"style":710},[1659],{"type":354,"value":1162},{"type":345,"tag":346,"props":1661,"children":1662},{},[1663,1665,1669,1671,1677,1679,1685,1687,1693,1695,1701,1702,1708,1709,1715,1716,1722],{"type":354,"value":1664},"The dashboard shows the same data on the ",{"type":345,"tag":350,"props":1666,"children":1667},{},[1668],{"type":354,"value":326},{"type":354,"value":1670}," tab. Use ",{"type":345,"tag":359,"props":1672,"children":1674},{"className":1673},[],[1675],{"type":354,"value":1676},"POST /v1/outbound/endpoints/{id}/pause",{"type":354,"value":1678}," to stop deliveries to an endpoint your customer is migrating, and ",{"type":345,"tag":359,"props":1680,"children":1682},{"className":1681},[],[1683],{"type":354,"value":1684},".../resume",{"type":354,"value":1686}," to start them again. See ",{"type":345,"tag":374,"props":1688,"children":1690},{"href":1689},"/docs/outbound/receiving#endpoint-states",[1691],{"type":354,"value":1692},"endpoint states",{"type":354,"value":1694}," for how endpoints move between ",{"type":345,"tag":359,"props":1696,"children":1698},{"className":1697},[],[1699],{"type":354,"value":1700},"active",{"type":354,"value":491},{"type":345,"tag":359,"props":1703,"children":1705},{"className":1704},[],[1706],{"type":354,"value":1707},"failing",{"type":354,"value":491},{"type":345,"tag":359,"props":1710,"children":1712},{"className":1711},[],[1713],{"type":354,"value":1714},"paused",{"type":354,"value":1502},{"type":345,"tag":359,"props":1717,"children":1719},{"className":1718},[],[1720],{"type":354,"value":1721},"disabled",{"type":354,"value":380},{"type":345,"tag":382,"props":1724,"children":1726},{"id":1725},"transform-or-drop-payloads-with-functions",[1727],{"type":354,"value":1728},"Transform or drop payloads with Functions",{"type":345,"tag":346,"props":1730,"children":1731},{},[1732,1734,1739,1741,1747,1749,1755],{"type":354,"value":1733},"Attach a ",{"type":345,"tag":374,"props":1735,"children":1736},{"href":280},[1737],{"type":354,"value":1738},"Function",{"type":354,"value":1740}," to an endpoint with ",{"type":345,"tag":359,"props":1742,"children":1744},{"className":1743},[],[1745],{"type":354,"value":1746},"function_id",{"type":354,"value":1748}," to tailor what one customer receives. The Function gets the published JSON payload as ",{"type":345,"tag":359,"props":1750,"children":1752},{"className":1751},[],[1753],{"type":354,"value":1754},"r.body",{"type":354,"value":1756},", and it can:",{"type":345,"tag":893,"props":1758,"children":1759},{},[1760,1773],{"type":345,"tag":897,"props":1761,"children":1762},{},[1763,1765,1771],{"type":354,"value":1764},"replace the body with ",{"type":345,"tag":359,"props":1766,"children":1768},{"className":1767},[],[1769],{"type":354,"value":1770},"r.setBody(...)",{"type":354,"value":1772},". The result must be valid JSON up to 256 KiB.",{"type":345,"tag":897,"props":1774,"children":1775},{},[1776,1778,1784,1786,1791],{"type":354,"value":1777},"drop the message with ",{"type":345,"tag":359,"props":1779,"children":1781},{"className":1780},[],[1782],{"type":354,"value":1783},"r.stopForwarding()",{"type":354,"value":1785},". The delivery is recorded as ",{"type":345,"tag":359,"props":1787,"children":1789},{"className":1788},[],[1790],{"type":354,"value":519},{"type":354,"value":1792},", \"Message dropped by Function\".",{"type":345,"tag":671,"props":1794,"children":1795},{},[1796],{"type":345,"tag":675,"props":1797,"children":1801},{"className":1798,"code":1799,"language":1800,"meta":318,"style":318},"language-js shiki shiki-themes github-dark","const invoice = JSON.parse(r.body)\n\nif (invoice.amount === 0) {\n  r.stopForwarding()\n} else {\n  r.setBody(JSON.stringify({ id: invoice.invoice_id, total: invoice.amount / 100, currency: \"USD\" }))\n}\n","js",[1802],{"type":345,"tag":359,"props":1803,"children":1804},{"__ignoreMap":318},[1805,1840,1849,1877,1895,1913,1974],{"type":345,"tag":685,"props":1806,"children":1807},{"class":687,"line":688},[1808,1812,1817,1821,1826,1830,1835],{"type":345,"tag":685,"props":1809,"children":1810},{"style":1119},[1811],{"type":354,"value":1122},{"type":345,"tag":685,"props":1813,"children":1814},{"style":698},[1815],{"type":354,"value":1816}," invoice",{"type":345,"tag":685,"props":1818,"children":1819},{"style":1119},[1820],{"type":354,"value":1132},{"type":345,"tag":685,"props":1822,"children":1823},{"style":698},[1824],{"type":354,"value":1825}," JSON",{"type":345,"tag":685,"props":1827,"children":1828},{"style":710},[1829],{"type":354,"value":380},{"type":345,"tag":685,"props":1831,"children":1832},{"style":692},[1833],{"type":354,"value":1834},"parse",{"type":345,"tag":685,"props":1836,"children":1837},{"style":710},[1838],{"type":354,"value":1839},"(r.body)\n",{"type":345,"tag":685,"props":1841,"children":1842},{"class":687,"line":736},[1843],{"type":345,"tag":685,"props":1844,"children":1846},{"emptyLinePlaceholder":1845},true,[1847],{"type":354,"value":1848},"\n",{"type":345,"tag":685,"props":1850,"children":1851},{"class":687,"line":838},[1852,1857,1862,1867,1872],{"type":345,"tag":685,"props":1853,"children":1854},{"style":1119},[1855],{"type":354,"value":1856},"if",{"type":345,"tag":685,"props":1858,"children":1859},{"style":710},[1860],{"type":354,"value":1861}," (invoice.amount ",{"type":345,"tag":685,"props":1863,"children":1864},{"style":1119},[1865],{"type":354,"value":1866},"===",{"type":345,"tag":685,"props":1868,"children":1869},{"style":698},[1870],{"type":354,"value":1871}," 0",{"type":345,"tag":685,"props":1873,"children":1874},{"style":710},[1875],{"type":354,"value":1876},") {\n",{"type":345,"tag":685,"props":1878,"children":1879},{"class":687,"line":861},[1880,1885,1890],{"type":345,"tag":685,"props":1881,"children":1882},{"style":710},[1883],{"type":354,"value":1884},"  r.",{"type":345,"tag":685,"props":1886,"children":1887},{"style":692},[1888],{"type":354,"value":1889},"stopForwarding",{"type":345,"tag":685,"props":1891,"children":1892},{"style":710},[1893],{"type":354,"value":1894},"()\n",{"type":345,"tag":685,"props":1896,"children":1897},{"class":687,"line":1228},[1898,1903,1908],{"type":345,"tag":685,"props":1899,"children":1900},{"style":710},[1901],{"type":354,"value":1902},"} ",{"type":345,"tag":685,"props":1904,"children":1905},{"style":1119},[1906],{"type":354,"value":1907},"else",{"type":345,"tag":685,"props":1909,"children":1910},{"style":710},[1911],{"type":354,"value":1912}," {\n",{"type":345,"tag":685,"props":1914,"children":1916},{"class":687,"line":1915},6,[1917,1921,1926,1930,1935,1939,1944,1949,1954,1959,1964,1969],{"type":345,"tag":685,"props":1918,"children":1919},{"style":710},[1920],{"type":354,"value":1884},{"type":345,"tag":685,"props":1922,"children":1923},{"style":692},[1924],{"type":354,"value":1925},"setBody",{"type":345,"tag":685,"props":1927,"children":1928},{"style":710},[1929],{"type":354,"value":1321},{"type":345,"tag":685,"props":1931,"children":1932},{"style":698},[1933],{"type":354,"value":1934},"JSON",{"type":345,"tag":685,"props":1936,"children":1937},{"style":710},[1938],{"type":354,"value":380},{"type":345,"tag":685,"props":1940,"children":1941},{"style":692},[1942],{"type":354,"value":1943},"stringify",{"type":345,"tag":685,"props":1945,"children":1946},{"style":710},[1947],{"type":354,"value":1948},"({ id: invoice.invoice_id, total: invoice.amount ",{"type":345,"tag":685,"props":1950,"children":1951},{"style":1119},[1952],{"type":354,"value":1953},"/",{"type":345,"tag":685,"props":1955,"children":1956},{"style":698},[1957],{"type":354,"value":1958}," 100",{"type":345,"tag":685,"props":1960,"children":1961},{"style":710},[1962],{"type":354,"value":1963},", currency: ",{"type":345,"tag":685,"props":1965,"children":1966},{"style":704},[1967],{"type":354,"value":1968},"\"USD\"",{"type":345,"tag":685,"props":1970,"children":1971},{"style":710},[1972],{"type":354,"value":1973}," }))\n",{"type":345,"tag":685,"props":1975,"children":1977},{"class":687,"line":1976},7,[1978],{"type":345,"tag":685,"props":1979,"children":1980},{"style":710},[1981],{"type":354,"value":1982},"}\n",{"type":345,"tag":346,"props":1984,"children":1985},{},[1986],{"type":354,"value":1987},"Outbound Functions can change only the body. The method, URL and headers belong to the endpoint, so a Function that changes them fails the delivery with an explanatory error. The Function runs once per message and endpoint, and its result is reused for every retry and replay. The Function attached when a message is published is the one that runs for it. If a worker crashes before the result is saved, the Function can run again, so avoid external side effects.",{"type":345,"tag":382,"props":1989,"children":1991},{"id":1990},"limits",[1992],{"type":354,"value":1993},"Limits",{"type":345,"tag":389,"props":1995,"children":1996},{},[1997,2013],{"type":345,"tag":393,"props":1998,"children":1999},{},[2000],{"type":345,"tag":397,"props":2001,"children":2002},{},[2003,2008],{"type":345,"tag":401,"props":2004,"children":2005},{},[2006],{"type":354,"value":2007},"Limit",{"type":345,"tag":401,"props":2009,"children":2010},{},[2011],{"type":354,"value":2012},"Value",{"type":345,"tag":412,"props":2014,"children":2015},{},[2016,2029,2042,2062,2075,2088,2107,2120,2133,2146,2167,2180,2193],{"type":345,"tag":397,"props":2017,"children":2018},{},[2019,2024],{"type":345,"tag":419,"props":2020,"children":2021},{},[2022],{"type":354,"value":2023},"Payload",{"type":345,"tag":419,"props":2025,"children":2026},{},[2027],{"type":354,"value":2028},"JSON, 256 KiB",{"type":345,"tag":397,"props":2030,"children":2031},{},[2032,2037],{"type":345,"tag":419,"props":2033,"children":2034},{},[2035],{"type":354,"value":2036},"Consumers",{"type":345,"tag":419,"props":2038,"children":2039},{},[2040],{"type":354,"value":2041},"1,000 per account",{"type":345,"tag":397,"props":2043,"children":2044},{},[2045,2050],{"type":345,"tag":419,"props":2046,"children":2047},{},[2048],{"type":354,"value":2049},"Event types",{"type":345,"tag":419,"props":2051,"children":2052},{},[2053,2055,2060],{"type":354,"value":2054},"1,000 per account; 100 per endpoint (or ",{"type":345,"tag":359,"props":2056,"children":2058},{"className":2057},[],[2059],{"type":354,"value":1336},{"type":354,"value":2061},")",{"type":345,"tag":397,"props":2063,"children":2064},{},[2065,2070],{"type":345,"tag":419,"props":2066,"children":2067},{},[2068],{"type":354,"value":2069},"Endpoints",{"type":345,"tag":419,"props":2071,"children":2072},{},[2073],{"type":354,"value":2074},"100 per consumer, one per URL",{"type":345,"tag":397,"props":2076,"children":2077},{},[2078,2083],{"type":345,"tag":419,"props":2079,"children":2080},{},[2081],{"type":354,"value":2082},"Custom headers",{"type":345,"tag":419,"props":2084,"children":2085},{},[2086],{"type":354,"value":2087},"32 per endpoint",{"type":345,"tag":397,"props":2089,"children":2090},{},[2091,2102],{"type":345,"tag":419,"props":2092,"children":2093},{},[2094,2096],{"type":354,"value":2095},"Consumer IDs, event type names, idempotency keys, ",{"type":345,"tag":359,"props":2097,"children":2099},{"className":2098},[],[2100],{"type":354,"value":2101},"event_id",{"type":345,"tag":419,"props":2103,"children":2104},{},[2105],{"type":354,"value":2106},"Up to 128 characters",{"type":345,"tag":397,"props":2108,"children":2109},{},[2110,2115],{"type":345,"tag":419,"props":2111,"children":2112},{},[2113],{"type":354,"value":2114},"Rate",{"type":345,"tag":419,"props":2116,"children":2117},{},[2118],{"type":354,"value":2119},"50 deliveries per second per endpoint by default, up to 1,000; up to 16 in flight at once (or the rate, if lower)",{"type":345,"tag":397,"props":2121,"children":2122},{},[2123,2128],{"type":345,"tag":419,"props":2124,"children":2125},{},[2126],{"type":354,"value":2127},"Attempt timeout",{"type":345,"tag":419,"props":2129,"children":2130},{},[2131],{"type":354,"value":2132},"15 seconds by default, up to 60",{"type":345,"tag":397,"props":2134,"children":2135},{},[2136,2141],{"type":345,"tag":419,"props":2137,"children":2138},{},[2139],{"type":354,"value":2140},"Retry window",{"type":345,"tag":419,"props":2142,"children":2143},{},[2144],{"type":354,"value":2145},"Up to 8 attempts within 48 hours",{"type":345,"tag":397,"props":2147,"children":2148},{},[2149,2154],{"type":345,"tag":419,"props":2150,"children":2151},{},[2152],{"type":354,"value":2153},"Messages awaiting preparation",{"type":345,"tag":419,"props":2155,"children":2156},{},[2157,2159,2165],{"type":354,"value":2158},"10,000 per account (",{"type":345,"tag":359,"props":2160,"children":2162},{"className":2161},[],[2163],{"type":354,"value":2164},"429",{"type":354,"value":2166}," beyond that)",{"type":345,"tag":397,"props":2168,"children":2169},{},[2170,2175],{"type":345,"tag":419,"props":2171,"children":2172},{},[2173],{"type":354,"value":2174},"Active recovery tasks",{"type":345,"tag":419,"props":2176,"children":2177},{},[2178],{"type":354,"value":2179},"10 per account",{"type":345,"tag":397,"props":2181,"children":2182},{},[2183,2188],{"type":345,"tag":419,"props":2184,"children":2185},{},[2186],{"type":354,"value":2187},"Recorded response",{"type":345,"tag":419,"props":2189,"children":2190},{},[2191],{"type":354,"value":2192},"Headers up to 8 KiB per attempt; body 4 KiB per attempt, 120 KiB for the latest response",{"type":345,"tag":397,"props":2194,"children":2195},{},[2196,2201],{"type":345,"tag":419,"props":2197,"children":2198},{},[2199],{"type":354,"value":2200},"History",{"type":345,"tag":419,"props":2202,"children":2203},{},[2204],{"type":354,"value":2205},"35 days",{"type":345,"tag":382,"props":2207,"children":2209},{"id":2208},"mcp-tools-and-the-dashboard-agent",[2210],{"type":354,"value":2211},"MCP tools and the dashboard agent",{"type":345,"tag":346,"props":2213,"children":2214},{},[2215,2217,2221],{"type":354,"value":2216},"Every REST operation has an ",{"type":345,"tag":374,"props":2218,"children":2219},{"href":62},[2220],{"type":354,"value":327},{"type":354,"value":2222}," tool with the same name. The dashboard agent uses the same tools, so you can ask it things like \"which endpoints are failing?\" or \"recover customer_42's failed deliveries since Monday\". Tools follow your role and any outbound token restriction, and configuration, secret and recovery changes are audited the same way as REST calls.",{"type":345,"tag":389,"props":2224,"children":2225},{},[2226,2242],{"type":345,"tag":393,"props":2227,"children":2228},{},[2229],{"type":345,"tag":397,"props":2230,"children":2231},{},[2232,2237],{"type":345,"tag":401,"props":2233,"children":2234},{},[2235],{"type":354,"value":2236},"Area",{"type":345,"tag":401,"props":2238,"children":2239},{},[2240],{"type":354,"value":2241},"Tools",{"type":345,"tag":412,"props":2243,"children":2244},{},[2245,2269,2306,2336,2415,2446],{"type":345,"tag":397,"props":2246,"children":2247},{},[2248,2253],{"type":345,"tag":419,"props":2249,"children":2250},{},[2251],{"type":354,"value":2252},"Access",{"type":345,"tag":419,"props":2254,"children":2255},{},[2256,2262,2263],{"type":345,"tag":359,"props":2257,"children":2259},{"className":2258},[],[2260],{"type":354,"value":2261},"get_outbound_access",{"type":354,"value":491},{"type":345,"tag":359,"props":2264,"children":2266},{"className":2265},[],[2267],{"type":354,"value":2268},"request_outbound_access",{"type":345,"tag":397,"props":2270,"children":2271},{},[2272,2276],{"type":345,"tag":419,"props":2273,"children":2274},{},[2275],{"type":354,"value":2036},{"type":345,"tag":419,"props":2277,"children":2278},{},[2279,2285,2286,2292,2293,2299,2300],{"type":345,"tag":359,"props":2280,"children":2282},{"className":2281},[],[2283],{"type":354,"value":2284},"list_outbound_consumers",{"type":354,"value":491},{"type":345,"tag":359,"props":2287,"children":2289},{"className":2288},[],[2290],{"type":354,"value":2291},"get_outbound_consumer",{"type":354,"value":491},{"type":345,"tag":359,"props":2294,"children":2296},{"className":2295},[],[2297],{"type":354,"value":2298},"upsert_outbound_consumer",{"type":354,"value":491},{"type":345,"tag":359,"props":2301,"children":2303},{"className":2302},[],[2304],{"type":354,"value":2305},"delete_outbound_consumer",{"type":345,"tag":397,"props":2307,"children":2308},{},[2309,2313],{"type":345,"tag":419,"props":2310,"children":2311},{},[2312],{"type":354,"value":2049},{"type":345,"tag":419,"props":2314,"children":2315},{},[2316,2322,2323,2329,2330],{"type":345,"tag":359,"props":2317,"children":2319},{"className":2318},[],[2320],{"type":354,"value":2321},"list_outbound_event_types",{"type":354,"value":491},{"type":345,"tag":359,"props":2324,"children":2326},{"className":2325},[],[2327],{"type":354,"value":2328},"save_outbound_event_type",{"type":354,"value":491},{"type":345,"tag":359,"props":2331,"children":2333},{"className":2332},[],[2334],{"type":354,"value":2335},"delete_outbound_event_type",{"type":345,"tag":397,"props":2337,"children":2338},{},[2339,2343],{"type":345,"tag":419,"props":2340,"children":2341},{},[2342],{"type":354,"value":2069},{"type":345,"tag":419,"props":2344,"children":2345},{},[2346,2352,2353,2359,2360,2366,2367,2373,2374,2380,2381,2387,2388,2394,2395,2401,2402,2408,2409],{"type":345,"tag":359,"props":2347,"children":2349},{"className":2348},[],[2350],{"type":354,"value":2351},"list_outbound_endpoints",{"type":354,"value":491},{"type":345,"tag":359,"props":2354,"children":2356},{"className":2355},[],[2357],{"type":354,"value":2358},"get_outbound_endpoint",{"type":354,"value":491},{"type":345,"tag":359,"props":2361,"children":2363},{"className":2362},[],[2364],{"type":354,"value":2365},"create_outbound_endpoint",{"type":354,"value":491},{"type":345,"tag":359,"props":2368,"children":2370},{"className":2369},[],[2371],{"type":354,"value":2372},"update_outbound_endpoint",{"type":354,"value":491},{"type":345,"tag":359,"props":2375,"children":2377},{"className":2376},[],[2378],{"type":354,"value":2379},"delete_outbound_endpoint",{"type":354,"value":491},{"type":345,"tag":359,"props":2382,"children":2384},{"className":2383},[],[2385],{"type":354,"value":2386},"pause_outbound_endpoint",{"type":354,"value":491},{"type":345,"tag":359,"props":2389,"children":2391},{"className":2390},[],[2392],{"type":354,"value":2393},"resume_outbound_endpoint",{"type":354,"value":491},{"type":345,"tag":359,"props":2396,"children":2398},{"className":2397},[],[2399],{"type":354,"value":2400},"rotate_outbound_endpoint_secret",{"type":354,"value":491},{"type":345,"tag":359,"props":2403,"children":2405},{"className":2404},[],[2406],{"type":354,"value":2407},"reveal_outbound_endpoint_secret",{"type":354,"value":491},{"type":345,"tag":359,"props":2410,"children":2412},{"className":2411},[],[2413],{"type":354,"value":2414},"get_outbound_health",{"type":345,"tag":397,"props":2416,"children":2417},{},[2418,2423],{"type":345,"tag":419,"props":2419,"children":2420},{},[2421],{"type":354,"value":2422},"Messages",{"type":345,"tag":419,"props":2424,"children":2425},{},[2426,2432,2433,2439,2440],{"type":345,"tag":359,"props":2427,"children":2429},{"className":2428},[],[2430],{"type":354,"value":2431},"publish_outbound_message",{"type":354,"value":491},{"type":345,"tag":359,"props":2434,"children":2436},{"className":2435},[],[2437],{"type":354,"value":2438},"list_outbound_messages",{"type":354,"value":491},{"type":345,"tag":359,"props":2441,"children":2443},{"className":2442},[],[2444],{"type":354,"value":2445},"get_outbound_message",{"type":345,"tag":397,"props":2447,"children":2448},{},[2449,2454],{"type":345,"tag":419,"props":2450,"children":2451},{},[2452],{"type":354,"value":2453},"Deliveries and recovery",{"type":345,"tag":419,"props":2455,"children":2456},{},[2457,2463,2464,2470,2471,2477,2478,2484,2485],{"type":345,"tag":359,"props":2458,"children":2460},{"className":2459},[],[2461],{"type":354,"value":2462},"list_outbound_deliveries",{"type":354,"value":491},{"type":345,"tag":359,"props":2465,"children":2467},{"className":2466},[],[2468],{"type":354,"value":2469},"retry_outbound_delivery",{"type":354,"value":491},{"type":345,"tag":359,"props":2472,"children":2474},{"className":2473},[],[2475],{"type":354,"value":2476},"recover_outbound_deliveries",{"type":354,"value":491},{"type":345,"tag":359,"props":2479,"children":2481},{"className":2480},[],[2482],{"type":354,"value":2483},"replay_missing_outbound_deliveries",{"type":354,"value":491},{"type":345,"tag":359,"props":2486,"children":2488},{"className":2487},[],[2489],{"type":354,"value":2490},"get_outbound_recovery_task",{"type":345,"tag":2492,"props":2493,"children":2494},"style",{},[2495],{"type":354,"value":2496},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":318,"searchDepth":838,"depth":838,"links":2498},[2499,2500,2501,2502,2503,2504,2505],{"id":384,"depth":736,"text":387},{"id":745,"depth":736,"text":748},{"id":875,"depth":736,"text":878},{"id":1472,"depth":736,"text":1475},{"id":1725,"depth":736,"text":1728},{"id":1990,"depth":736,"text":1993},{"id":2208,"depth":736,"text":2211},"markdown","content:docs:outbound:4.operating.md","content","docs/outbound/4.operating.md","docs/outbound/4.operating","md",{"loc":74},1791655669663]