Writes a change through the canonical layer and fans out to all connected platforms.
Supports two input modes: canonical (when you have a canonical ID) and platform
(when you only have a platform-native ID).
Rate limited to 300 requests per minute per customer.
Writes a change through the canonical layer and fans it out to all connected platforms.
This is the stateful write path - data is persisted. For a stateless preview, use
POST /transform instead.
Set format: "platform" and provide platform + platform_id. Use this when you only
have the platform-native ID (e.g., from a Procore webhook or scrape):
Structural resolves the platform ID to the canonical entity and patches from there.Rule of thumb: if you read via /objects, use canonical mode. If you got the ID from
a platform webhook or external system, use platform mode.
The response includes the updated canonical object, which fields changed, and the
propagated output per platform. The updated_fields array tells you exactly which
canonical fields were modified.
Writes are not transactional across platforms. The write order is: (1) canonical
update, (2) source platform mirror, (3) fan-out to each other connected platform
sequentially. If step 3 fails for one platform, earlier writes are already persisted.Only platforms that succeeded appear in the propagated map. Missing platforms were not
propagated - retry the /propagate call. Do not assume atomicity.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Structural","colors":{"primary":"#EC8B2A","light":"#F5A855","dark":"#B86A1A"},"favicon":"https://mintcdn.com/structural/yt_wOZ1ypy553cXd/favicon.svg?fit=max\u0026auto=format\u0026n=yt_wOZ1ypy553cXd\u0026q=85\u0026s=de4009fdd84109d61484fb2dbdf1da4e","api":{},"appearance":{"default":"system"},"navbar":{"primary":{"type":"button","label":"Get API Key","href":"https://demo.structural.app"}},"seo":{"metatags":{"canonical":"https://docs.structural.app","og:site_name":"Structural Docs","og:description":"Developer documentation for the Structural bidirectional construction data API"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"structural","hasAudioNarration":false,"actualSubdomain":"structural","customDomains":["docs.structural.app"],"gitSource":{"type":"github","owner":"lew-morris","repo":"structural","deployBranch":"main","contentDirectory":"apps/docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a20d84f7ee097201848201d","collectionId":"307c76cd-ff5c-48de-bf52-277aafeb84ef","schemaVersion":"v2"},"feedback":{"thumbs":false},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6a20d84f7ee097201848201d:success","clientVersion":"0.0.4006","searchFilterCounts":[{"language":"default","tag":"API Reference","count":8},{"language":"default","tag":"Get Started","count":4},{"language":"default","tag":"Reference","count":2},{"language":"default","tag":"Supported Platforms","count":2}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/propagate","slug":"/api-reference/propagate","pageMetadata":{"title":"Propagate a change","openapi":"POST /propagate","description":"Writes a change through the canonical layer and fans out to all connected platforms.\nSupports two input modes: canonical (when you have a canonical ID) and platform\n(when you only have a platform-native ID).\n\nRate limited to 300 requests per minute per customer.\n","href":"/api-reference/propagate"},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Writes a change through the canonical layer and fans out to all connected platforms.\\nSupports two input modes: canonical (when you have a canonical ID) and platform\\n(when you only have a platform-native ID).\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Rate limited to 300 requests per minute per customer.\"\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,..._provideComponents(),...props.components},{CodeBlock,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Writes a change through the canonical layer and fans it out to all connected platforms.\nThis is the stateful write path - data is persisted. For a stateless preview, use\n`,_jsx(_components.a,{href:`/api-reference/transform`,children:_jsx(_components.code,{children:`POST /transform`})}),` instead.`]}),`\n`,_jsx(Heading,{level:`2`,id:`two-input-modes`,children:`Two input modes`}),`\n`,_jsxs(_components.p,{children:[`The request body accepts two modes, controlled by the `,_jsx(_components.code,{children:`format`}),` field:`]}),`\n`,_jsx(Heading,{level:`3`,id:`canonical-mode`,children:`Canonical mode`}),`\n`,_jsxs(_components.p,{children:[`Set `,_jsx(_components.code,{children:`format: \"canonical\"`}),` and provide `,_jsx(_components.code,{children:`canonical_id`}),`. Use this when you already have the\ncanonical ID from a previous `,_jsx(_components.a,{href:`/api-reference/objects`,children:_jsx(_components.code,{children:`GET /objects`})}),` call:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`9`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`9`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"format\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"canonical\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"canonical_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"pay_xK9mN2vL8gM3y6P\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"entity_type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"payment\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"amount\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"amount\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`175000000`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"currency\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"USD\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"notes\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Updated payment amount\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`platform-mode`,children:`Platform mode`}),`\n`,_jsxs(_components.p,{children:[`Set `,_jsx(_components.code,{children:`format: \"platform\"`}),` and provide `,_jsx(_components.code,{children:`platform`}),` + `,_jsx(_components.code,{children:`platform_id`}),`. Use this when you only\nhave the platform-native ID (e.g., from a Procore webhook or scrape):`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`10`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`10`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"format\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"platform\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"platform\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"procore\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"platform_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"1823456\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"entity_type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"payment\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"amount\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"1750000.00\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"notes\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Updated payment amount\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Structural resolves the platform ID to the canonical entity and patches from there.`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Rule of thumb:`}),` if you read via `,_jsx(_components.code,{children:`/objects`}),`, use canonical mode. If you got the ID from\na platform webhook or external system, use platform mode.`]}),`\n`,_jsx(Heading,{level:`2`,id:`response`,children:`Response`}),`\n`,_jsxs(_components.p,{children:[`The response includes the updated canonical object, which fields changed, and the\npropagated output per platform. The `,_jsx(_components.code,{children:`updated_fields`}),` array tells you exactly which\ncanonical fields were modified.`]}),`\n`,_jsxs(Warning,{children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Writes are not transactional across platforms.`}),` The write order is: (1) canonical\nupdate, (2) source platform mirror, (3) fan-out to each other connected platform\nsequentially. If step 3 fails for one platform, earlier writes are already persisted.`]}),_jsxs(_components.p,{children:[`Only platforms that succeeded appear in the `,_jsx(_components.code,{children:`propagated`}),` map. Missing platforms were not\npropagated - retry the `,_jsx(_components.code,{children:`/propagate`}),` call. Do not assume atomicity.`]})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Propagate a change","openapi":"POST /propagate","description":"Writes a change through the canonical layer and fans out to all connected platforms.\nSupports two input modes: canonical (when you have a canonical ID) and platform\n(when you only have a platform-native ID).\n\nRate limited to 300 requests per minute per customer.\n","href":"/api-reference/propagate"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Two input modes","slug":"two-input-modes","depth":2,"children":[{"title":"Canonical mode","slug":"canonical-mode","depth":3,"children":[]},{"title":"Platform mode","slug":"platform-mode","depth":3,"children":[]}]},{"title":"Response","slug":"response","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"propagateChange","summary":"Propagate a change","description":"Writes a change through the canonical layer and fans out to all connected platforms.\nSupports two input modes: canonical (when you have a canonical ID) and platform\n(when you only have a platform-native ID).\n\nRate limited to 300 requests per minute per customer.\n","tags":["Propagation"],"security":["9484cfac-2c4d-464a-beb6-14b820e5be65"],"requestBody":"eb90bf2e-e7a8-4244-9b0f-d4d2b073f44a","responses":{"200":"87b51d78-f627-4de1-8563-7dc2ad532dbf","400":"bf5d601e-29b7-4256-b4ea-bdba55547517","401":"05804247-4b33-4e74-87af-24b0b55baaa6","404":"97bc7138-548e-482d-86e9-d7f759abc21b","429":"c3ad7e34-207b-4492-96cd-7083b2cd11d9"},"method":"post","type":"path","servers":["426e0a41-1f8a-4ae6-9ada-80fc823dce23"],"path":"/propagate","baseUrlOptions":["https://api.structural.app/api/v1"],"title":"Propagate a change","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["entity_type","data"],"properties":{"entity_type":{"type":"string","enum":["payment","project","customer","invoice","contract"],"isRequired":true,"uniqueKey":"entity_type","typeLabel":"enum\u003cstring>"},"data":{"type":"object","description":"The fields to update","additionalProperties":true,"isRequired":true,"uniqueKey":"data","typeLabel":"object"},"format":{"type":"string","enum":["canonical","platform"],"default":"canonical","description":"Input mode. `canonical` — you have a canonical ID from a previous `/objects` call.\n`platform` — you only have the platform-native ID.\n","uniqueKey":"format","typeLabel":"enum\u003cstring>"},"canonical_id":{"type":"string","description":"Required when `format` is `canonical`","uniqueKey":"canonical_id","typeLabel":"string"},"platform":{"type":"string","enum":["procore","dynamics"],"description":"Required when `format` is `platform`","uniqueKey":"platform","typeLabel":"enum\u003cstring>"},"platform_id":{"type":"string","minLength":1,"description":"Required when `format` is `platform`","uniqueKey":"platform_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{},"format":"canonical","canonical_id":"\u003cstring>","platform_id":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"87b51d78-f627-4de1-8563-7dc2ad532dbf":{"description":"Change propagated","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"canonical":{"type":"object","properties":{"id":{"type":"string","description":"Canonical entity ID","example":"pay_xK9mN2vL8gM3y6P","uniqueKey":"data.canonical.id","typeLabel":"string"},"entity_type":{"type":"string","example":"payment","uniqueKey":"data.canonical.entity_type","typeLabel":"string"},"updated_fields":{"type":"array","items":{"type":"string","uniqueKey":"data.canonical.updated_fields.items.[INDEX]","typeLabel":"string"},"description":"Canonical fields that actually changed","example":["amount","notes"],"uniqueKey":"data.canonical.updated_fields","typeLabel":"string[]"},"data":{"type":"object","description":"The full canonical object after the update","additionalProperties":true,"uniqueKey":"data.canonical.data","typeLabel":"object"}},"uniqueKey":"data.canonical","typeLabel":"object"},"propagated":{"type":"object","description":"Map of platform name to the propagated output. Only platforms that succeeded\nare included. Missing platforms were not propagated — retry the call.\n","additionalProperties":{"type":"object","properties":{"platform_id":{"type":"string","uniqueKey":"data.propagated.additionalProperties.platform_id","typeLabel":"string"},"data":{"type":"object","additionalProperties":true,"uniqueKey":"data.propagated.additionalProperties.data","typeLabel":"object"},"canonical_view":{"type":"object","additionalProperties":true,"uniqueKey":"data.propagated.additionalProperties.canonical_view","typeLabel":"object"},"writeStatus":{"type":"string","enum":["pending","synced","conflict","failed"],"description":"Per-platform outbound write status. Present only when the\nconnection is in 'live' mode and a write was attempted.\n","uniqueKey":"data.propagated.additionalProperties.writeStatus","typeLabel":"enum\u003cstring>"},"writeError":{"type":"string","description":"Human-readable error message when writeStatus is 'failed' or 'conflict'.\n","uniqueKey":"data.propagated.additionalProperties.writeError","typeLabel":"string"},"conflictData":{"type":"object","description":"The remote entity's current state when writeStatus is 'conflict'\n(from the GET after a 412 response).\n","additionalProperties":true,"uniqueKey":"data.propagated.additionalProperties.conflictData","typeLabel":"object"}},"uniqueKey":"data.propagated.additionalProperties","typeLabel":"object"},"uniqueKey":"data.propagated","typeLabel":"object"},"references":{"type":"object","description":"Cross-entity reference resolution results (present when references exist)","properties":{"resolved":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","uniqueKey":"data.references.resolved.items.[INDEX].field","typeLabel":"string"},"canonical_id":{"type":"string","uniqueKey":"data.references.resolved.items.[INDEX].canonical_id","typeLabel":"string"},"platform_id":{"type":"string","uniqueKey":"data.references.resolved.items.[INDEX].platform_id","typeLabel":"string"},"injected":{"type":"boolean","uniqueKey":"data.references.resolved.items.[INDEX].injected","typeLabel":"boolean"},"reason":{"type":"string","uniqueKey":"data.references.resolved.items.[INDEX].reason","typeLabel":"string"}},"uniqueKey":"data.references.resolved.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.references.resolved","typeLabel":"object[]"},"unresolved":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","uniqueKey":"data.references.unresolved.items.[INDEX].field","typeLabel":"string"},"canonical_id":{"type":"string","uniqueKey":"data.references.unresolved.items.[INDEX].canonical_id","typeLabel":"string"},"reason":{"type":"string","uniqueKey":"data.references.unresolved.items.[INDEX].reason","typeLabel":"string"}},"uniqueKey":"data.references.unresolved.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.references.unresolved","typeLabel":"object[]"}},"uniqueKey":"data.references","typeLabel":"object"}},"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{"canonical":{"id":"pay_xK9mN2vL8gM3y6P","entity_type":"payment","updated_fields":["amount","notes"],"data":{}},"propagated":{},"references":{"resolved":[{"field":"\u003cstring>","canonical_id":"\u003cstring>","platform_id":"\u003cstring>","injected":true,"reason":"\u003cstring>"}],"unresolved":[{"field":"\u003cstring>","canonical_id":"\u003cstring>","reason":"\u003cstring>"}]}}}}},"exampleType":"generated"}},"exampleType":"generated"},"bf5d601e-29b7-4256-b4ea-bdba55547517":{"description":"Request validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["type","message","request_id"],"properties":{"type":{"type":"string","description":"Machine-readable error code","example":"VALIDATION_ERROR","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error description","example":"platform and entity_type query params required","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","description":"Unique request identifier — quote this in support requests","example":"req_a1b2c3d4e5f6","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"type":"VALIDATION_ERROR","message":"Invalid input","request_id":"req_a1b2c3d4e5f6"}},"examples":{"Example":{"title":"Example","value":{"error":{"type":"VALIDATION_ERROR","message":"Invalid input","request_id":"req_a1b2c3d4e5f6"}}}},"exampleType":"examples"}},"exampleType":"examples"},"05804247-4b33-4e74-87af-24b0b55baaa6":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["type","message","request_id"],"properties":{"type":{"type":"string","description":"Machine-readable error code","example":"VALIDATION_ERROR","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error description","example":"platform and entity_type query params required","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","description":"Unique request identifier — quote this in support requests","example":"req_a1b2c3d4e5f6","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"type":"AUTHENTICATION_ERROR","message":"Invalid or missing API key","request_id":"req_a1b2c3d4e5f6"}},"examples":{"Example":{"title":"Example","value":{"error":{"type":"AUTHENTICATION_ERROR","message":"Invalid or missing API key","request_id":"req_a1b2c3d4e5f6"}}}},"exampleType":"examples"}},"exampleType":"examples"},"97bc7138-548e-482d-86e9-d7f759abc21b":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["type","message","request_id"],"properties":{"type":{"type":"string","description":"Machine-readable error code","example":"VALIDATION_ERROR","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error description","example":"platform and entity_type query params required","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","description":"Unique request identifier — quote this in support requests","example":"req_a1b2c3d4e5f6","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"type":"NOT_FOUND","message":"Entity mapping not found","request_id":"req_a1b2c3d4e5f6"}},"examples":{"Example":{"title":"Example","value":{"error":{"type":"NOT_FOUND","message":"Entity mapping not found","request_id":"req_a1b2c3d4e5f6"}}}},"exampleType":"examples"}},"exampleType":"examples"},"c3ad7e34-207b-4492-96cd-7083b2cd11d9":{"description":"Too many requests","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","required":["type","message","request_id"],"properties":{"type":{"type":"string","description":"Machine-readable error code","example":"VALIDATION_ERROR","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error description","example":"platform and entity_type query params required","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","description":"Unique request identifier — quote this in support requests","example":"req_a1b2c3d4e5f6","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"type":"RATE_LIMIT_ERROR","message":"Too many requests","request_id":"req_a1b2c3d4e5f6"}},"examples":{"Example":{"title":"Example","value":{"error":{"type":"RATE_LIMIT_ERROR","message":"Too many requests","request_id":"req_a1b2c3d4e5f6"}}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"9484cfac-2c4d-464a-beb6-14b820e5be65":{"bearerAuth":{"type":"http","scheme":"bearer","description":"API key passed as a Bearer token. Keys are prefixed: `sk_demo_*` (sandbox),\n`sk_live_*` (production), `sk_test_*` (staging).\n","scopes":[]}}},"servers":{"426e0a41-1f8a-4ae6-9ada-80fc823dce23":{"url":"https://api.structural.app/api/v1","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"API key passed as a Bearer token. Keys are prefixed: `sk_demo_*` (sandbox),\n`sk_live_*` (production), `sk_test_*` (staging).\n","scopes":[]},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"API key passed as a Bearer token. Keys are prefixed: `sk_demo_*` (sandbox),\n`sk_live_*` (production), `sk_test_*` (staging).\n","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi.yaml"},"subdomain":"structural","siteName":"Structural","title":"Propagate a change - Structural","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-04-26T14:12:13.865Z","originalFileLocation":"api-reference/propagate.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Writes a change through the canonical layer and fans out to all connected platforms. Supports two input modes: canonical (when you have a canonical ID) and platform (when you only have a platform-native ID). Rate limited to 300 requests per minute per customer.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Structural\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/structural/46ROJfKlOE_F2Odp/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/structural/46ROJfKlOE_F2Odp/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/structural/46ROJfKlOE_F2Odp/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/structural/46ROJfKlOE_F2Odp/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/structural/46ROJfKlOE_F2Odp/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/structural/46ROJfKlOE_F2Odp/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/structural/46ROJfKlOE_F2Odp/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/structural/46ROJfKlOE_F2Odp/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/structural/46ROJfKlOE_F2Odp/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Propagate a change - Structural\">\u003cmeta data-mint-head property=\"og:description\" content=\"Developer documentation for the Structural bidirectional construction data API\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Structural Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.structural.app/api-reference/propagate\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://structural.mintlify.app/_mintlify/api/og/v2?division=API+Reference\u0026amp;title=Propagate+a+change\u0026amp;description=Writes+a+change+through+the+canonical+layer+and+fans+out+to+all+connected+platforms.%0ASupports+two+input+modes%3A+canonical+%28when+you+have+a+canonical+ID%29+and+plat\u0026amp;theme=1a46897474de905d836decd6\u0026amp;signature=c4f6bff39d93ce5d0baa32fa4cd5152ae57e7b1d4a5106ab59a5fbc386af9acb\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Propagate a change - Structural\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Developer documentation for the Structural bidirectional construction data API\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://structural.mintlify.app/_mintlify/api/og/v2?division=API+Reference\u0026amp;title=Propagate+a+change\u0026amp;description=Writes+a+change+through+the+canonical+layer+and+fans+out+to+all+connected+platforms.%0ASupports+two+input+modes%3A+canonical+%28when+you+have+a+canonical+ID%29+and+plat\u0026amp;theme=1a46897474de905d836decd6\u0026amp;signature=c4f6bff39d93ce5d0baa32fa4cd5152ae57e7b1d4a5106ab59a5fbc386af9acb\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/structural/46ROJfKlOE_F2Odp/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Structural\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#EC8B2A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.structural.app/api-reference/propagate\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/propagate.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.structural.app/#organization\",\"name\":\"Structural\",\"url\":\"https://docs.structural.app\"},{\"@type\":\"WebSite\",\"@id\":\"https://docs.structural.app#website\",\"name\":\"Structural\",\"url\":\"https://docs.structural.app\",\"publisher\":{\"@id\":\"https://docs.structural.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.structural.app/api-reference/propagate#webpage\",\"url\":\"https://docs.structural.app/api-reference/propagate\",\"name\":\"Propagate a change\",\"description\":\"Writes a change through the canonical layer and fans out to all connected platforms. Supports two input modes: canonical (when you have a canonical ID) and platform (when you only have a platform-native ID). Rate limited to 300 requests per minute per customer.\",\"dateModified\":\"2026-04-26T14:12:13.865Z\",\"isPartOf\":{\"@id\":\"https://docs.structural.app#website\"},\"breadcrumb\":{\"@id\":\"https://docs.structural.app/api-reference/propagate#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.structural.app/api-reference/propagate#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://docs.structural.app/api-reference/health\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Propagate a change\",\"item\":\"https://docs.structural.app/api-reference/propagate\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.structural.app/api-reference/propagate#apireference\",\"headline\":\"Propagate a change\",\"name\":\"Propagate a change\",\"description\":\"Writes a change through the canonical layer and fans out to all connected platforms. Supports two input modes: canonical (when you have a canonical ID) and platform (when you only have a platform-native ID). Rate limited to 300 requests per minute per customer.\",\"url\":\"https://docs.structural.app/api-reference/propagate\",\"mainEntityOfPage\":{\"@id\":\"https://docs.structural.app/api-reference/propagate#webpage\"},\"dateModified\":\"2026-04-26T14:12:13.865Z\",\"publisher\":{\"@id\":\"https://docs.structural.app/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.structural.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Structural\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Structural","nav":{"global":null,"groups":[{"group":"Get Started","pages":[{"title":"Introduction","href":"/introduction"},{"title":"Quickstart","href":"/quickstart"},{"title":"Authentication","href":"/authentication"},{"title":"Concepts","href":"/concepts"}]},{"group":"API Reference","pages":[{"title":"Health check","openapi":"GET /health","href":"/api-reference/health"},{"title":"Create demo session","openapi":"POST /demo/session","href":"/api-reference/demo-session-create"},{"title":"Delete demo session","openapi":"DELETE /demo/session","href":"/api-reference/demo-session-delete"},{"title":"Connect a platform","openapi":"POST /connect","href":"/api-reference/connect"},{"title":"List connections","openapi":"GET /connections","href":"/api-reference/connections"},{"title":"List objects","openapi":"GET /objects","description":"Fetches canonical objects for a specific platform and entity type.\nEach object includes the canonical (normalized) view, the raw platform data,\nand a mappings array showing which platforms the entity is linked to.\n","href":"/api-reference/objects"},{"title":"Propagate a change","openapi":"POST /propagate","href":"/api-reference/propagate"},{"title":"Transform data","openapi":"POST /transform","description":"Stateless translation: pass in platform data, get back the canonical form and the\ntarget platform's representation. Nothing is persisted. Use this to preview a\ntranslation before committing with `/propagate`.\n","href":"/api-reference/transform"}]},{"group":"Reference","pages":[{"title":"Entity types","href":"/entities"},{"title":"Errors","href":"/errors"}]},{"group":"Supported Platforms","pages":[{"title":"Procore","href":"/platforms/procore"},{"title":"Dynamics 365 Business Central","href":"/platforms/dynamics"}]}]},"title":"Propagate a change - Structural","buildId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","deploymentId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DmVyH30O.js","utils-BHQqGGOd.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CD-E4BIt.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Bp5Lq9Ds.js","snippetPresets-C4xAVCFP.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CgXVLxUC.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BF8I5oUf.js","shallow-Byd0lWnC.js","getApiPlaygroundDisplay-BGOZG1OK.js","CodeSnippet-CpvQL0CY.js","CodeSnippets-B8wkBKXa.js","Page-CBCH2P7b.js","getPastedJson-Ry3scI3Y.js","icon-D7a9HcdD.js","MethodPill-CJ8pmHhz.js","DuplicateIcon-rh1HJF0t.js","createIcon-DvGznqYs.js","DynamicMarkdown-Cc6AuSHS.js","SectionHeading-B4A0S-ep.js","axios-vUo_bRtp.js","Markdown-Cc16CX65.js","clsx-Cs6nMGht.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-zbf22OZA.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-C_fs-y5n.js"]}