Direct file upload to Airtable without external hosting

I’m working with Airtable as my database for a mobile application and running into a challenge with file uploads.

Based on the API documentation, it seems like uploading files or images requires providing a URL to the file rather than uploading it directly. The docs mention that when creating attachments, you need to set the field value to an array of attachment objects where the url property is mandatory.

// Current approach based on docs
const recordData = {
  fields: {
    'ProfilePhoto': [
      {
        url: 'https://myserver.com/uploads/photo123.jpg',
        filename: 'user_photo.jpg'
      }
    ]
  }
};

This means I have to:

  1. Upload the file to my own server first
  2. Generate a public URL for that file
  3. Send that URL to Airtable
  4. Wait for Airtable to download and store its own copy

Is there any method to bypass this workflow? Can I send the file data directly to Airtable without needing my own file storage solution? It would be much simpler if I could upload directly and then retrieve the Airtable-hosted URL for future use.

totally understand ur frustration! I’ve also tried using dropbox or gd as a temporary fix. upload first, then just link it to airtable. it’s a hassle for sure, but it works for now. wish there was a better way, though!

Nope, Airtable’s API doesn’t support direct file uploads. Hit the same wall last year building a client portal. I ended up using a two-step workaround with AWS S3 for temp storage. Turns out Airtable actually processes and optimizes files when they pull from your URL, so the extra step isn’t just busy work. My solution: serverless function takes the upload, dumps it on S3 with short expiration, then immediately sends that S3 URL to Airtable. Once Airtable confirms the record, temp file gets nuked. More complex but keeps costs low since you’re only storing files briefly.

This topic was automatically closed 4 days after the last reply. New replies are no longer allowed.