Replace a site in one call, and see the diff first
2026.10.14-api-sitesThe Forumulate team
1 min readapisites
PATCH /orgs/{orgId}/sites/{siteId} deep-merges config, so a key you delete from your own copy stays live until you send null for it. A publisher that keeps its site in a repository had to diff against what we stored to work out the nulls.
Added
PUT /orgs/{orgId}/sites/{siteId} stores config exactly as sent: every key you leave out is removed. name and config are required; spaceIds is optional and, when omitted, keeps the current members.
?dryRun=true on PUT and PATCH runs every check a real write runs, writes nothing, and answers the site as it would be plus a diff of every key it would add, remove or change:
{ "site": { … }, "dryRun": true, "diff": [ { "path": "footer.art", "op": "remove", "from": "glow" } ] }PATCH is unchanged. See Sites.