Mar 23, 2017 02:13 PM
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
Mar 23, 2017 02:33 PM
It’s not possible yet…
Jan 19, 2018 09:41 AM
Yes please to this!!! --> It’d be ideal if the API for each base conformed to something like Swagger 2.0
Jan 22, 2018 04:56 AM
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
Jan 25, 2018 10:30 AM
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'))) ))))
Mar 20, 2018 04:43 PM
@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.
Nov 15, 2018 11:20 AM
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.
May 02, 2019 11:01 AM
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.
Oct 17, 2020 01:55 PM
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.