Help

Re: API endpoint that provides Schema for Base

1162 0
cancel
Showing results for 
Search instead for 
Did you mean: 
Tristian_Azuara
4 - Data Explorer
4 - Data Explorer

Hello

I’ve not been able to find documentation on whether it is possible to obtain the schema of an existing base, other than the one that is autogenerated in the form of online documentation.

I intend to use this Schema to auto generate language bindings for specific bases; while code changes may still be required in the case of statically type languages one has to deal with updating the data
structs that allow use to enforce type-safety and the specific code that use the endpoints.

It’d be ideal if the API for each base conformed to something like Swagger 2.0

Best, Tristian

8 Replies 8
Tuur
10 - Mercury
10 - Mercury

It’s not possible yet…

Devin_Balkind
6 - Interface Innovator
6 - Interface Innovator

Yes please to this!!! --> It’d be ideal if the API for each base conformed to something like Swagger 2.0

Andrew_Johnson1
8 - Airtable Astronomer
8 - Airtable Astronomer

Hey Tristan,
I know this is a really late reply…
But in any case you can construct the “schmea” dynamically with the help of the Airtable API and some native language like PHP, JAVA etc…
Zapier does it as it dynamically picks up all your fields and bases when you create a Zap for Airtable

Kai_Curry
5 - Automation Enthusiast
5 - Automation Enthusiast

After logging in to the Airtable website I’ve been pasting the following into the browser console of the API documentation page. I then paste the result into a new json text file. I haven’t bothered with automating or finding a better way.

console.log(JSON.stringify(_.mapValues(application.tablesById, table => _.set(
  _.omit(table, ['sampleRows']),
  'columns',
  _.map(table.columns, item => _.set(item, 'foreignTable', _.get(item, 'foreignTable.id')))
))))

@Andrew_Johnson1, how are you retrieving the Schema via the API? All the programmatic solutions I’ve seen in this forum appear to be doing something like scraping the API documentation page. If you have any code (in any language) I’d love to see it!

Thanks in advance.

-Mark

Roy_Higgs
4 - Data Explorer
4 - Data Explorer

Yes, please. The ability to download a Swagger definition for a base schema is somewhat critical for using the API in either language suites (e.g. .NET) or from low code platforms.

Brian_Kinney
5 - Automation Enthusiast
5 - Automation Enthusiast

Since I was interested in this myself and such an API still does not exist I created an addon that scrapes Airtable documentation pages for the schema definition and converts it into an OAS 3.0 API definition. I can’t post a link directly to the addon page but you should be able to find it in the Mozilla addons site by searching for “airtable swagger”.

If you experience any trouble with it you can write an issue in github. It probably won’t handle all cases of Airtable schemas but I think the output is a mostly-complete description of the API.

I used your console code in early October and it worked perfectly to create a JSON enumeration of the tables and fields. I rejoiced and continued working my own code to the point where I could use this. Now, 2 weeks later, your console code only gets the response “ReferenceError: _ is not defined”. Methinks Airtable has changed their JS just enough to break your scheme, maybe deliberately to thwart enumeration.