Pardon the messYou are viewing docs related to an older version of Sequin. We’re in the process of updating our provider-specific guides and will be done in a few weeks (May 2024). Please click here to view the latest version of the docs.If you’re interested in Airtable and want to learn more about what’s changing, send us a note.
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:
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:
Requires you provide an Airtable Bearer token in your requests.
Uses that Bearer token to fetch an expiring attachment URL from Airtable.
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.
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. ↩
{"docsConfig":{"$schema":"https://mintlify.com/docs.json","theme":"mint","name":"Sequin","colors":{"primary":"#0E0E0E","light":"#474747","dark":"#0E0E0E"},"favicon":"https://mintcdn.com/sequin/3H0rKJAg0ey1fqux/favicon.png?fit=max\u0026auto=format\u0026n=3H0rKJAg0ey1fqux\u0026q=85\u0026s=844e5576b8c7a8a6538e26b68501cd24","logo":{"light":"https://mintcdn.com/sequin/gPSFPT8nToU0KAMP/logo/light.png?fit=max\u0026auto=format\u0026n=gPSFPT8nToU0KAMP\u0026q=85\u0026s=859caa53641359662caa08142ec7b4ed","dark":"https://mintcdn.com/sequin/gPSFPT8nToU0KAMP/logo/dark.png?fit=max\u0026auto=format\u0026n=gPSFPT8nToU0KAMP\u0026q=85\u0026s=c1bf0bfc90ce1ee47177b313941732bc","href":"https://sequin.io"},"api":{"mdx":{"server":"https://api.sequin.io","auth":{"method":"bearer","name":"Authorization"}}},"navbar":{"links":[{"label":"Sign Up","href":"https://console.sequin.io/signup"}],"primary":{"type":"button","label":"Log In","href":"https://app.sequin.io/"}},"footer":{"socials":{"twitter":"https://twitter.com/sequin_io?lang=en","linkedin":"https://www.linkedin.com/company/sequin-io/"}},"integrations":{"koala":{"publicApiKey":"pk_8642121e4de1150877a41ae366edb9f8cb6a"},"posthog":{"apiKey":"phc_5KzGq2JZfLZuRRBZfTHaSG9kBZLsnmb9fJDpup45pNw"},"intercom":{"appId":"btt358pc"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"sequin","hasAudioNarration":false,"actualSubdomain":"sequin","customDomains":["sequin.io"],"gitSource":{"type":"github","owner":"sequin-io","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"feedback":{"issues":false,"edits":false},"entitlements":{},"buildId":"6ae91e427ec93727a5a3d29d:success","clientVersion":"0.0.4143","searchFilterCounts":[{"language":"default","tag":"Management API","count":68},{"language":"default","tag":"General","count":25},{"language":"default","tag":"Streams","count":11},{"language":"default","tag":"How to","count":7},{"language":"default","tag":"Upsert to Postgres","count":6},{"language":"default","tag":"Consumers","count":6},{"language":"default","tag":"Mutations","count":6},{"language":"default","tag":"Credentials","count":5},{"language":"default","tag":"OAuth apps","count":5},{"language":"default","tag":"Syncs","count":5}]},"assistantConfig":{},"basePath":"/docs","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"integrations/airtable/attachments","slug":"/integrations/airtable/attachments","pageMetadata":{"title":"Attachments","description":null,"href":"/integrations/airtable/attachments"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,blockquote:`blockquote`,br:`br`,code:`code`,hr:`hr`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,OptimizedImage,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(Warning,{children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Pardon the mess`})}),_jsxs(_components.p,{children:[`You are viewing docs related to an older version of Sequin. We’re in the process of updating our provider-specific guides and will be done in a few weeks (May 2024). `,_jsx(_components.a,{href:`/`,children:`Please click here`}),` to view the latest version of the docs.`]}),_jsxs(_components.p,{children:[`If you’re interested in Airtable and want to learn more about what’s changing, `,_jsx(_components.a,{href:`mailto:support@sequin.io`,children:`send us a note`}),`.`]})]}),`\n`,_jsxs(Heading,{level:`2`,id:`sequin-proxy-urls-for-airtable-attachments`,children:[`Sequin Proxy URLs for Airtable attachments`,_jsx(_components.a,{href:`#sequin-proxy-urls-for-airtable-attachments`,title:`Direct link to Sequin Proxy URLs for Airtable attachments`})]}),`\n`,_jsxs(_components.p,{children:[`You might have already noticed `,_jsx(_components.code,{children:`https://proxy.sequin.io/attachment/*`}),` URLs in your Sequin database. While Airtable’s attachment URLs expire every two hours,`,_jsx(_components.a,{href:`#fn-1`,children:`1`}),` these proxy URLs do not expire.`]}),`\n`,_jsxs(Heading,{level:`2`,id:`resolving-attachment-urls`,children:[`Resolving attachment URLs`,_jsx(_components.a,{href:`#resolving-attachment-urls`,title:`Direct link to Resolving attachment URLs`})]}),`\n`,_jsxs(_components.p,{children:[`Authenticate requests for attachments through Sequin’s proxy according to `,_jsx(_components.a,{href:`https://airtable.com/developers/web/api/authentication`,children:`Airtable’s API Authentication guidelines`}),`, providing your Airtable personal access token:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`$`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` curl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://proxy.sequin.io/attachment/▒▒▒▒▒▒▒▒▒`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer key▒▒▒▒▒▒▒▒▒\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`A successful request receives a `,_jsx(_components.a,{href:`https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/302`,children:`302 Found redirect`}),` to the attachment’s Airtable-provided temporary address.`]}),`\n`,_jsxs(Warning,{children:[`Because resolving a current expiring URL requires retrieving the attachment’s parent record, `,_jsx(_components.strong,{children:`each request will consume an API call from your quota`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`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.`,_jsx(_components.a,{href:`#fn-2`,children:`2`})]}),`\n`,_jsxs(Heading,{level:`3`,id:`common-issues`,children:[`Common issues`,_jsx(_components.a,{href:`#common-issues`,title:`Direct link to Common issues`})]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`A `,_jsx(_components.code,{children:`401 Not Authorized`}),` response indicates Sequin couldn’t find an `,_jsx(_components.code,{children:`Authorization`}),` header in your request.`]}),`\n`,_jsxs(_components.li,{children:[`A `,_jsx(_components.code,{children:`403 Forbidden`}),` error indicates the provided key lacks API access to the Airtable record with the requested attachment.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`If you’re having trouble using attachment URLs, `,_jsx(_components.a,{href:`mailto:support@sequin.io`,children:`send us a note!`}),` Please include a valid attachment URL from your sync table and a description of how you’re making requests.`]}),`\n`,_jsxs(Heading,{level:`2`,id:`how-attachment-urls-work`,children:[`How attachment URLs work`,_jsx(_components.a,{href:`#how-attachment-urls-work`,title:`Direct link to How attachment URLs work`})]}),`\n`,_jsx(_components.p,{children:`Each proxy attachment URL:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Requires you provide an Airtable `,_jsx(_components.code,{children:`Bearer`}),` token in your requests.`]}),`\n`,_jsxs(_components.li,{children:[`Uses that `,_jsx(_components.code,{children:`Bearer`}),` token to fetch an expiring attachment URL from Airtable.`]}),`\n`,_jsxs(_components.li,{children:[`Responds to you request with a `,_jsx(_components.code,{children:`302 Found`}),` redirect to the expiring URL.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`If you change an attachment in Airtable, the change in Airtable’s unique attachment ID (of the form `,_jsx(_components.code,{children:`att▒▒▒▒▒▒▒▒▒▒▒▒▒▒`}),`) leads Sequin to update the proxy URL in the corresponding Postgres row.`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/sequin/zMOdbu_A_Ep0dl56/images/new-attachments-6d0d66ddf34239b0823154b0cdaa36cd.png?fit=max\u0026auto=format\u0026n=zMOdbu_A_Ep0dl56\u0026q=85\u0026s=2c7b1ab1f18ccbde8ef6cc8796ee679b`,alt:`Diagram of how Sequin's proxy URLs for Airtable attachments work.`,\"data-og-width\":`1104`,width:`1104`,\"data-og-height\":`552`,height:`552`,\"data-path\":`images/new-attachments-6d0d66ddf34239b0823154b0cdaa36cd.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/sequin/zMOdbu_A_Ep0dl56/images/new-attachments-6d0d66ddf34239b0823154b0cdaa36cd.png?w=280\u0026fit=max\u0026auto=format\u0026n=zMOdbu_A_Ep0dl56\u0026q=85\u0026s=2a25b8a2b3df73d4433a183c352ee3a1 280w, https://mintcdn.com/sequin/zMOdbu_A_Ep0dl56/images/new-attachments-6d0d66ddf34239b0823154b0cdaa36cd.png?w=560\u0026fit=max\u0026auto=format\u0026n=zMOdbu_A_Ep0dl56\u0026q=85\u0026s=c219f989ffe5a85a83f86a85980827df 560w, https://mintcdn.com/sequin/zMOdbu_A_Ep0dl56/images/new-attachments-6d0d66ddf34239b0823154b0cdaa36cd.png?w=840\u0026fit=max\u0026auto=format\u0026n=zMOdbu_A_Ep0dl56\u0026q=85\u0026s=29424e071d53f9d24ba90b21c8130465 840w, https://mintcdn.com/sequin/zMOdbu_A_Ep0dl56/images/new-attachments-6d0d66ddf34239b0823154b0cdaa36cd.png?w=1100\u0026fit=max\u0026auto=format\u0026n=zMOdbu_A_Ep0dl56\u0026q=85\u0026s=3f4e630fbb03d315c9b7c98bfc694eec 1100w, https://mintcdn.com/sequin/zMOdbu_A_Ep0dl56/images/new-attachments-6d0d66ddf34239b0823154b0cdaa36cd.png?w=1650\u0026fit=max\u0026auto=format\u0026n=zMOdbu_A_Ep0dl56\u0026q=85\u0026s=8f729da58820f058d34adde46eb5f47f 1650w, https://mintcdn.com/sequin/zMOdbu_A_Ep0dl56/images/new-attachments-6d0d66ddf34239b0823154b0cdaa36cd.png?w=2500\u0026fit=max\u0026auto=format\u0026n=zMOdbu_A_Ep0dl56\u0026q=85\u0026s=cfeb3c817106ad11dea68fafb4bb9e5d 2500w`}),`\n`,_jsx(Warning,{children:`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.`}),`\n`,_jsx(_components.hr,{}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`https://support.airtable.com/docs/changes-to-airtable-attachments`,children:`Changes to Airtable attachments.`}),`. From “What’s changing:”`]}),`\n`]}),`\n`,_jsxs(_components.blockquote,{children:[`\n`,_jsxs(_components.p,{children:[`Any attachment URLs obtained via the Airtable Web API and the CSV export functionality will expire after a few hours.`,_jsx(_components.br,{}),`\n`,_jsx(_components.a,{href:`#fnref-1`,children:`↩`})]}),`\n`]}),`\n`,_jsxs(_components.ol,{start:`2`,children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`https://support.airtable.com/docs/changes-to-airtable-attachments`,children:`“Changes to Airtable attachments.”`}),` From the FAQ:`]}),`\n`]}),`\n`,_jsxs(_components.blockquote,{children:[`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`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?`})}),`\n`,_jsxs(_components.p,{children:[`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.`,_jsx(_components.br,{}),`\n`,_jsx(_components.a,{href:`#fnref-2`,children:`↩`})]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Attachments","description":null,"href":"/integrations/airtable/attachments"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Sequin Proxy URLs for Airtable attachments","slug":"sequin-proxy-urls-for-airtable-attachments","depth":2,"children":[]},{"title":"Resolving attachment URLs","slug":"resolving-attachment-urls","depth":2,"children":[{"title":"Common issues","slug":"common-issues","depth":3,"children":[]}]},{"title":"How attachment URLs work","slug":"how-attachment-urls-work","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"sequin","siteName":"Sequin","title":"Attachments - Sequin","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-05-14T01:14:53.957Z","originalFileLocation":"integrations/airtable/attachments.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"Sequin\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/sequin/uiE1W50_U5tk7R0l/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/sequin/uiE1W50_U5tk7R0l/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/sequin/uiE1W50_U5tk7R0l/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/sequin/uiE1W50_U5tk7R0l/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/sequin/uiE1W50_U5tk7R0l/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/sequin/uiE1W50_U5tk7R0l/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/sequin/uiE1W50_U5tk7R0l/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/sequin/uiE1W50_U5tk7R0l/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/sequin/uiE1W50_U5tk7R0l/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Attachments - Sequin\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Sequin\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://sequin.io/docs/integrations/airtable/attachments\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://sequin.mintlify.site/docs/_mintlify/api/og/v2?division=Documentation\u0026amp;title=Attachments\u0026amp;theme=48ed114f1f0d2fe771b0544c\u0026amp;signature=711332f9c0f3d5d53183acf1a997efd338b2f99cb86d9f9c0a739c6b6ba9143b\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Attachments - Sequin\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://sequin.mintlify.site/docs/_mintlify/api/og/v2?division=Documentation\u0026amp;title=Attachments\u0026amp;theme=48ed114f1f0d2fe771b0544c\u0026amp;signature=711332f9c0f3d5d53183acf1a997efd338b2f99cb86d9f9c0a739c6b6ba9143b\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/sequin/uiE1W50_U5tk7R0l/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Sequin\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0E0E0E\">\u003clink data-mint-head rel=\"canonical\" href=\"https://sequin.io/docs/integrations/airtable/attachments\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/integrations/airtable/attachments.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Sequin\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Sequin\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/docs/integrations/airtable/attachments.md","siteName":"Sequin","nav":{"global":null,"tabs":[{"tab":"General","groups":[{"group":"Overall","pages":[{"title":"What is Sequin?","href":"/introduction"},{"title":"Core concepts","href":"/core-concepts"},{"title":"Getting started","href":"/getting-started"},{"title":"Sequin shutdown \u0026 migration guide","href":"/shutdown"}]},{"group":"Auth","pages":[{"title":"Auth","sidebarTitle":"Introduction","href":"/auth/auth"},{"title":"Exchange code for token","api":"POST /link/oauth2/token","href":"/auth/token"}]},{"group":"Streams","pages":[{"title":"Streams","sidebarTitle":"Introduction","href":"/streams"},{"title":"Syncs","href":"/streams/syncs"},{"group":"Consume","pages":[{"title":"Overview","href":"/streams/consume/overview"},{"title":"Get next messages","api":"POST /v1/http-consumers/{id}/next","href":"/streams/consume/next"},{"title":"Ack messages","api":"POST /v1/http-consumers/{id}/ack","href":"/streams/consume/ack"},{"title":"Nack messages","api":"POST /v1/http-consumers/{id}/nack","href":"/streams/consume/nack"}]}]},{"group":"Mutations","pages":[{"title":"Introduction","href":"/mutations"},{"group":"Mutation API","pages":[{"title":"Overview","href":"/mutations/overview"},{"title":"Create","api":"POST /v1/mutations/run","href":"/mutations/create"},{"title":"Update","api":"POST /v1/mutations/run","href":"/mutations/update"},{"title":"Delete","api":"POST /v1/mutations/run","href":"/mutations/delete"}]},{"title":"Proxy API","href":"/mutations/proxy"}]},{"group":"How to","pages":[{"title":"Consume Records","href":"/how-to/consume-records"},{"group":"Upsert to Postgres","pages":[{"title":"Upsert to Postgres","sidebarTitle":"Overview","href":"/how-to/upsert-to-postgres/overview"},{"title":"Upsert to Postgres (JavaScript)","sidebarTitle":"JavaScript","href":"/how-to/upsert-to-postgres/javascript"},{"title":"Upsert to Postgres (Go)","sidebarTitle":"Go","href":"/how-to/upsert-to-postgres/go"},{"title":"Upsert to Postgres (Python)","sidebarTitle":"Python","href":"/how-to/upsert-to-postgres/python"},{"title":"Upsert to Postgres (Elixir/Ecto)","sidebarTitle":"Elixir","href":"/how-to/upsert-to-postgres/elixir"},{"title":"Upsert to Postgres (Ruby/Rails)","sidebarTitle":"Ruby","href":"/how-to/upsert-to-postgres/ruby"}]}]}]},{"tab":"Management API","groups":[{"group":"Management API","pages":[{"title":"Introduction","href":"/management-api/introduction"},{"title":"Authentication","href":"/management-api/authentication"},{"title":"Objects","href":"/management-api/objects"},{"title":"Errors","href":"/management-api/errors"},{"group":"Streams","pages":[{"title":"List streams","api":"GET /v1/streams","href":"/management-api/streams/list"},{"title":"Get a stream","api":"GET /v1/streams/{id}","href":"/management-api/streams/get"},{"title":"Create a stream","api":"POST /v1/streams","href":"/management-api/streams/create"},{"title":"Update a stream","api":"PATCH /v1/streams/{id}","href":"/management-api/streams/update"},{"title":"Delete a stream","api":"DELETE /v1/streams/{id}","href":"/management-api/streams/delete"}]},{"group":"Syncs","pages":[{"title":"List syncs","api":"GET /v1/syncs","href":"/management-api/syncs/list"},{"title":"Get a sync","api":"GET /v1/syncs/{id}","href":"/management-api/syncs/get"},{"title":"Create a sync","api":"POST /v1/syncs","href":"/management-api/syncs/create"},{"title":"Update a sync","api":"PATCH /v1/syncs/{id}","href":"/management-api/syncs/update"},{"title":"Delete a sync","api":"DELETE /v1/syncs/{id}","href":"/management-api/syncs/delete"}]},{"group":"Consumers","pages":[{"title":"List Consumers","api":"GET /v1/http-consumers","href":"/management-api/consumers/list"},{"title":"Get a Consumer","api":"GET /v1/http-consumers/{id}","href":"/management-api/consumers/get"},{"title":"Create a Consumer","api":"POST /v1/http-consumers","href":"/management-api/consumers/create"},{"title":"Update a Consumer","api":"PATCH /v1/http-consumers/{id}","href":"/management-api/consumers/update"},{"title":"Delete a Consumer","api":"DELETE /v1/http-consumers/{id}","href":"/management-api/consumers/delete"},{"title":"Reset a Consumer","api":"POST /v1/http-consumers/{id}/reset","href":"/management-api/consumers/reset"}]},{"group":"Credentials","pages":[{"title":"List credentials","api":"GET /v1/credentials","href":"/management-api/credentials/list"},{"title":"Get a credential","api":"GET /v1/credentials/{id}","href":"/management-api/credentials/get"},{"title":"Import a credential","api":"POST /v1/credentials/{id}","href":"/management-api/credentials/create"},{"title":"Update a credential","api":"PATCH /v1/credentials/{id}","href":"/management-api/credentials/update"},{"title":"Delete a credential","api":"DELETE /v1/credentials/{id}","href":"/management-api/credentials/delete"}]},{"group":"OAuth apps","pages":[{"title":"List OAuth apps","api":"GET /v1/oauth-apps","href":"/management-api/oauth-apps/list"},{"title":"Get an OAuth app","api":"GET /v1/oauth-apps/{id}","href":"/management-api/oauth-apps/get"},{"title":"Create an OAuth app","api":"POST /v1/oauth-apps","href":"/management-api/oauth-apps/create"},{"title":"Update an OAuth app","api":"PATCH /v1/oauth-apps/{id}","href":"/management-api/oauth-apps/update"},{"title":"Delete an OAuth app","api":"DELETE /v1/oauth-apps/{id}","href":"/management-api/oauth-apps/delete"}]},{"group":"Collections","pages":[{"title":"List collections","api":"GET /v1/collections/{credential_id}","href":"/management-api/collections/list"},{"title":"Get a collection","api":"GET /v1/collections/{credential_id}/{id}","href":"/management-api/collections/get"},{"title":"Get collection refresh status","api":"GET /v1/collections/{credential_id}/refresh/status","href":"/management-api/collections/get-refresh-status"},{"title":"Start collection refresh","api":"POST /v1/collections/{credential_id}/refresh/start","href":"/management-api/collections/start-refresh"}]}]}]}]},"basePath":"","title":"Attachments - Sequin","buildId":"dpl_Aw98ji4XvBsgtZwL1VrkUF9ehFqz","deploymentId":"dpl_Aw98ji4XvBsgtZwL1VrkUF9ehFqz","dynamics":["a74be98ba7"],"chunks":["zoom-image-lightbox-DsiWwPWR.js","lightbox-handle-r17bVUz3.js"]}