[{"data":1,"prerenderedAt":893},["ShallowReactive",2],{"navigation_docs":3,"-docs-events-getting-started-event-delivery":214,"-docs-events-getting-started-event-delivery-surround":888},[4,74,96,130],{"title":5,"path":6,"stem":7,"children":8},"Assets API","\u002Fdocs\u002Fassets","docs\u002Fassets\u002Findex",[9,10,32,57],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13,"children":14,"page":31},"Getting Started","\u002Fdocs\u002Fassets\u002Fgetting-started","docs\u002Fassets\u002F1.getting-started",[15,19,23,27],{"title":16,"path":17,"stem":18},"Base URL","\u002Fdocs\u002Fassets\u002Fgetting-started\u002Fbase-url","docs\u002Fassets\u002F1.getting-started\u002F1.base-url",{"title":20,"path":21,"stem":22},"Important Notes","\u002Fdocs\u002Fassets\u002Fgetting-started\u002Fimportant-notes","docs\u002Fassets\u002F1.getting-started\u002F2.important-notes",{"title":24,"path":25,"stem":26},"URL Format","\u002Fdocs\u002Fassets\u002Fgetting-started\u002Furl-format","docs\u002Fassets\u002F1.getting-started\u002F3.url-format",{"title":28,"path":29,"stem":30},"Custom Domains","\u002Fdocs\u002Fassets\u002Fgetting-started\u002Fcustom-domains","docs\u002Fassets\u002F1.getting-started\u002F4.custom-domains",false,{"title":33,"path":34,"stem":35,"children":36,"page":31},"Usage","\u002Fdocs\u002Fassets\u002Fusage","docs\u002Fassets\u002F2.usage",[37,41,45,49,53],{"title":38,"path":39,"stem":40},"Transforms","\u002Fdocs\u002Fassets\u002Fusage\u002Ftransforms","docs\u002Fassets\u002F2.usage\u002F1.transforms",{"title":42,"path":43,"stem":44},"Caching","\u002Fdocs\u002Fassets\u002Fusage\u002Fcaching","docs\u002Fassets\u002F2.usage\u002F2.caching",{"title":46,"path":47,"stem":48},"Recipes","\u002Fdocs\u002Fassets\u002Fusage\u002Frecipes","docs\u002Fassets\u002F2.usage\u002F3.recipes",{"title":50,"path":51,"stem":52},"Best Practices","\u002Fdocs\u002Fassets\u002Fusage\u002Fbest-practices","docs\u002Fassets\u002F2.usage\u002F4.best-practices",{"title":54,"path":55,"stem":56},"Reference","\u002Fdocs\u002Fassets\u002Fusage\u002Freference","docs\u002Fassets\u002F2.usage\u002F5.reference",{"title":58,"path":59,"stem":60,"children":61,"page":31},"Integration","\u002Fdocs\u002Fassets\u002Fintegration","docs\u002Fassets\u002F3.integration",[62,66,70],{"title":63,"path":64,"stem":65},"Nuxt","\u002Fdocs\u002Fassets\u002Fintegration\u002Fnuxt","docs\u002Fassets\u002F3.integration\u002F1.nuxt",{"title":67,"path":68,"stem":69},"Next.js","\u002Fdocs\u002Fassets\u002Fintegration\u002Fnextjs","docs\u002Fassets\u002F3.integration\u002F2.nextjs",{"title":71,"path":72,"stem":73},"Plain HTML","\u002Fdocs\u002Fassets\u002Fintegration\u002Fhtml","docs\u002Fassets\u002F3.integration\u002F3.html",{"title":75,"path":76,"stem":77,"children":78},"Events API","\u002Fdocs\u002Fevents","docs\u002Fevents\u002Findex",[79,80],{"title":75,"path":76,"stem":77},{"title":11,"path":81,"stem":82,"children":83,"page":31},"\u002Fdocs\u002Fevents\u002Fgetting-started","docs\u002Fevents\u002F1.getting-started",[84,88,92],{"title":85,"path":86,"stem":87},"Subscribing","\u002Fdocs\u002Fevents\u002Fgetting-started\u002Fsubscribing","docs\u002Fevents\u002F1.getting-started\u002F1.subscribing",{"title":89,"path":90,"stem":91},"Event Delivery","\u002Fdocs\u002Fevents\u002Fgetting-started\u002Fevent-delivery","docs\u002Fevents\u002F1.getting-started\u002F2.event-delivery",{"title":93,"path":94,"stem":95},"Event Reference","\u002Fdocs\u002Fevents\u002Fgetting-started\u002Fevent-reference","docs\u002Fevents\u002F1.getting-started\u002F3.event-reference",{"title":97,"path":98,"stem":99,"children":100},"Integrations API","\u002Fdocs\u002Fintegrations","docs\u002Fintegrations\u002Findex",[101,102],{"title":97,"path":98,"stem":99},{"title":11,"path":103,"stem":104,"children":105,"page":31},"\u002Fdocs\u002Fintegrations\u002Fgetting-started","docs\u002Fintegrations\u002F1.getting-started",[106,110,114,118,122,126],{"title":107,"path":108,"stem":109},"Why Use It?","\u002Fdocs\u002Fintegrations\u002Fgetting-started\u002Fwhy-integrations-api","docs\u002Fintegrations\u002F1.getting-started\u002F1.why-integrations-api",{"title":111,"path":112,"stem":113},"Use Cases","\u002Fdocs\u002Fintegrations\u002Fgetting-started\u002Fwho-is-it-for","docs\u002Fintegrations\u002F1.getting-started\u002F2.who-is-it-for",{"title":115,"path":116,"stem":117},"Pre-built Connectors","\u002Fdocs\u002Fintegrations\u002Fgetting-started\u002Fpre-built-integrations","docs\u002Fintegrations\u002F1.getting-started\u002F3.pre-built-integrations",{"title":119,"path":120,"stem":121},"Custom Inbound","\u002Fdocs\u002Fintegrations\u002Fgetting-started\u002Fcustom-inbound-api","docs\u002Fintegrations\u002F1.getting-started\u002F4.custom-inbound-api",{"title":123,"path":124,"stem":125},"Event Lifecycle","\u002Fdocs\u002Fintegrations\u002Fgetting-started\u002Fevent-lifecycle","docs\u002Fintegrations\u002F1.getting-started\u002F5.event-lifecycle",{"title":127,"path":128,"stem":129},"API Endpoints","\u002Fdocs\u002Fintegrations\u002Fgetting-started\u002Fmanagement-api-endpoints","docs\u002Fintegrations\u002F1.getting-started\u002F6.management-api-endpoints",{"title":131,"path":132,"stem":133,"children":134,"redirect":136},"MCP Server","\u002Fdocs\u002Fmcp","docs\u002Fmcp\u002Findex",[135,137,156,189],{"title":131,"path":132,"stem":133,"redirect":136},"\u002Fdocs\u002Fmcp\u002Fgetting-started\u002Fvscode",{"title":11,"path":138,"stem":139,"children":140,"page":31},"\u002Fdocs\u002Fmcp\u002Fgetting-started","docs\u002Fmcp\u002F1.getting-started",[141,144,148,152],{"title":142,"path":136,"stem":143},"VS Code","docs\u002Fmcp\u002F1.getting-started\u002F1.vscode",{"title":145,"path":146,"stem":147},"Claude Desktop","\u002Fdocs\u002Fmcp\u002Fgetting-started\u002Fclaude-desktop","docs\u002Fmcp\u002F1.getting-started\u002F2.claude-desktop",{"title":149,"path":150,"stem":151},"Cursor","\u002Fdocs\u002Fmcp\u002Fgetting-started\u002Fcursor","docs\u002Fmcp\u002F1.getting-started\u002F3.cursor",{"title":153,"path":154,"stem":155},"Verify Connection","\u002Fdocs\u002Fmcp\u002Fgetting-started\u002Fverify","docs\u002Fmcp\u002F1.getting-started\u002F4.verify",{"title":157,"path":158,"stem":159,"children":160,"page":31},"Tools","\u002Fdocs\u002Fmcp\u002Ftools","docs\u002Fmcp\u002F2.tools",[161,165,169,173,177,181,185],{"title":162,"path":163,"stem":164},"list_endpoints","\u002Fdocs\u002Fmcp\u002Ftools\u002Flist-endpoints","docs\u002Fmcp\u002F2.tools\u002F1.list-endpoints",{"title":166,"path":167,"stem":168},"get_endpoint","\u002Fdocs\u002Fmcp\u002Ftools\u002Fget-endpoint","docs\u002Fmcp\u002F2.tools\u002F2.get-endpoint",{"title":170,"path":171,"stem":172},"get_schema","\u002Fdocs\u002Fmcp\u002Ftools\u002Fget-schema","docs\u002Fmcp\u002F2.tools\u002F3.get-schema",{"title":174,"path":175,"stem":176},"list_schemas","\u002Fdocs\u002Fmcp\u002Ftools\u002Flist-schemas","docs\u002Fmcp\u002F2.tools\u002F4.list-schemas",{"title":178,"path":179,"stem":180},"search_docs","\u002Fdocs\u002Fmcp\u002Ftools\u002Fsearch-docs","docs\u002Fmcp\u002F2.tools\u002F5.search-docs",{"title":182,"path":183,"stem":184},"get_api_overview","\u002Fdocs\u002Fmcp\u002Ftools\u002Fget-api-overview","docs\u002Fmcp\u002F2.tools\u002F6.get-api-overview",{"title":186,"path":187,"stem":188},"get_description","\u002Fdocs\u002Fmcp\u002Ftools\u002Fget-description","docs\u002Fmcp\u002F2.tools\u002F7.get-description",{"title":190,"path":191,"stem":192,"children":193,"page":31},"Examples","\u002Fdocs\u002Fmcp\u002Fexamples","docs\u002Fmcp\u002F3.examples",[194,198,202,206,210],{"title":195,"path":196,"stem":197},"Exploring an API","\u002Fdocs\u002Fmcp\u002Fexamples\u002Fexploring-an-api","docs\u002Fmcp\u002F3.examples\u002F1.exploring-an-api",{"title":199,"path":200,"stem":201},"Building a Feature","\u002Fdocs\u002Fmcp\u002Fexamples\u002Fbuilding-a-feature","docs\u002Fmcp\u002F3.examples\u002F2.building-a-feature",{"title":203,"path":204,"stem":205},"Understanding Models","\u002Fdocs\u002Fmcp\u002Fexamples\u002Funderstanding-models","docs\u002Fmcp\u002F3.examples\u002F3.understanding-models",{"title":207,"path":208,"stem":209},"Code Review","\u002Fdocs\u002Fmcp\u002Fexamples\u002Fcode-review","docs\u002Fmcp\u002F3.examples\u002F4.code-review",{"title":211,"path":212,"stem":213},"Tips","\u002Fdocs\u002Fmcp\u002Fexamples\u002Ftips","docs\u002Fmcp\u002F3.examples\u002F5.tips",{"id":215,"title":89,"body":216,"description":882,"extension":883,"links":884,"meta":885,"navigation":273,"path":90,"seo":886,"stem":91,"__hash__":887},"docs\u002Fdocs\u002Fevents\u002F1.getting-started\u002F2.event-delivery.md",{"type":217,"value":218,"toc":863},"minimark",[219,223,227,232,347,352,355,412,419,423,430,434,437,441,449,460,464,470,476,480,486,496,502,555,563,567,586,592,598,610,614,623,627,708,712,719,773,777,787,791,797,801,859],[220,221,89],"h1",{"id":222},"event-delivery",[224,225,226],"p",{},"When a domain event matches one of your subscriptions, Avvyr sends an HTTP POST to your destination URL. This page covers the payload format, authentication, headers, retry behavior, and how to verify signatures.",[228,229,231],"h2",{"id":230},"request-format","Request format",[233,234,239],"pre",{"className":235,"code":236,"language":237,"meta":238,"style":238},"language-http shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","POST https:\u002F\u002Fyour-system.com\u002Fwebhooks\u002Favvyr\nContent-Type: application\u002Fjson\nX-Webhook-Event: orderCreated\nX-Webhook-Delivery: 550e8400-e29b-41d4-a716-446655440000\n\n{\n  \"_meta\": {\n    \"eventType\": \"orderCreated\",\n    \"entityType\": \"order\",\n    \"tenantId\": \"676140c4...\",\n    \"messageId\": \"abc123...\",\n    \"timestamp\": \"2025-06-15T14:30:00.000Z\"\n  },\n  \"data\": {\n    \u002F\u002F Full entity payload\n  }\n}\n","http","",[240,241,242,250,256,262,268,275,281,287,293,299,305,311,317,323,329,335,341],"code",{"__ignoreMap":238},[243,244,247],"span",{"class":245,"line":246},"line",1,[243,248,249],{},"POST https:\u002F\u002Fyour-system.com\u002Fwebhooks\u002Favvyr\n",[243,251,253],{"class":245,"line":252},2,[243,254,255],{},"Content-Type: application\u002Fjson\n",[243,257,259],{"class":245,"line":258},3,[243,260,261],{},"X-Webhook-Event: orderCreated\n",[243,263,265],{"class":245,"line":264},4,[243,266,267],{},"X-Webhook-Delivery: 550e8400-e29b-41d4-a716-446655440000\n",[243,269,271],{"class":245,"line":270},5,[243,272,274],{"emptyLinePlaceholder":273},true,"\n",[243,276,278],{"class":245,"line":277},6,[243,279,280],{},"{\n",[243,282,284],{"class":245,"line":283},7,[243,285,286],{},"  \"_meta\": {\n",[243,288,290],{"class":245,"line":289},8,[243,291,292],{},"    \"eventType\": \"orderCreated\",\n",[243,294,296],{"class":245,"line":295},9,[243,297,298],{},"    \"entityType\": \"order\",\n",[243,300,302],{"class":245,"line":301},10,[243,303,304],{},"    \"tenantId\": \"676140c4...\",\n",[243,306,308],{"class":245,"line":307},11,[243,309,310],{},"    \"messageId\": \"abc123...\",\n",[243,312,314],{"class":245,"line":313},12,[243,315,316],{},"    \"timestamp\": \"2025-06-15T14:30:00.000Z\"\n",[243,318,320],{"class":245,"line":319},13,[243,321,322],{},"  },\n",[243,324,326],{"class":245,"line":325},14,[243,327,328],{},"  \"data\": {\n",[243,330,332],{"class":245,"line":331},15,[243,333,334],{},"    \u002F\u002F Full entity payload\n",[243,336,338],{"class":245,"line":337},16,[243,339,340],{},"  }\n",[243,342,344],{"class":245,"line":343},17,[243,345,346],{},"}\n",[348,349,351],"h3",{"id":350},"headers","Headers",[224,353,354],{},"Every webhook request includes these headers:",[356,357,358,371],"table",{},[359,360,361],"thead",{},[362,363,364,368],"tr",{},[365,366,367],"th",{},"Header",[365,369,370],{},"Description",[372,373,374,388,402],"tbody",{},[362,375,376,382],{},[377,378,379],"td",{},[240,380,381],{},"Content-Type",[377,383,384,385],{},"Always ",[240,386,387],{},"application\u002Fjson",[362,389,390,395],{},[377,391,392],{},[240,393,394],{},"X-Webhook-Event",[377,396,397,398,401],{},"The event type (e.g. ",[240,399,400],{},"orderCreated",")",[362,403,404,409],{},[377,405,406],{},[240,407,408],{},"X-Webhook-Delivery",[377,410,411],{},"Unique ID for this delivery attempt — use for deduplication",[224,413,414,415,418],{},"Plus any ",[240,416,417],{},"additionalHeaders"," you configured on the subscription.",[228,420,422],{"id":421},"authentication","Authentication",[224,424,425,426,429],{},"You can configure how Avvyr authenticates with your endpoint. Set ",[240,427,428],{},"authType"," when creating the subscription.",[348,431,433],{"id":432},"none-default","None (default)",[224,435,436],{},"No authentication header is sent. Use this only for endpoints behind a firewall or with their own access controls.",[348,438,440],{"id":439},"basic","Basic",[233,442,447],{"className":443,"code":445,"language":446},[444],"language-text","Authorization: Basic base64(username:password)\n","text",[240,448,445],{"__ignoreMap":238},[224,450,451,452,455,456,459],{},"Set ",[240,453,454],{},"authUsername"," and ",[240,457,458],{},"authPassword"," on the subscription.",[348,461,463],{"id":462},"bearer","Bearer",[233,465,468],{"className":466,"code":467,"language":446},[444],"Authorization: Bearer {token}\n",[240,469,467],{"__ignoreMap":238},[224,471,451,472,475],{},[240,473,474],{},"authToken"," on the subscription. Useful when your endpoint expects a static API key or JWT.",[348,477,479],{"id":478},"hmac","HMAC",[233,481,484],{"className":482,"code":483,"language":446},[444],"X-Webhook-Signature: sha256={hex_digest}\n",[240,485,483],{"__ignoreMap":238},[224,487,451,488,491,492,495],{},[240,489,490],{},"hmacSecret"," on the subscription. Avvyr computes an HMAC-SHA256 of the request body using your secret and sends the result in the ",[240,493,494],{},"X-Webhook-Signature"," header.",[224,497,498],{},[499,500,501],"strong",{},"Verifying the signature on your side:",[233,503,507],{"className":504,"code":505,"language":506,"meta":238,"style":238},"language-javascript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","const crypto = require(\"crypto\");\n\nfunction verifySignature(body, signature, secret) {\n  const expected = \"sha256=\" + crypto.createHmac(\"sha256\", secret).update(body, \"utf8\").digest(\"hex\");\n\n  return crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expected));\n}\n\n\u002F\u002F In your webhook handler:\nconst isValid = verifySignature(rawBody, req.headers[\"x-webhook-signature\"], \"your-hmac-secret\");\n","javascript",[240,508,509,514,518,523,528,532,537,541,545,550],{"__ignoreMap":238},[243,510,511],{"class":245,"line":246},[243,512,513],{},"const crypto = require(\"crypto\");\n",[243,515,516],{"class":245,"line":252},[243,517,274],{"emptyLinePlaceholder":273},[243,519,520],{"class":245,"line":258},[243,521,522],{},"function verifySignature(body, signature, secret) {\n",[243,524,525],{"class":245,"line":264},[243,526,527],{},"  const expected = \"sha256=\" + crypto.createHmac(\"sha256\", secret).update(body, \"utf8\").digest(\"hex\");\n",[243,529,530],{"class":245,"line":270},[243,531,274],{"emptyLinePlaceholder":273},[243,533,534],{"class":245,"line":277},[243,535,536],{},"  return crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expected));\n",[243,538,539],{"class":245,"line":283},[243,540,346],{},[243,542,543],{"class":245,"line":289},[243,544,274],{"emptyLinePlaceholder":273},[243,546,547],{"class":245,"line":295},[243,548,549],{},"\u002F\u002F In your webhook handler:\n",[243,551,552],{"class":245,"line":301},[243,553,554],{},"const isValid = verifySignature(rawBody, req.headers[\"x-webhook-signature\"], \"your-hmac-secret\");\n",[556,557,559,562],"callout",{"icon":558},"i-lucide-shield",[499,560,561],{},"HMAC is recommended"," for production use. It lets you verify that the request genuinely came from Avvyr and wasn't tampered with.",[228,564,566],{"id":565},"expected-response","Expected response",[224,568,569,570,573,574,577,578,581,582,585],{},"Avvyr only checks the ",[499,571,572],{},"HTTP status code"," to determine if the event was received. Return any ",[240,575,576],{},"2xx"," status (e.g. ",[240,579,580],{},"200 OK"," or ",[240,583,584],{},"201 Created",") — no response body is required.",[233,587,590],{"className":588,"code":589,"language":446},[444],"HTTP 200 OK\n",[240,591,589],{"__ignoreMap":238},[224,593,594,595,597],{},"That's it. We don't inspect the response body, headers, or anything else. A ",[240,596,576],{}," status means \"received\" and the event is marked as delivered.",[556,599,602,605,606,609],{"icon":600,"color":601},"i-lucide-alert-triangle","warning",[499,603,604],{},"Events are delivered asynchronously by design."," Do not process the event synchronously inside your handler. Acknowledge receipt immediately by returning ",[240,607,608],{},"200",", then process the data in a background job. If your endpoint takes too long to respond, the delivery is treated as failed and will be retried — which can lead to duplicate processing.",[228,611,613],{"id":612},"retry-behavior","Retry behavior",[224,615,616,617,455,620,459],{},"If your endpoint returns an error, Avvyr can retry the delivery. Enable retries by setting ",[240,618,619],{},"retryEnabled: true",[240,621,622],{},"retryCount",[348,624,626],{"id":625},"what-gets-retried","What gets retried",[356,628,629,639],{},[359,630,631],{},[362,632,633,636],{},[365,634,635],{},"Response",[365,637,638],{},"Retried?",[372,640,641,654,665,678,688,698],{},[362,642,643,645],{},[377,644,576],{},[377,646,647,653],{},[648,649],"icon",{"className":650,"name":652},[651],"text-neutral-400","i-lucide-x"," Success — no retry",[362,655,656,659],{},[377,657,658],{},"4xx (except 408, 429)",[377,660,661,664],{},[648,662],{"className":663,"name":652},[651]," Client error — not retried",[362,666,667,670],{},[377,668,669],{},"408 Request Timeout",[377,671,672,677],{},[648,673],{"className":674,"name":676},[675],"text-green-500","i-lucide-check"," Retried",[362,679,680,683],{},[377,681,682],{},"429 Too Many Requests",[377,684,685,677],{},[648,686],{"className":687,"name":676},[675],[362,689,690,693],{},[377,691,692],{},"5xx",[377,694,695,677],{},[648,696],{"className":697,"name":676},[675],[362,699,700,703],{},[377,701,702],{},"Network error \u002F timeout",[377,704,705,677],{},[648,706],{"className":707,"name":676},[675],[348,709,711],{"id":710},"backoff","Backoff",[224,713,714,715,718],{},"Retries use exponential backoff: ",[240,716,717],{},"min(1000ms × 2^attempt, 30 seconds)",".",[356,720,721,731],{},[359,722,723],{},[362,724,725,728],{},[365,726,727],{},"Attempt",[365,729,730],{},"Delay",[372,732,733,741,749,757,765],{},[362,734,735,738],{},[377,736,737],{},"1st retry",[377,739,740],{},"~1 second",[362,742,743,746],{},[377,744,745],{},"2nd retry",[377,747,748],{},"~2 seconds",[362,750,751,754],{},[377,752,753],{},"3rd retry",[377,755,756],{},"~4 seconds",[362,758,759,762],{},[377,760,761],{},"4th retry",[377,763,764],{},"~8 seconds",[362,766,767,770],{},[377,768,769],{},"5th+ retry",[377,771,772],{},"30 seconds (cap)",[348,774,776],{"id":775},"timeout","Timeout",[224,778,779,780,783,784,786],{},"Each delivery attempt has a ",[499,781,782],{},"30-second timeout",". If your endpoint doesn't respond within 30 seconds, the attempt is treated as a failure and will be retried (if retries are enabled). This is why it's critical to return ",[240,785,608],{}," immediately and handle processing asynchronously — a slow handler that does real work before responding will hit the timeout and trigger unnecessary retries.",[228,788,790],{"id":789},"error-notifications","Error notifications",[224,792,451,793,796],{},[240,794,795],{},"errorEmail"," on your subscription to receive an email notification when a delivery fails after all retries are exhausted. This gives your team visibility without having to monitor webhook logs manually.",[228,798,800],{"id":799},"best-practices","Best practices",[802,803,804,814,825,831,840,853],"ul",{},[805,806,807,813],"li",{},[499,808,809,810,812],{},"Return ",[240,811,608],{}," immediately"," — acknowledge receipt, then process asynchronously in a background job or queue. Never do heavy work inside the event handler.",[805,815,816,819,820,718],{},[499,817,818],{},"Fetch fresh data"," — treat the event as a notification, then call the Management API to get the latest entity state before processing. See ",[821,822,824],"a",{"href":823},"\u002Fdocs\u002Fevents#always-fetch-fresh-data","Always fetch fresh data",[805,826,827,830],{},[499,828,829],{},"Use HMAC"," — verify that events came from Avvyr, not a spoofed source",[805,832,833,836,837,839],{},[499,834,835],{},"Deduplicate"," — use ",[240,838,408],{}," to handle potential duplicate deliveries",[805,841,842,845,846,848,849,852],{},[499,843,844],{},"Enable retries"," — transient failures happen; ",[240,847,619],{}," with ",[240,850,851],{},"retryCount: 3"," is a good default",[805,854,855,858],{},[499,856,857],{},"Test first"," — use the test endpoint to verify your setup before enabling the subscription",[860,861,862],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}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);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":238,"searchDepth":252,"depth":252,"links":864},[865,868,874,875,880,881],{"id":230,"depth":252,"text":231,"children":866},[867],{"id":350,"depth":258,"text":351},{"id":421,"depth":252,"text":422,"children":869},[870,871,872,873],{"id":432,"depth":258,"text":433},{"id":439,"depth":258,"text":440},{"id":462,"depth":258,"text":463},{"id":478,"depth":258,"text":479},{"id":565,"depth":252,"text":566},{"id":612,"depth":252,"text":613,"children":876},[877,878,879],{"id":625,"depth":258,"text":626},{"id":710,"depth":258,"text":711},{"id":775,"depth":258,"text":776},{"id":789,"depth":252,"text":790},{"id":799,"depth":252,"text":800},"How Avvyr delivers events to your endpoint — payload format, authentication, retries, and signature verification","md",null,{},{"title":89,"description":882},"LAdevUMfS2uprigZg0DLG4aczfxjsSq0sBtZVgombXQ",[889,891],{"title":85,"path":86,"stem":87,"description":890,"children":-1},"Create and manage event subscriptions via the Management API",{"title":93,"path":94,"stem":95,"description":892,"children":-1},"All available domain events with descriptions",1775725944647]