Oct 02, 2018 08:42 AM
Hi! I found a workaround that’s helpful for me, so I thought I’d share. If someone has an easier way to do this, please let me know! Apologies if this has already been posted, I didn’t find it after a bit of searching.
The problem I was trying to solve was that when updating a record, a field can be named using its friendly name (e.g. “First Name”), but then if I change it later, even a little bit, my API integration will break. Each field also has a unique ID, prefaced by fld, but I wasn’t aware of any way to actually find that name.
Well, it turns out that you can for most fields, with a little trickery:
Edit: See drassi’s post below for an easier way to do this.
In the GUI, create a new field, and make it a formula. In the formula, refer to the field that you want to know the ID of. (For instance, if you want to know the ID of the “First Name” field, make your formula “{First Name}”.)
Delete the field that you want to know the name of. Now, the formula field will have a red error icon, and when you pull up your formula, the formula will say “{column_value_fldxxxxxxxxxxxx}”. The fldxxxxxxxxxxxx part is your field ID.
Undo the field deletion. Everything will be back the way it was before, nothing will have been harmed by temporarily deleting the field.
This works for any field except the first column, which can’t be deleted as it is the primary key.
Now, you can refer to fldxxxxxxxxxxxx in your API calls and it won’t matter if it gets renamed!
Solved! Go to Solution.
Mar 11, 2022 12:44 AM
The best way I found is to go to https://airtable.com/YOUR_BASE_ID/api/docs
There you will have a complete documentation with tables ids and fields ids
/api/docs
Oct 02, 2018 08:54 AM
hmm, could you not just use the RECORD_ID() function in your formula? I think thats all you need.
Oct 02, 2018 09:03 AM
That returns the ID of the record(the row, in the user interface), not the ID of the field (the column, in the user interface).
Oct 02, 2018 09:04 AM
ah, gotcha. ok, that is a nice hack :slightly_smiling_face:
Oct 11, 2018 01:52 PM
Great find! This is a neat trick to prevent script errors, thanks for sharing.
You can actually find these field IDs a bit faster using your browser inspector, just inspect the header cells and you’ll find a data-columnid html attribute that reveals this field ID. This also allows you to get the ID for your primary key, if that’s ever of use.
Mar 03, 2020 03:54 AM
And now there’s an even easier way, thanks to Scripting block.
Of course, the Scripting block will require a paid subscription, whereas the Standard API is free.
Mar 04, 2020 08:30 AM
I believe that all these methods are probably less ideal than using the Metadata API if that is an option.
Dec 26, 2021 07:14 PM
Unfortunately, the Meta API is only available server-side (i.e., call from backend): " Client-side requests are not allowed"
Jan 17, 2022 07:55 AM
copied from FB comments, quick steps
field IDs of current active table:
output.table(base.getTable(cursor.activeTableId).fields)
find field in a base when you know ID
const FIELD='PUT_ID_HERE'
let table=base.tables.find(t=>t.fields.some(f=>f.id==FIELD))
output.text(table?.name+'/'+table?.getField(FIELD).name)
Mar 11, 2022 12:44 AM
The best way I found is to go to https://airtable.com/YOUR_BASE_ID/api/docs
There you will have a complete documentation with tables ids and fields ids
/api/docs