Help

Re: Uploading image files to an attachment field via API

11 0
cancel
Showing results for 
Search instead for 
Did you mean: 
KevinKearns
1 - Visitor
1 - Visitor

I want to add images to an attachment field in an Airtable.  I've read all of the documentation and Community comments but can't seem to find an answer to my problem.

  • I have a publicly accessible link to the image
  • I can call https://api.airtable.com/v0/{baseID}/{tableID}/{recordID} and add an image fine, however, I want to make multiple other calls adding new versions of the image and this call overwrites what is already there but I want to keep the previously uploaded files.  (I understand this is an Update call and that logic makes sense.)
  • Therefore, I believe I should call  https://content.airtable.com/v0/{baseID}/{recordID}/{fieldID}/uploadAttachment  passing in a similarly formatted JSON object, however, I cannot get that to work.  I get something added to the attachment field, however, it is just 1K gibberish file.

    • Here is a copy of what I'm calling:

      curl --location 'https://content.airtable.com/v0/{baseID}/{recordID}/{fieldID}/uploadAttachment' \
      --header 'Authorization: Bearer {accessToken}' \
      --header 'Content-Type: application/json' \
      --header 'Cookie: {cookie stuff}' \
      --data '{
          "contentType": "image/png",
          "file": "{publicly accessible URL to image}",
          "filename": "Content_Hub_Portraitv2.png"
      }'

    • Any help would be appreciated.

Thanks much.

 

5 Replies 5

The 'uploadAttachment' API expects the actual file, not a URL to the file I'm afraid; the documentation mentions that it's done via the file bytes directly

As such, you're going to need to retrieve the image first, convert that, and then use that endpoint

As an alternative, you could also try retrieving the record first, append the new file, then do a PATCH?

ScottWorld
18 - Pluto
18 - Pluto

@KevinKearns 

You can use public URLs to upload attachments to a record, but you need to do it through the update record API call (or new record call).

Airtable’s new API documentation is extremely confusing, so I would recommend looking at Airtable’s old API documentation, which is PERSONALLY CUSTOMIZED FOR YOUR BASES! 

Go to this page, scroll down, choose your base, and the API documentation’s CURL code will be customized for your bases & fields: https://airtable.com/developers/web/api/introduction

- ScottWorld, Expert Airtable Consultant

@ScottWorld  Hmm, you mentioned Airtable's 'new' API documentation being confusing and recommended the old ones.  What's new about them?

Do you have a link or something specific I can check out? As far as I can tell, nothing's changed!

ScottWorld
18 - Pluto
18 - Pluto

I just gave you the instructions above on how to access the old documentation.

And yes, the documentation went through a major overhaul a few years ago, which everybody has found incredibly confusing, particularly compared to the clarity and personalization of the old documentation.

- ScottWorld, Expert Airtable Consultant 

I was able to update the attachment field using the information that @ScottWorld provided.  @TheTimeSavingCo I'd still like to try to use the UPLOADATTACHMENT option  but I don't know what you mean by "via the FILE BYTES directly" reference?  I'm hoping this option does not require putting my files on a publicly accessible URL site just to import them.  Thanks for your help.