[ANN] Airtable.jl - an (unofficial) interface for the Airtable API

Airtable is a neat little web service for building relational databases, and I recently put together this little package for interfacing with the Airtable API (that link is a referral link - if you make an account, you and the dummy account I made for testing will get $10 in credits).

This package took heavy inspiration from Frames Catherine White’s Trello.jl, though it is substantially more rough around the edges. I’m primarily using the API for downloading data right now, and still figuring out how it works, but I thought I’d throw this out there and get it registered (currently in 3 day waiting period) in case anyone else might find it useful. The most important thing I got working is a method that handles the rate-limiting and pagination that Airtable does on requests that return more than 100 records.

Currently, only the GET methods really work, because I haven’t sorted out how to format the request for posting data - the answer may be in the Trello.jl code, but I haven’t made it that far yet. Anyway, let me know what you think!

5 Likes

I am an avid user of Airtable. I will give it a go. Airtable can meet a lot of need for hobby projects without ever needing any credit. It lets you configure relational data very easily. On top, you can literally copy and paste example code to read write data with javascript (or curl). I actually use Airtable as an alternative to Trello, easier to customise my taskboard. The credits are great if you want to start having over well over 1000 datarows and if you want to experiment adding your own blocks now renamed apps in javascript. There is a marketplace for them – All apps - Airtable Marketplace

2 Likes

I turned it into a katacoda recipe, mostly to expplore katacoda as a way to write step by step tutorials ( for the mere mortal ). I will play a bit more with it in 2 weeks time.


https://www.katacoda.com/widged/scenarios/julia-airtable

Annoying, katacoda does not seem to provide any means to share a sandboxed tutorial without the viewer having to login and register (even if quick to do with github)

2 Likes

BTW :wave: this is my first post

4 Likes

This is awesome, thanks for doing it!

It’s it easy to update/modify? Once the registration takes, it would be nice to change the package addition to ] add Airtable.

1 Like

katacoda. I have an oreilly safari account which seems to give me access to it. When you create a profile, it creates a single github repos for all your “courses” - https://github.com/widged/katacoda-scenarios. From thereon, pushing updated content on github will update automatically update courses on your profile.

All it toke was some setup - https://github.com/widged/katacoda-scenarios/blob/master/julia-airtable/set-env.sh.
And declare some steps
https://github.com/widged/katacoda-scenarios/blob/master/julia-airtable/step1.md

Quite straightforward :slight_smile:

1 Like

I wrote one these too, for myself. I never published it because it’s very idiosyncratic, but it does have both read and write functionality. Might be something of interest there.

I also have one for SeaTable, which I prefer because their API is significantly more complete (and the service is more affordable). That one I am planning to publish.

1 Like

Definitely - I’m not very familiar with web APIs in general, so seeing a working version would definitely be useful.

Oh wow… the fact that they have the ability to self-host might force me to make the switch. Right now, we can’t use Airtable for all of our data since we have patient info and can’t use a web service that’s not HIPPA compliant… self hosting might be the answer. Thanks for sharing!

Very cool! I just made a PR :slight_smile:

Great “wait…through waiting period” simply let me know

I was not aware of SeaTable yet. Missing for me is the kanban view or gallery view. On the free tier Airtable is free with 1,200 rows per base, which makes it great for setting up any demo version to share with others. Seatable is 2,000 rows per account. But the self-hosted option certainly is very interesting. Both Google and Microsoft have been working on ripoffs, with Table Google Tables: How I Use Google’s New Workflow Tool and Lists https://www.microsoft.com/en/microsoft-365/microsoft-lists

1 Like

Just found out about matrify. Straightforward self-hosting, toke me 5 minutes, Somehwat more clunky, visually, but $20 for a perpetual license Pricing “Run the server software on your own hardware - even from your USB flash drive”.

Ah well, taking 10 minutes to help got me some great tips. Thanks!

Thanks for sharing! I’m very happy to see a Google version. I’ve actually been using Sheets recently, despite finding it a very poor substitute for Airtable, because the integration with Google authentication, etc., is essential in some situations. I also notice that the Forms built into Google Tables allow people to view and edit previously-submitted records, and this is a feature I’ve been looking for in a data table product for a long time. Google Tables also has an API, which I haven’t investigated yet.

For anyone else who stumbles across this…

I was also looking for alternatives to AirTable (preferably with Julia integration), and a colleague pointed me to Baserow (https://baserow.io/). From the outset, it seems polished. Like SeaTable, it also has a self-hosting option, but unlike SeaTable, it’s actually available on github open source (MIT license), with commercial options.

(No Julia integration yet, unfortunately.)

Cheers,
Kevin

2 Likes

I’m pleased to announce v0.2.0 of Airtable.jl, which is a pretty major overhaul. Major changes:

  • types for referring to airtable “Bases”, “Tables”, and “Records.” This also helps with dispatch
  • Actual support for post, patch, and delete requests (I didn’t understand enough about the API before, so my previous implementations were broken).
  • All functions that make requests are now aware of a global timer for rate-limiting, so that you don’t have to manually keep track to avoid making more than 5 requests / sec

This looks pretty great! I think a lot of the work I just did for Airtable should work for that as well. I’ll take a look!

1 Like

I would like to have an official Baserow API for Julia… but there is another option that would be Nocodb - Nocodb is self-hosted.