Skip to content

florianverdonck/AirtableToolkitDocumentation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

AirtableToolkit Documentation

Introduction

What is AirtableToolkit ?

AirtableToolkit is a tools that aims to bring access to all Airtable features through an API. It's some sort of unofficial Meta API that Airtable is still working on.

How does it work ?

The tool can be divided in two main components :

  • the AirtableCookiesFetcher Chrome Extension
  • the AirtableTookit API

The extension is used to fetch your Airtable account cookies (and updated them when needed) and send them to our server. The AirtableToolkit API then uses those cookies to provide you additional features through the API.

How do you offer those "additional features" ?

Basically, Airtable itself uses an API for all the actions you do on Airtable. Each time you create a field, rename a table or even create an automation, an API call is sent by the Airtable webapp to the Airtable backend. We are just providing a "proxy" to this API.

Use-cases

There a few use-cases we can think of :

  • Backup & Restore Airtable Structure
  • Backup & Restore Airtable Automations & Apps configuration
  • Create view dynamically (each time a clients is added to the base, add a view filtered on this client and save the link -- basic portal)
  • Bulk rename, format, update fields
  • Base schema versioning
  • ...

Technical documentation

BaseURL

Please note this development is still in BETA and base url is subject to changes.

Take this into consideration when building integrations that rely on this tool.

Good practice is to use dedicated variable storing the base URL, so you can easily change it in one place later.

Current base URL is : https://airtabletoolkit.herokuapp.com

Authentication

Method 1 : Authorization header (preferred)

We use Bearer Token authentication as shown below.

You will receive your token by email quickly after installing the extension.

Header name Header value
Authorization Bearer {{yourApiKeyHere}}

Method 2 : Query params

You can just call any endpoint and add the additional AirtableToolkitAPIKey parameter with you APIKey as value.

Query parameter name Query parameter value
AirtableToolkitAPIKey {{yourApiKeyHere}}

Example endpoint with required parameter https://{{BASE_URL}}/getLoggedInUser?AirtableToolkitAPIKey={{yourApiKeyHere}}

Airtable IDs : generation function

ℹ️ This is especially useful when using the “create” endpoint where the API requires you to give an ID to use. Usually, when creating a field, table or view, you don’t really care about the ID, you just want to generate one that is valid. That’s exactly the role of this function. It works as a basic string that you can "inject" in your URL and we will automatically replace it with a valid ID.

Function : *generateId:app*

Example endpoint : /v0.3/field/*generateId:fld*/create

Resulting endpoint : /v0.3/field/fldfJVP3dsSR6j1su/create

  • Common ID prefixes
    • app/base : app
    • table : tbl
    • field : fld
    • view : viw

Limitations

We all ❤️ Airtable. The last thing we want is make Airtable crash. That is why I decided to stay very reasonable on the authorized number of calls. I implemented an API throttling that is currently limited to 100 calls every 5 minutes, which is 20 calls per minutes. It's the load (even less) that is expected from a user using the Airtable web interface.

Proxy endpoints

This is a specific endpoint that allows you to use any available endpoint from Airtable. It "just" forwards the calls. There are quite a few things happening in the background but this is what this endpoint is made for. So if the documentation is missing your required endpoint, feel free to use the Network tab from Chrome Developer panel and use the same urls and parameters.

List of interesting endpoint This file will give you a basic documentation for interesting endpoint.

Please feel free to reach me by email (florianverdonck [at] gmail.com) if you need other endpoints documentation.

Account endpoints

⚠️ These are specific endpoints with data that is not available from the frontend API but fetched directly from the page content.

[GET] /account/

Returns the currently "logged in user" details. Add param "?includeAPIKey=true" if you want to see the API Key as well. Please be very cautious with this parameter, using it on automation platform might leak your credentials in the history.

[GET] /account/collaborators

Returns all the collaborators you are working with in all the bases you have access to

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published