Server API: expose per-deployment "Changes" (changed page paths between deployments)
G
Gyeongjun Paik
Add a Server API method that returns the pages changed in a published deployment, or between two deployments. The Staging & Versions panel already shows this per version under "Changes" (page paths, "Published by", "Published at"), so the data exists; it is just not reachable from the API.
Suggested shape (any equivalent is fine):
framer.getDeploymentChanges(deploymentId: string): Promise<{ added: string[]; removed: string[]; modified: string[] }>
// or
framer.getChangedPaths({ from: deploymentId, to: deploymentId })
Why we need it
We run a security scan before promoting a staging version to the custom domain. The scan must cover every page changed since the deployment currently connected to production. Today that list has to be typed by hand from the Versions panel, which is the one error-prone manual step left in an otherwise automated flow (Slack workflow → Server API → scan → approval → deploy()).
What we tried with framer-api 5.1.0
- getUnpublishedPageChanges() / getChangedPaths(): only unpublished changes since the last publish. Empty right after a designer publishes to staging, so the change list of that version is lost.
- listDeployments() / getDeployment(id): id, deployedBy, createdAt, updatedAt, versionUrl, status only.
- getChangeContributors(fromVersion, toVersion): returns user ids, and the version numbers it expects are not exposed anywhere we could find.
- Diffing the sitemaps of two version URLs: catches added and removed pages, not edited ones.
- Diffing rendered HTML of two version URLs: unusable, since a Framer runtime update changes every page (884 of 2048 pages differed with no content change).
Framer support confirmed on 2026-10-28 that no such API exists and that there is no public roadmap date.
Context
- Project: 2-0-New-Web (staging enabled, custom domain opensurvey.io)
- Volume: roughly 10–25 production deploys per month, often 10–20 stagins
- Use case: pre-deploy security scan (OWASP checks via Playwright) on changed pages only; deployedBy and createdAt from listDeployments() are already enough for the "who/when" part, so the only missing piece is "which pages".
Thanks for considering it.
Log In