Skip to main content

Changes to Airtable attachments

On November 8th, 2022, Airtable is changing their Attachments API. In short, Airtable is replacing static attachment URLs with expiring dynamic URLs.

URLs that look like this:

https://dl.airtable.com/.attachments/4df81a26d0a04015fa2935f99cd73014/1f055329/image_9201.jpg

Will look like this after November 8th:1

https://v5.airtableusercontent.com/v1/3/3/1652918400000/2dxLFHD0M8rGi29amOeYiQ/RKjaja0qgtEUzIPu6HsnYbC3HPiCkiK4wfhB9**dJJJpVUlwitX0puZY9v485L0SUGnZEU3cSBDR6-wdZseNtg/hN5S51oabftFYcDU2rPOB838AzaI4u98-Wc-Li4GwB8

To adapt, Sequin is inserting static proxy URLs you can use to access an Airtable attachment.

Action required

Before November 8th, start including an Airtable Bearer token in requests to get attachments from Sequin's proxy. Provide it the same way you would provide it to the Airtable API. For example, to fetch a proxied attachment with curl:

$ curl https://proxy.sequin.io/attachment/▒▒▒▒▒▒▒▒▒ \
-H "Authorization: Bearer key▒▒▒▒▒▒▒▒▒"

When provided a Bearer token, Sequin's proxy will emulate its post-November 8th behavior: it will issue a 302 response redirecting to your attachment's URL.

Sequin won't require any further action when Airtable makes their change on November 8th.

Temporary opt out

After Sequin announced this migration, Airtable introduced a "Secure Attachments Opt Out" setting. Airtable workspace owners and enterprise admins can use that setting to retain static URLs until February 8th, 2023. To keep static URLs in your sync until February,

  1. Follow Airtable's Temporary opt out instructions to retain static attachment URLs in one or more workspaces.

  2. Tell Sequin support which Airtable bases – or corresponding Sequin syncs – are opted out. See Airtable: Understanding Airtable IDs. We'll reply to confirm we've marked the sync.

Attachments in the syncs you specify will retain their current format and behavior: they won't require Bearer tokens or return 302 Found responses until February 2023. Sequin will notify you before the opt-out period ends.

caution

If you complete the Airtable opt-out instructions but do not notify us before November 7th, attachment URLs in your sync will be subjected to the API change; Sequin doesn't automatically detect a sync has been opted out.

If you arrange for Sequin to opt out your syncs but do not complete Airtable's "Temporary opt out instructions," your sync will treat expiring URLs as if they're static; that may impact your Sequin bill.

Sequin's proxy attachment URLs

You might have already noticed https://proxy.sequin.io/attachment/* URLs in your Sequin database. For the time being, these are proxies for Airtable's existing static URLs. These are drop-in replacements for an Airtable attachment URL (i.e. dl.airtable.com/.attachments.*), but we recommend taking the above action as soon as possible.

On November 7th, 2022, Sequin will update how it serves proxy requests for attachments to prepare for Airtable's change on November 8th. This new system:

  1. Requires you provide an Airtable Bearer token in your requests.

  2. Uses that Bearer token to fetch a current expiring attachment URL from Airtable.

  3. Responds to you request with a 302 Found redirect to the expiring URL.

Sequin's proxy URLs are static. If you change an attachment in Airtable, the change in Airtable's unique attachment ID (of the form att▒▒▒▒▒▒▒▒▒▒▒▒▒▒) leads Sequin to update the proxy URL in the corresponding Postgres row.

Diagram of how Sequin's proxy URLs for Airtable attachments will work after Airtable's API change on November 8th, 2022.

Because resolving a current expiring URL requires retrieving the attachment's parent record, each request will consume an API call from your quota. Because this impacts the general availability of attachments, and because your Airtable account API token is secret, the new attachment behavior may be unsuitable for some applications --- e.g. embedding attachments in a public static page. Airtable discourages using their system as a CDN.2

The resolved URLs expire two hours after Airtable generates them.

caution

Like Airtable, we do not consider the attachment URL formatting part of our compatibility surface, so users should not attempt to parse or interpret attachment field URLs.