[{"data":1,"prerenderedAt":613},["ShallowReactive",2],{"navigation_docs":3,"-docs-integrations-getting-started-why-integrations-api":214,"-docs-integrations-getting-started-why-integrations-api-surround":608},[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":107,"body":216,"description":601,"extension":602,"links":603,"meta":604,"navigation":605,"path":108,"seo":606,"stem":109,"__hash__":607},"docs\u002Fdocs\u002Fintegrations\u002F1.getting-started\u002F1.why-integrations-api.md",{"type":217,"value":218,"toc":592},"minimark",[219,224,233,238,249,253,431,435,438,476,482,486,489,531,535,541,546,556,559,564,570,577,581],[220,221,223],"h1",{"id":222},"why-the-integrations-api","Why the Integrations API?",[225,226,227,228,232],"p",{},"Everything the Integrations API does ultimately writes to the same Avvyr platform as the Management API. You ",[229,230,231],"strong",{},"can"," call the Management API directly to create orders, update inventory, upsert products, and so on. So why route data through the Integrations API instead?",[234,235,237],"h2",{"id":236},"the-short-answer","The short answer",[225,239,240,241,244,245,248],{},"The Management API is a ",[229,242,243],{},"synchronous CRUD interface",". The Integrations API is a ",[229,246,247],{},"managed integration platform"," built on top of it. When you use the Integrations API, you get everything a scalable integration pipeline should offer — without building it yourself.",[234,250,252],{"id":251},"what-the-integrations-api-adds","What the Integrations API adds",[254,255,256,271],"table",{},[257,258,259],"thead",{},[260,261,262,266,269],"tr",{},[263,264,265],"th",{},"Capability",[263,267,268],{},"Management API",[263,270,97],{},[272,273,274,293,316,332,348,364,380,396,410],"tbody",{},[260,275,276,280,288],{},[277,278,279],"td",{},"Create \u002F update data in Avvyr",[277,281,282],{},[283,284],"icon",{"className":285,"name":287},[286],"text-green-500","i-lucide-check",[277,289,290],{},[283,291],{"className":292,"name":287},[286],[260,294,295,298,305],{},[277,296,297],{},"Transaction tracking & status",[277,299,300],{},[283,301],{"className":302,"name":304},[303],"text-red-400","i-lucide-x",[277,306,307,310,311,315],{},[283,308],{"className":309,"name":287},[286]," Every request is tracked as an IntegrationEvent with full lifecycle (",[312,313,314],"code",{},"queued → processing → success | failed",")",[260,317,318,321,326],{},[277,319,320],{},"Automatic retries",[277,322,323],{},[283,324],{"className":325,"name":304},[303],[277,327,328,331],{},[283,329],{"className":330,"name":287},[286]," Exponential backoff with configurable retry counts per event type",[260,333,334,337,342],{},[277,335,336],{},"Manual resubmission",[277,338,339],{},[283,340],{"className":341,"name":304},[303],[277,343,344,347],{},[283,345],{"className":346,"name":287},[286]," One-click retry from the dashboard or API",[260,349,350,353,358],{},[277,351,352],{},"Dead-letter handling",[277,354,355],{},[283,356],{"className":357,"name":304},[303],[277,359,360,363],{},[283,361],{"className":362,"name":287},[286]," Failed events are captured and surfaced for investigation",[260,365,366,369,374],{},[277,367,368],{},"Communication logs",[277,370,371],{},[283,372],{"className":373,"name":304},[303],[277,375,376,379],{},[283,377],{"className":378,"name":287},[286]," Full request\u002Fresponse logging with sensitive data masking",[260,381,382,385,390],{},[277,383,384],{},"Visual dashboard",[277,386,387],{},[283,388],{"className":389,"name":304},[303],[277,391,392,395],{},[283,393],{"className":394,"name":287},[286]," See all transactions, filter by status, drill into details",[260,397,398,401,404],{},[277,399,400],{},"Event ordering (FIFO)",[277,402,403],{},"N\u002FA",[277,405,406,409],{},[283,407],{"className":408,"name":287},[286]," Service Bus sessions ensure per-integration ordering",[260,411,412,415,421],{},[277,413,414],{},"Async processing",[277,416,417,420],{},[283,418],{"className":419,"name":304},[303]," Synchronous request\u002Fresponse",[277,422,423,426,427,430],{},[283,424],{"className":425,"name":287},[286]," Fire-and-forget with ",[312,428,429],{},"202 Accepted"," — processing happens asynchronously",[234,432,434],{"id":433},"when-to-use-the-management-api-directly","When to use the Management API directly",[225,436,437],{},"The Management API is the right choice when you:",[439,440,441,449,456,463,470],"ul",{},[442,443,444,445,448],"li",{},"Need ",[229,446,447],{},"synchronous responses"," — you want to know immediately if the operation succeeded",[442,450,451,452,455],{},"Are building ",[229,453,454],{},"admin tools or dashboards"," that read and write data interactively",[442,457,458,459,462],{},"Have a ",[229,460,461],{},"simple, low-volume integration"," where transaction tracking isn't worth the overhead",[442,464,465,466,469],{},"Want ",[229,467,468],{},"full control"," over error handling and retry logic in your own code",[442,471,472,475],{},[229,473,474],{},"Already have your own integration platform"," with retry logic, dead-letter handling, monitoring, and logging — adding the Integrations API on top would duplicate those capabilities and introduce an extra layer of error handling to manage",[477,478,481],"callout",{"color":479,"icon":480},"warning","i-lucide-alert-triangle","If you already operate a mature integration platform (e.g. MuleSoft, Azure Integration Services, Boomi, or a custom-built pipeline) that provides transaction tracking, retries, and monitoring — go straight to the Management API. Routing through the Integrations API would add a redundant processing layer, making debugging harder because failures could occur in either platform.",[234,483,485],{"id":484},"when-to-use-the-integrations-api","When to use the Integrations API",[225,487,488],{},"The Integrations API is the right choice when you:",[439,490,491,498,504,510,517,524],{},[442,492,493,494,497],{},"Are building a ",[229,495,496],{},"production data pipeline"," (ERP sync, inventory feed, order import) where reliability matters",[442,499,444,500,503],{},[229,501,502],{},"visibility"," into what's flowing between systems without building your own monitoring",[442,505,465,506,509],{},[229,507,508],{},"automatic retries"," so transient failures don't cause data loss",[442,511,512,513,516],{},"Have ",[229,514,515],{},"non-technical stakeholders"," who need to see integration status in a dashboard",[442,518,519,520,523],{},"Are syncing data from a system that ",[229,521,522],{},"doesn't need immediate confirmation"," — async is fine",[442,525,526,527,530],{},"Want to ",[229,528,529],{},"avoid building"," retry logic, dead-letter handling, logging, and monitoring yourself",[234,532,534],{"id":533},"a-practical-example","A practical example",[225,536,537,540],{},[229,538,539],{},"Scenario:"," Your ERP pushes inventory updates to Avvyr every 15 minutes.",[225,542,543],{},[229,544,545],{},"With the Management API:",[547,548,553],"pre",{"className":549,"code":551,"language":552},[550],"language-text","ERP → POST \u002Fv1\u002Finventory\u002Fbulk-update → 200 OK (or 500 → you handle retry)\n","text",[312,554,551],{"__ignoreMap":555},"",[225,557,558],{},"You get the data in, but if the call fails you need your own retry logic. No record of what was sent. No dashboard for ops to check.",[225,560,561],{},[229,562,563],{},"With the Integrations API:",[547,565,568],{"className":566,"code":567,"language":552},[550],"ERP → POST \u002Fintegrations\u002Fcustom\u002Finbound → 202 Accepted\n",[312,569,567],{"__ignoreMap":555},[225,571,572,573,576],{},"The platform handles the rest. Every update is tracked. Failures retry automatically. Your ops team can see exactly what's flowing in the dashboard. If something goes wrong at 2 AM, the event is waiting in ",[312,574,575],{},"failed"," status for someone to investigate and resubmit — not silently lost.",[234,578,580],{"id":579},"summary","Summary",[225,582,583,584,587,588,591],{},"Think of the Management API as the ",[229,585,586],{},"engine"," and the Integrations API as the ",[229,589,590],{},"managed highway"," built on top of it. If you're just moving one thing once, drive direct. If you're running a continuous data pipeline, use the highway — it has guardrails, traffic monitoring, and breakdown recovery built in.",{"title":555,"searchDepth":593,"depth":593,"links":594},2,[595,596,597,598,599,600],{"id":236,"depth":593,"text":237},{"id":251,"depth":593,"text":252},{"id":433,"depth":593,"text":434},{"id":484,"depth":593,"text":485},{"id":533,"depth":593,"text":534},{"id":579,"depth":593,"text":580},"How the Integrations API compares to calling the Management API directly — and when each approach makes sense","md",null,{},true,{"title":107,"description":601},"nx94ghqJsqnge7Z0lrf8oA_lnV_YL9vIe4loQfH4ybc",[609,611],{"title":97,"path":98,"stem":99,"description":610,"children":-1},"Connect Avvyr to external systems — ERP, accounting, marketing, shipping, and more",{"title":111,"path":112,"stem":113,"description":612,"children":-1},"Use cases, target audiences, and scenarios where the Integrations API adds the most value",1775725944130]