{"templateId":"../../@theme/Templates/ChangelogEntry","sharedDataIds":{},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"⚠️ Upcoming Changes","siteUrl":"https://developers.signable.app","description":"Integrate Signable’s eSignature API to send, sign, and manage documents with envelopes and webhooks.","image":"/assets/hero-placeholder-small.5b052639e5d5a3b6265375db1ac2835173dda2c0ed22f8c167f6284080cc84ce.db81178d.png","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"️-upcoming-changes","__idx":0},"children":["⚠️ Upcoming Changes"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["On ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["15 September 2026"]},", image URLs returned by the Signable public API will change."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Two changes are being introduced:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["The URL format will change."]}," Integrations must not rely on the current domain, path or URL structure."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Image URLs will become temporary."]}," Each URL will remain valid for ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["24 hours"]}," before a new one must be requested."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This affects the following fields:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://developers.signable.app/openapi/envelopes/getenvelope#envelopes/getenvelope/t=response&c=200&path=envelope_documents/document_thumbnails"},"children":["Envelope document thumbnail image URLs"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://developers.signable.app/openapi/envelopes/getenvelope#envelopes/getenvelope/t=response&c=200&path=envelope_documents/document_pages"},"children":["Envelope document full size image URLs"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://developers.signable.app/openapi/templates/listtemplates#templates/listtemplates/t=response&c=200&path=templates/template_thumbnails"},"children":["Template document thumbnail image URLs"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://developers.signable.app/openapi/templates/gettemplate#templates/gettemplate/t=response&c=200&path=template_thumbnails"},"children":["Template thumbnail image URLs"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://developers.signable.app/openapi/templates/listtemplates#templates/listtemplates/t=response&c=200&path=templates/template_pages"},"children":["Template document full size image URLs"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://developers.signable.app/openapi/templates/gettemplate#templates/gettemplate/t=response&c=200&path=template_pages"},"children":["Template full size image URLs"]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"url-format-change","__idx":1},"children":["URL format change"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The format of image URLs will change. This includes the domain, path, query parameters and other parts of the URL structure."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Please ensure your integration treats image URLs as opaque values and uses them exactly as returned by the API. Do not parse, rewrite, validate or make assumptions about their structure."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"time-based-expiry","__idx":2},"children":["Time-based expiry"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Image URLs returned in these fields will become temporary."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Each URL will remain valid for ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["24 hours"]}," from the time it is generated. After that, you'll need to make another API request to retrieve a fresh image URL."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"what-this-means","__idx":3},"children":["What this means"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If your integration:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["stores image URLs indefinitely"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["parses image URLs"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["rewrites image URLs"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["validates image URLs based on their current structure"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["makes assumptions about the domain, path or other parts of the URL"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["you'll need to update that behaviour."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Instead:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["request a fresh image URL whenever you need one after the previous URL has expired"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["treat image URLs as opaque values and use them exactly as returned by the API"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"recommended-action","__idx":4},"children":["Recommended action"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Review any integrations that store image URLs or depend on the current URL structure before ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["15 September 2026"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"why-were-making-this-change","__idx":5},"children":["Why we're making this change"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This change supports our ongoing work to strengthen platform security and improve how file access is managed over time."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"need-help","__idx":6},"children":["Need help?"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If you think this change might affect your integration, please contact support and we'll be happy to help."]}]},"headings":[{"value":"⚠️ Upcoming Changes","id":"️-upcoming-changes","depth":2},{"value":"URL format change","id":"url-format-change","depth":3},{"value":"Time-based expiry","id":"time-based-expiry","depth":3},{"value":"What this means","id":"what-this-means","depth":3},{"value":"Recommended action","id":"recommended-action","depth":3},{"value":"Why we're making this change","id":"why-were-making-this-change","depth":3},{"value":"Need help?","id":"need-help","depth":3}],"frontmatter":{"title":"Changes to image URLs","date":"2026-07-15T00:00:00.000Z","type":"API","breaking":true,"template":"../../@theme/Templates/ChangelogEntry","seo":{"title":"⚠️ Upcoming Changes"}},"lastModified":"2026-07-14T13:47:25.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/changelog/entries/2026-07-15-upcoming-changes-to-image-urls","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}