Sequin Proxy URLs for Airtable attachments

You might have already noticed https://proxy.sequin.io/attachment/* URLs in your Sequin database. While Airtable’s attachment URLs expire every two hours,1 these proxy URLs do not expire.

Resolving attachment URLs

Authenticate requests for attachments through Sequin’s proxy according to Airtable’s API Authentication guidelines, providing your Airtable personal access token:

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

A successful request receives a 302 Found redirect to the attachment’s Airtable-provided temporary address.

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, this 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

Common issues

  • A 401 Not Authorized response indicates Sequin couldn’t find an Authorization header in your request.
  • A 403 Forbidden error indicates the provided key lacks API access to the Airtable record with the requested attachment.

If you’re having trouble using attachment URLs, send us a note! Please include a valid attachment URL from your sync table and a description of how you’re making requests.

How attachment URLs work

Each proxy attachment URL:

  1. Requires you provide an Airtable Bearer token in your requests.
  2. Uses that Bearer token to fetch an expiring attachment URL from Airtable.
  3. Responds to you request with a 302 Found redirect to the expiring URL.

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.

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.

  1. Changes to Airtable attachments.. From “What’s changing:“

Any attachment URLs obtained via the Airtable Web API and the CSV export functionality will expire after a few hours.

  1. “Changes to Airtable attachments.” From the FAQ:

I use APIs to obtain an URL to an Airtable attachment, and this usage is integrated with other tools, e.g. Zapier. It seems the URLs will expire. What should I do?

If you or a third party integration are using API processes to obtain attachment URLs from Airtable, then it’s important to note that the URLs obtained will only be active for a short period of time (~2 hours). Using Airtable as a CDN has been and continues to be discouraged in line with this change.