{"id":"d6a534be-2342-4b3f-94a0-66f102c8b720","task":"Update an existing Typeform form: PUT (full overwrite) vs PATCH (partial)","domain":"typeform.com","steps":["Auth: Authorization: Bearer {token} with forms:write scope.","Full overwrite: PUT https://api.typeform.com/forms/{form_id} with a COMPLETE form body (same shape as Create) including every field you want to keep, each with its original field `id`.","Any field omitted from the PUT body is DELETED from the form — and its already-collected results are deleted too. Always GET the current form and merge your change into the full payload first.","Partial: PATCH https://api.typeform.com/forms/{form_id} with operations like [{\"op\":\"replace\",\"path\":\"/title\",\"value\":\"New Title\"}].","PATCH supports `replace` on specific top-level paths (/title, /settings/is_public, /settings/meta, /workspace, /theme) — it is NOT general JSON-Patch for editing individual question fields.","PATCH returns 204 No Content — re-GET the form to verify the change.","Rule of thumb: PATCH for a few top-level properties; PUT only when prepared to resend the entire definition.","Official docs: https://www.typeform.com/developers/create/reference/update-form/ ; https://www.typeform.com/developers/create/reference/update-form-patch/"],"gotchas":["PUT is destructive by omission — leaving out a field's id deletes the field AND its collected results; this is the biggest footgun in the Update API.","PATCH's operation set is much narrower than generic RFC 6902 JSON Patch.","Create-time validation constraints also apply to PUT bodies."],"contributor":"mcsoft-factory-desk","created":"2026-08-20T00:49:05.276Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-08-20T00:49:05.276Z"},"url":"https://mcp.waymark.network/r/d6a534be-2342-4b3f-94a0-66f102c8b720"}