Need development and API help? Ask your questions here!
Recently active
In the Airtable UI, you can manually rearrange the order of rows in grid views by dragging them up and down. This row order is view-specific. Is it possible to reorder the rows in a grid view like this via the API?
I want to do a filterbyformula search through the api in a date field. My field is an ISO date field in YYYY-MM-DD format. Basically, I want to do a “select” call to the DB, with a filterbyformula, but only looking for a record that equals “today”, just with today’s date, but not time! (Too specific, and would fail!) So I would need to match 2019-06-12, for example, but not the full ISO string. How would I write that filterbyformula code in nodejs? It’s a headscratcher?
I am using webhooks to call data from AirTable using the AirTable API. I am trying to query a number through the webhook, but I can find no way in the API service to do this. Is there a way to call a number through a webhook? Is there a different way to code the webhook that will indicate whether it is looking for numbers or text? When I try to call the number data right now there is an error on that query.
I am subscribed to a Pro plan and am using Airtable to migrate our existing CMS which is just a MySQL table. I need help adding 40000+ records from that mysql table. I am aware of the upper 100 limit for the api. So I wrote a custom node script that inserts 100 records at a time while reading them from my table. I managed to import 200 records in a single shot successfully just an hour ago. But now when I try to add more (say 1000 at once) I start getting these errors: { error: 'SERVICE_UNAVAILABLE', message: 'The service is temporarily unavailable. Please retry shortly.', statusCode: 503 } { Error: connect EADDRNOTAVAIL [35.153.165.44:443](http://35.153.165.44:443/) - Local ([0.0.0.0:0](http://0.0.0.0:0/)) at internalConnect (net.js:884:16) at defaultTriggerAsyncIdScope (internal/async_hooks.js:294:19) at GetAddrInfoReqWrap.emitLookup [as callback] (net.js:1031:9) at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:62:10) errno: 'EADDRNOTAVAIL', code: 'EADDRNOTAVAIL', syscall: 'c
Hi Is there any valid circumstance when the AirTable API can return a “null” status code? I see a record created successfully, but instead of “200” (success), I get “null”. This is making it difficult for my workflow logic to progress without a solid success code. Can I assume “null” also means success, or does this look like an anomaly? Kind thanks in advance.
Hello everone! I’m trying to make POST requests and am stuck with IronPython but I am having some problems creating records. I’m able to create them using the requests module in Python3, but I’m not able to replicate this with WebRequest in IronPython. Here is the code: def post_request(params): '''post data to Airtable''' HEADERS = 'Authorization: Bearer XXXXX' URI = 'https://api.airtable.com/v0/XXXXXXXXXX/Table%20XX' request = WebRequest.Create(URI) request.ContentType = 'application/json' request.Headers.Add(HEADERS) request.Method = 'POST' bytes = Encoding.ASCII.GetBytes(json.dumps(params)) request.ContentLength = bytes.Length with request.GetRequestStream() as reqStream: reqStream.Write(bytes, 0, bytes.Length) response = request.GetResponse() result = StreamReader(response.GetResponseStream()).ReadToEnd() return result The params are formatted as follows: params = { 'fields': { 'Room Type': 'T
Hi folks, I’m trying to find a simple way of updating records with data retrieved from JSON data feed. Ideally, GET requests would be sent daily (or 2x a day) to the feed and records updated accordingly using the AirTable API. Tried using Zapier Webhooks but I can’t get it working :frowning: Any ideas?
Hi, I am trying to link Airtable and PowerBi. For the most part, it works perfectly. But, things are breaking down with the columns that link to another table. In such cases, I am getting recordID instead of Name. Is there a way to show record name instead of record ID? I have attached the Images from both AT and PBI for reference. (I have gone through the solution that suggests creating a new column and using a formula to refer the linked column. For my case, it is not practical as there are around 20 linked columns) Thanks
Hi! Thanks in advance to the community for your help with this! I’m considering using Airtable to create an API for 3rd party app developers to pull information and was wondering the community’s thought on whether this is a good idea or not. I’m not an expert on the Airtable API (or APIs in general) so was hoping to get some perspectives from those of you who are wiser than me. I’m also interested in hiring someone on a consultative basis to help me with this project if they are particularly knowledgable. I’ve read about examples where Airtable is used as an “internal” API, where the front end developers working pulling from the Airtable API work for the same organization as the people maintaining the Airtable database, in which case presumably data security is less of an issue. I’m aware that there is a 5 request / second limitation on the API (although it’s unclear whether this is per API key + IP address combination or per API key + Base ID + IP address combination). I’m also awa
Hi there! I’m getting a bunch of records using the API and I would like to paginate the results - in the end, I’d like to display to the user 10 records on a page, then when they hit ‘Next Page’ I can show them the next 10, and so on, requesting the next 10 from the server each time (as opposed to grabbing all the records myself and paginating them in the client). I see that there is eachPage() and fetchNextPage(), but I may be confused about how they work. I use eachPage to get the records and massage the data I get by looping through the records. However, the done() function doesn’t seem to get called unless I call fetchNextPage() and I want to call fetchNextPage() after a user chooses to get to the next page of results. Any help/advice would be awesome!
I am having an issue updating a record using the API where the update method is treating a variable as a literal value, rather than the value it contains. My code is: var express = require('express'); var bodyParser = require('body-parser'); var app = express(); var Airtable = require('airtable'); var base = new Airtable({apiKey: 'censored'}).base('appYYigSAYG6wvbIL'); app.use(bodyParser.urlencoded({ extended: false })); app.use(bodyParser.json()); app.post('/update',function(req,res){ var exam=req.body.exam; var status=req.body.status; console.log(status); console.log(exam); res.end("yes"); base('Staff').update("recL2tsSb73D8NdVj", { exam : status }, function(err, record) { if (err) { console.error(err); return; } console.log(record.get('Name')); }); }); app.get('/', function (req, res) { res.send('atapi is up'); }) var server = app.listen(8081, function () { var host = server.address().address var port = server.address().port console.
Is it possible to have an API key that only allows writing to a base but not the ability to see the other responses?
When I’m uploading a regenerated PDF (different data) with the exact same file name Airtable is showing me the original file instead. 1 - upload PDF 2 - delete / clear PDF with browser GUI 3 - upload PDF (same filename, other data) 4 - GUI shows original version I suspect AT thinks the cached version (on server) is okay to use. Mailed support.
Hello, im having a table of locations that which record has location name( which is a single text type) and other parameters. im having a columnn in another table which is a Look Up for the location’s name. The records in this column are arrays,even if records contain only single location name. How can i change the type of the lookup column to be only single text and not returning the location name as a list/array?
I am using airtable for my android app I made it on kodular. I use airtable for changing data of some lists etc. When I have 100 users I didn’t get any problem of slow loading by airtable. But since my app reached 100 users airtable sometimes send data too slow or some time don’t give any response (Only Loading screen I can see on my app) or some times it works normal. I want to know is there any type of bandwidth or active users limits in free plan? or is there a problem in airtable server. Please give me reply. Thanks.
Hi, I’m having trouble passing an object from React to Express, and then creating an airtable record in Express. In react, i am sending an http request to Express via: finalSubmit() { const airtableObj = { title: ‘hi’, } fetch(‘api/submit’,{ method: ‘POST’, body: JSON.stringify(airtableObj), headers: {“Content-Type”: “application/json”} }) } In Express, I am doing: app.post(’/api/submit’, jsonParser, async (req, res) => { const newStudy = JSON.stringify(req.body); await console.log(newStudy); table.create(newStudy, function(err, record) { if (err) {console.log(err); res.json(err)} else {console.log(record), res.json(‘Success!’)} }); }) (If I do table.create({“title”:“hi”} instead of table.create(newStudy), everything works fine) However, I keep getting: Class { error: ‘INVALID_REQUEST_UNKNOWN’, message: ‘Invalid request: parameter validation failed. Check your request data.’, statusCode: 422 } Sorry for the newbie question, but is there something wrong with how I am manipulat
I know there is no documented way to get the activity feed information via the API, but I was wondering if anyone has ever managed to easily monitor as records last updated status or created some special field to track it somehow?
I’m trying to retrieve all the records in a table with curl over HTTPS. I checked the table I’m targeting, and it has 283 records. I imagine I’ll need to issue three requests, since each request returns a maximum of 100 records. I piped the results of my first curl command into a new file called output.txt and then tried to find the offset value from within the curl output file. However, when I search through this file, I can’t find an offset value anywhere within the JSON like I expected, based on this line in the documentation: If there are more records, the response will contain an offset. Is there something obvious that I’m missing… I feel like there has to be. If anyone knows how I can get this offset value so that I can use it to request the next page of records (and the one after that), I’d be super grateful. :slightly_smiling_face:
How could I filter via JavaScript API depending on linked table? What is the criteria if there are more than one table linked? I tried "{Column} = '" + record.get('Col') + "' but then I get only the results with just this reference, not the records having addition refs.
I’m using the Airtable api to build a website. I’m returning values from a multiple select field. In this case the field is ‘Activities available’. I can output them on the website no problem, but I can only return them as a string and can’t seem to figure out how to ideally add html around each value, or at least comma seperate them. I have this <p><span className="text-muted">{record.fields['Activities available']}</span></p> returning <span class="text-muted">NightlifeFoodArchitecture</span> in the browser. I’m using Create React App to build this and I’m quite new and limited in Javascript. Any help would be appreciated. Thanks, Ciarán
Does Aritable support API keys for specific workspace or database? I do not want to give away access to my whole account.
Hi Does anyone know if there is a way to filter with a variable in the filterByFormula function through the API? Getting this to work would allow me to fetch information from a specific e-mail, and display records from airtable dependent on that. So, do this: var filterstring = ‘shipment_name’; base(‘Shipments’).select({ filterByFormula: Name=filterstring, }).eachPage(function page(records, fetchNextPage) { Instead of this: base(‘Shipments’).select({ filterByFormula: ‘Name=“shipment_name”’, }).eachPage(function page(records, fetchNextPage) { I’m able to use a string-variable for the find method, but as far as I can tell that only allows me to find on the clunky recordname. var recordname = ‘recDegFvWIgCSAlzg’; base(‘Shipments’).find(recordname, function(err, record) { Apologies in advance if this is a basic question, it’s my first attempt at developing anything with html/js/jquery. Mads
Background. I have Valuations field in my Airtable DB. It’s type is set to “Attachment” and it stores PDFs. I populate it manually. Script. I’ve got a VBA-script with embedded CURL-commands that works as follows: Record values in several fields Delete all rows. Insert new sample enriched with the recorded data in rows with matching IDs, i.e. from step 1. Problem. Despite the fact that I have recorded the JSONs of each attachment in “Valuations” I get #422 Error whenever I launch my CURL to create an updated record containing attachments in “Valuations”. Please, have a look at the JSON below. Any advice will be highly appreciated. “Valuations”:[ { “id”:“attGR7hW7A3jnIczu”, “url”:“URL…pdf”, “filename”:“Valuation-Workbook_3284-3286-Sullivant-Ave-Columbus-OH-43204_2018-12-27-11-11-09 (1).pdf”, “size”:8244890, “type”:“application/pdf”, “thumbnails”:{ “small”:{ “url”:“URL…pdf”, “width”:36, “height”:36}, “large”:{ “url”:“URL…pdf”, “width”:512, “height”:512} } } ]
Need someone with strong expertise of Airtable’s API to consult with on a custom developed integration between Airtable and a vue js database. Currently, we have the tables we want to mimic in Airtable but we don’t know how best to format them (lookup tables, arrays, primary keys etc…) such that they will best integrate with our tool. I’m a product manager for a venture-backed startup in SF and I am willing to pay competitive hourly rates for work on this project.
I use airtable inside the ionic application. The problem is this: When I make a request for a table where there are linked records from another table, I get the address of the linked record, not its value, which looks like, for example, recjxZQmr3rrCpIEl. Until recently, there was no such problem, and the values were returned correctly as string values.
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.