Need development and API help? Ask your questions here!
Recently active
I’ve been working on a way to proxy Airtable API calls through a Cloudflare worker. What this library lets you do is add permissions and securely attach your API key to Airtable API requests without letting users see your credentials on the frontend. Cloudflare Workers are $5/mo, and they run on Cloudflare’s edge network, so they’re really fast for clients. So this project is basically a serverless API proxy, and I’ve found it really useful for making the Airtable API client-side friendly. Happy to answer questions about implementation or suggestions for improvements!
I am using Node.js library to communicate with AirTable, official js library. I am having a problem with filterByFormula. Sometimes when I try to find a record in AirTable I don’t get results even though I am pretty sure that there should be some results. My logic is such that if I do not find the record in AirTable I create a new one. If I find it I update an existing one. This logic leads to problem with same entries entered twice. This is my query: getReservationByID: async (externalID) { let reservations = await calendarBase('Reservations').select({ view: 'Main View', filterByFormula: `{External ID} = \\"${externalID}\\"`, maxRecords: 1, }).all(); return (reservations.length > 0) ? reservations[0] : null; }, And this function is used like this: let oldReservation = await getReservationByID(reservation.id); if (!oldReservation) { createNewReservation(reservation); } else { updateReservation(reservation); } As you can see, it is essential for me
I’m writing a php script in which I need to fetch all records from a certain base of about 1000 records (and store them in one array so I can handle some stuff). As I understand the max pageSize is 100, but with the offset it returns and using this as a parameter in your next request you can get the next pages. But this doesn’t seem to really work. I can get a few pages (actually sometimes just one) until it throws the error LIST_RECORDS_ITERATOR_NOT_AVAILABLE on me. I simply never am able to fetch every page. This error always occurs. How can I proceed from this error to be able to fetch every record? Am I missing something? A snippet from my code: //curl code ... curl_close($ch); $airtable_response = json_decode($entries, TRUE); foreach ($airtable_response["records"] as $key => $record) { $all_records[] = $record; } // Next page if there is one if( $airtable_response['offset'] ) { fetch_records($url . "?offset=" . $airtable_response['offset']); } else { return $all_records; }
Hi - For new records created as of 2/28/19, we are no longer seeing the “{username} Created via API” in the revision history that shows the initial values of the record. “{username} Edited via API” is still appearing when the record is edited. Records created prior to 2/28/19 still contain the created via api. Thanks, Dan
Hi there, I encounter a problem that it cannot get the data in some computers due to the ‘FileLoadException: A strongly-named assembly is required’ to the AirtableApiClient.dll. I am adding the AirtableApiClient.dll with version 0.9.2.0 as a reference, which is not Strong Name assembly. Does anyone know is there any strong name version I can reference to? Or any solution to the issue? The project code is written in C#, access and get data from airtable, then serialize to a local .json file.
I currently have api airtable /v0/appVhG3JD5Ko1oeJ7/Twitter%20Database/?view=20%20february%202019?api_key=MY KEY I get {"error":{"type":"AUTHENTICATION_REQUIRED","message":"Authentication required"}} I’m trying to return all the Entrys with the date (written as) ‘20 February 2019’ Any ideas - I struggle reading the documentation so I’m not sure what to try
I am using Airtable in a Java project with Eclipse, but i have this problem: -Code : import java.lang.reflect.InvocationTargetException; import com.sybit.airtable.Airtable; import com.sybit.airtable.Base; import com.sybit.airtable.Table; import com.sybit.airtable.exception.AirtableException; import java.lang.reflect.InvocationTargetException; public class Main { @SuppressWarnings("unchecked") public void UpdatePelicula() throws AirtableException, IllegalAccessException, InvocationTargetException, NoSuchMethodException{ Airtable airtable = new Airtable().configure(); System.out.println("Hola"); Base base = airtable.base("keyA50PJucw4m5Ktc"); Table <Peliculas> peliculasTable = base.table("Peliculas", Peliculas.class); } public static void main(String[] args) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException, AirtableException{ Main main = new Main(); main.UpdatePelicula(); } } Error: Exception in thread “main” java.lang.NoClas
Hey, What exactly does the pagination related API error LIST_RECORDS_ITERATOR_NOT_AVAILABLE mean? The API docs say Iteration may timeout due to client inactivity or server restarts. In that case, the client will receive a 422 response with error message LIST_RECORDS_ITERATOR_NOT_AVAILABLE . It may then restart iteration from the beginning. What does that mean? How am I supposed to deal with that? The first “page” ie. the first 100 records are always correctly returned, but the next “page” fails randomly; sometimes it works, the next minute it doesn’t. This is extremely frustrating and a major issue for our use case at the moment. Any help is appreciated.
Hi everyone. I have been scratching my head for a while now, and looking at API docs seems to be impossible, however I have High hopes to make this happen. I am using using filemaker to build API requests, I am already able to do a few transactions adding and retrieving records. But when it comes to attachments I am hopeless. I have lets say test.zip archive locally, I need to upload it via api and at some point download it back via API. from my application (client) I am able to build simmilar transaction to dropbox: –header Content-Type: application/octet-stream –data-binary @$file" ANYONE please help! and Thank you in advance
I am specifying a table to retrieve a specific record but I am using a record ID from a different table (deliberately) and the response is retrieval of that record from the other table when I expect it to return a not found message. Is this by design? It is a problem for my use case. Any way to avoid this? recACjz97bYmXXXX is an existing record in sessions table. The following curl targeting the profiles table returns the record from the sessions table instead of an error. curl https://api.airtable.com/v0/applnNWHXXXXXX/profiles/recACjz97bYmXXXX same result using below curl: curl https://api.airtable.com/v0/applnNWHXXXXXX/sessions/recACjz97bYmXXXX
Hi, how can i get some record id from a specific table with a specific field (id, email…)? I use CURL with PHP. Some like: https://api.airtable.com/v0/.../.../specific_field=value \ Thanks!
I’m using the python wrapper (here). I have a small script that tries to update a field in the ‘Orders’ table. The record is successfully retrieved earlier from the API so I have the ID of the record stored in ‘orderid’. I’m now trying to update 1 field called ‘Folder’ to ‘True’. record = airtable.search('id', orderid) fields = {'Folder': 'True'} airtable.update(record[id], fields) But i receive this error which i’m stuck at: requests.exceptions.HTTPError: 422 Client Error: Unprocessable Entity for url: https://api.airtable.com/v0/appoR6kS5KY3cJdwK/Orders?filterByFormula={id}='rec70yhW5MYcetmxJ' (Decoded URL) [Error: {'type': 'INVALID_FILTER_BY_FORMULA', 'message': 'The formula for filtering records is invalid: unknown field names: id'}]
Hello everybody, I created a multiple select field and integrated it with my website. It works fine if you check an option. I want users to also be able to not check anything from the field. However if nothing is checked from this multiple select field, then I cannot submit the form. I get invalid value for column. How can I succeed this? Thanks in advance!
Anyone able to do an experiment with me? I’m seeing different behavior in different bases for how mentions come through via the api. This is in reference to a Long Text field that uses the @ feature to notify someone within a note. I’m seeing both a markup based approach: [$!<id>|<User Name>!$] as well as a tag based approached: <airtable:mention id=\\"<id>\\">@<User Name></airtable:mention> anyone seeing both of these? or just the latter? My guess is at some point they changed this and now any new ones use the airtable:mention approach, but any old notes in their database created before a certain date have the old markdown format so when querying for those it still comes in with that format. If anyone else had issues with this I’d be curious to hear.
Hi I am attempting to use the Node.js Airtable API to post data from an HTML5 form to Airtable. Has anyone developed a way to do this securely (without exposing the API key)? Tips for getting this done? Goal is to find a workaround for the missing features and lack of customization for Airtable forms. Thanks!
Does AirTable support triggers such as OnEdit or OnUpdate?
In the Kanban view, when you click on the card you can select which fields can be either “viewed” or “hidden”. Is there a way to do this through the API rather than manually? In addition, is there a way to to arrange what is viewed/hidden per each specific card? Thank you.
Hello, I implemented an angular app, which accesses Airtable API and does CRUD operations on the base. Per logged in user it makes 10 API requests to read data and 10 to write data to base. So around 20 API requests per logged in user. we are planning to deploy it enterprise wide. where more than 200 people will be accessing this application at any given point in time and these requests will be executed simultaneously. Can I get any suggestions on, How the applications will behave ? Will there be any performance issues ? Will Airtable API be able to handle this load ? Any advice and suggestions will be greatly appreciated Thanks!
The two fields I need from my base are ‘date’ and ‘venue’ and in the base they are in order by date, that’s how I entered them. When I i retrieve that data via the API, they are out of order, and not in a way that makes sense. When I try to use the Airtable API Encoder to set the sort order, I get a 422 error. Any ideas how to fix this? Something simple that I’m missing? Thanks!
Hey all I’ve developed a Gantt view web app which is driven by an Airtable table in the back-end. Ideally I’d like to share the color scheme between the Gantt view and the Airtable interface. Is there a way to get the colors used from Airtable? e.g. for a Single select field Then I could make my Gantt table blocks colored to match my Airtable rows Thank you Elliot
Hi guys, I’d never seen this one before. I’m sending a deletion request looking like: https://api.airtable.com/v0/appXXXX/MyData/recYYYY Now if the record does not exist I always get a 404 with: {“error”:{“type”:“MODEL_ID_NOT_FOUND”,“message”:“Record not found”}} In one particular situation I get: {“error”:{“type”:“MODEL_ID_NOT_FOUND”,“message”:“Could not find application by id recYYYY”}} If somebody could explain why this happens or what this means that would be awesome!
I have CarTable with a linked field to EngineTypeTable and another linked field to ManufacturerTable. I have the record_id from a record in EngineTypeTable and a second record_id from a record in ManufacturerTable. I want to create an API call on CarTable that returns all the CarTable records with linked field columns that respectively match the record_ids that I have. How can I do this? Is it possible with filterByFormula?
Hello everybody, I am trying to use Airtable as backend for a submit form in my project. However, I cannot seem to integrate it and I don’t know the problem. I am using npm Airtable.js and axios. I am very new to both JS and Airtable. Below is my error code: Error in the browser after submiting the form: Airtable error: {“error”:{“type”:“INVALID_REQUEST_MISSING_FIELDS”,“message”:“Could not find field “fields” in the request body”}} Could somebody please what I am doing wrong? Thanks a lot in advance! Below is my code: var form = document.querySelector("#bize-ulasin"); if(form) { form.addEventListener("submit", function(event) { event.preventDefault(); axios.post(airtable_write_endpoint, { "Content-Type": "application/json" } , { "fields": { "AdSoyad": document.getElementById("#Ad-Soyad"), "Email": document.getElementById("#Email"), "Telefon": document.getElementById("#Telefon"), "Konu": document.getEleme
Value for the field in the record = ‘Company Name, LLC’. The querystring contains: &filterByFormula={Customer}=‘Company Name, LLC’ That string is run through urlencode() and looks like this… &filterByFormula={Customer}=%27Company%20Name%2C%20LLC%27 No matter what I try, it is failing for every customer that contains a comma. Not sure if there is a way to escape the comma, or if this is an Airtable API bug.
Hello. I’m using java and the official com.sybit.airtable.* library. I noticed something curious: I use a certain file (e.g. test1.zip) as attchment via an url, and I set the FileName to “test1.zip” No problem here. The attachment is added to the field, with as name “test1.zip” However, if I use the same file test1.zip (via url) to another record (same field), and name it “test2.zip”, it is added/shown as filename “test1.zip” and not “test2.zip” !!! It looks like internally, there is some kind of CRC value of the file connected to the initial FileName, and as soon this file is used again, it uses the initial FileName value, no matter what u use afterwards. Can somebody explain this?
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.