Need development and API help? Ask your questions here!
Recently active
This category is for developers to share the scripts they’ve built, provide feedback, and connect with each other. https://try.airtable.com/scripting
For discussion around customizing and extending the Airtable platform with our API, scripts, and third-party integrations.
Hey folks, I’m receiving a 403 error during a Patch after having patched 19 times successfully. If I have invalid permissions, as the 403 indicates, then why am I able to do it successfully 19 times with a similar payload before the error is raised? I’ve looked carefully at the patch payload for weird escape characters or data type issues but I don’t see any anomalies. I’ve also tried slowing down the patches with a time.sleep(). I’ve tried reducing the size of the payload to the minimal size. I’m at a loss as to what else to try. hmmm. bugs bugs bugs.
Hey Guys Is there a do a filterByFormula to find an exact match? filterByFormula=(FIND(%221234%22%2C%7BProject+Name%7D)) will find records within the Project Name field containing 1234 or 12345 but I need to return the exact match (1234) not the partial match. Hope that makes sense??
Not sure if I understand the use cases for Blocks but I am trying to create a little mini GUI to pull data from Google and save into Airtable. How do I go about securing my API key? Is it secure to bundle with code that gets released to Airtable?
Hello, I’ve been trying all evening to get this to work, but I’m out of ideas: I’m making the following request to the API, and getting nowhere - The fields are exactly as in the docs but I get the response: Could not parse request body. This can occur if the information entered into a field is not in the correct format. Double-check that you are using the correct format for entering values into a field. The problem is, it works perfectly in Postman, but when I run it in Zapier it falls apart. The JSON payload is as follows, and I’m using “User-Agent = Postman” { "records": [ { "fields": { "Gap Details": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur", "Category ID": "12",
Forgive my ignorance, but is there something in my browser settings that is causing this?
Hi, This one is an API enhancement request. I know that the Cursor allows me to get the record ids of selected records. But it doesn’t provide the ids of expanded records, which I recommend should be treated as “selected” as well, especially taking into account you can move to previous and next records from within the expanded record UI, by using the arrows above the record primary field. I tried to work around that by trying and track changes to the top window location (i.e. the browser url), since it includes the record id of the expanded record: https://airtable.com/activeTableId/activeViewId/expandedRecordId?blocks=blockId Problem is that in dev mode (haven’t checked it in a release yet), I cannot access window.top.location - I get a cross origin error: Uncaught DOMException: Blocked a frame with origin "https://devblock--....airtableblocks.com" from accessing a cross-origin frame. Straight forward solution would be to get expanded record IDs as well via the Cursor. Thanks, Ronen
Hi there, Tried different ways, without luck as of yet. It’s lacking documentation and I also couldn’t find an example in any of the block examples. Thanks, Ronen
Hello everybody, I’m trying to use Airtable API for the first time with my arduino Yun and I encontered a problem with creating record. When I use my program, I get the following error : "error":{“type”:“INVALID_REQUEST_MISSING_FIELDS”,“message”:“Could not find field “fields” in the request body”}}.` I think it’s just a formatting problem but I can’t find where and I did find anything helpful on the internet (which make me think my problem is very idiot :blush: ) What can I do ? Thanks in advance !
Hello, Is there a way to query the API for recently updated records? Trying to understand the best way to scan for records that need to be updated in a separate database. Thanks!
I can only request 15 new record creations with a single API call. // create a People-Holiday::Christmas record for each person in the People table people.map(person => { peopleHolidaysTable.createRecordAsync({ 'Person' : [{id: `${person.id}`}], 'Holiday' : [{id: 'reclZYRpInJiev0ce'}] }); }); I have 33 people in my array. I’m not terribly proficient with async programming in JS yet. What is the proper way to chunk this into 3 API calls of 15/15/3? I suspect I need to split it up into arrays of 15 and then have each call await the one previous with a timeout of 1000ms. Anyone able to provide some guidance on how to do that?
Airtable is really a build your own database app on the web with an iPhone and iPad companion app as well. This means, if I’m writing on my laptop, I don’t have to go find my phone to start a session and if I forget to end it, it’s easy to fix. Now, I just put in the ending word count and it does the rest. After a lot of fooling around with Excel, Excel Online and Google Sheets, I prefer it to a spreadsheet because I can better control the data entry flow and when I pick a date/time field it just defaults to the current time. This makes it perfect to really get a customized app for exactly what I want. One downside, I can generate most of the same stats as Wordly, but some of them don’t show on the iOS apps. So I thought I’d throw them into Power BI and build my stats there. Airtable has pretty well documented API. Get best Power BI training online. Power BI connects to API’s, what could go wrong? Well, apparently I know nothing about connecting JSON to Power BI. Now that I’ve learned
Hello, I have created a custom form outside of Airtable that utilizes the Airtable API. I have everything working perfect on a single page submission form. This is used by data entry employees to enter mail in submissions quickly. I would like to have a message appear when they click the create button that states the record was successfully created in Airtable, but I cannot find anything like this in the docs or in my Google searching. Anyone have any idea on how to receive a confirmation from the API that a new record was indeed created? Thanks, Brett
Hey Guys, How can I access Airtable’s pagination by including a given offset in either the url or query? My attempt below at including in the url has failed with the error “KeyError: ‘offset’”. I’ve been able to access the 1st offset per the function at_page(). For simplicity’s sake, I took the result from the function and hardcoded it to the variable offset_01. Thank you! import requests import pandas as pd offset_01 = 'itrCG3VDp2c34x1j1/recKTJGYMICe13iA8' url = 'https://api.airtable.com/v0/PRIVATETABLEKEY/accounts' + \ '&offset=' + offset_01 headers = {'Authorization': 'Bearer PRIVATEAPIKEY'} # Calling API response = requests.get( url, headers=headers, ) json_response = response.json() # Finding AT page offset def at_page(at_json): df_initial = pd.DataFrame(at_json) at_offset = df_initial['offset'][0] return at_offset offset = at_page(json_response) PS also have an open stackoverflow: stackoverflow.com Accessing Airtable'
Hello I’m trying to automatically create a new record in “Table 2” whenever another record is created in “Table 1”. Both “Table 1” and “Table 2” are in the same base. I’m using Zapier for this: -Trigger: New Record in Airtable -Result: Create Record in Airtable I’ve tried various options for this, but always get the same error message - see the below text. My suspicion is that this is due to some formatting point - where Zapier is trying to pass Airtable some field value which Airtable believes to be inconsistent with the table’s rules. I can’t see any obvious error in my set up however…one thing to note is the “Task ID” field which I’m feeding is a “Linked Field”…not sure if this could be an issue? The output of this zap is currently nothing ie it’s not having any impact or triggering anything in my base Thanks in advance We had trouble sending your test through. The app returned “Unknown field name: “fld9uHctoXMIDGpAq””. This can occur if the information entered into a field is not
Hi, this may be a basic question, but could some of the more experienced users here please recommend an easy way to build a website that allows users to query data from an airtable database? I have found a Wordpress plugin but would appreciate advice on whether Wordpress is the best way for a beginner to start trying to build something reasonable. Many thanks, Simon
I’m using Integromat to parse a CSV file, check for updates and delete entries that don’t exist anymore. I need to run this every hour so it takes alot of Integromat operations to complete. It would be easier if I just deleted all the records and created them every hour. Does anyone have a curl command or some script that can run to delete all records from one API call? I saw mention of “batching” but I don’t see that in the API.
My JS needs some help :frowning: I’m trying to create a new record in one table for each of the records I pulled out of a view in another table. I’ve tried using people.map(person => {}), people.forEach(person => {}), and for (const person of people) {}, but I get the same error in all 3 cases: Error: <root> must be an array at Mutations._assertMutationIsValid (https://localhost:9000/__runFrame/bundle.js:4139:53) at _callee$ (https://localhost:9000/__runFrame/bundle.js:3852:21) at tryCatch (https://localhost:9000/__runFrame/bundle.js:75258:40) at Generator.invoke [as _invoke] (https://localhost:9000/__runFrame/bundle.js:75484:22) at Generator.prototype.<computed> [as next] (https://localhost:9000/__runFrame/bundle.js:75310:21) at tryCatch (https://localhost:9000/__runFrame/bundle.js:75258:40) at invoke (https://localhost:9000/__runFrame/bundle.js:75348:20) at https://localhost:9000/__runFrame/bundle.js:75383:11 at new Promise (<
Hi Everyone! :wave: I am trying to use Airtable for my VueJS app’s database. I have it set to retrieve data using Axios. Everything renders find for the client, but I am wanting to have my site index on Google. I tested it using Google’s Mobile Friendly Test (search(dot)google(dot)com/test/mobile-friendly to see how the content and meta tags would render, but I receive an error message. This is for Googlebot. Expected Result See my site’s rendered HTML and show the content that shows when a normal user visits. Actual Result Error: X page resources couldn’t be loaded Resource: https://api.airtable.com/v0/mybaseandviewandstuff Type: XHR Status: Googlebot blocked by robots.txt It links me here (api(dot)airtable(dot)com/robots.txt) where i can see: User-agent: * Disallow: / What I’ve Tried I’ve tried: Updating my apps robots.txt to add the below: # Group 1 User-agent: Googlebot Disallow: /nogooglebot/ # Group 2 User-agent: Airtable Allow: / # Group 3 User-agent: * Allow: / I
If I have a field customized to this type: 1. Date 2. Time component 3. 12 hr and I use the key/value pair in my JSON/POST, what do I send there to get this to work? I have this working if I send a string in the correct format, but as soon as I include "typecast": true" it fails. I am including "typecast":true to get fkey lookups to work. I have a field in a Postgres database defined as: inserted_date TIMESTAMP NOT NULL default now() and then I am pulling it out like this (string), to send to Airtable using the REST API (POST): (select to_char(table_name.inserted_date, 'MM/DD/YYYY HH12:MI am')) "Inserted Date", and it works, but as soon as I include: "typecast":true, it fails. If I pull out not using select to_char(... , and just use: <table_name>.inserted_date it fails also. It appears I need to send a native date format, time component, but what would that be? Having a field defined as Date, 12 hr time component, and also when using typecast, these Strings (in the JSON)
Thank you for participating in the custom blocks beta! To celebrate the holidays and ring in the next decade, the latest version of custom blocks has all kinds of presents :gift: Upgrade to the latest version and get all the goodies below. Just open up your terminal and run: cd <your-block-folder> npm install @airtable/blocks npm install -g @airtable/blocks-cli Be sure to check the changelog for any minor breaking changes. Now on to the fun stuff! New examples and documentation :memo: Our documentation has a shiny new home at Airtable Blocks SDK. No more clicking back and forth through markdown files trying to figure out the interface for a LinkedRecordsQueryResult . The new docs site has native search with autocomplete, an improved hierarchy view for the SDK, and beautiful formatting. We also added a new table structure example block that reads and displays the metadata for the user’s current table. Check it out if you’re looking for inspiration, along with all our exist
Buen dia, estoy dispuesto a pagar por quien me ayude a crear un formulario en curl para enviar datos a Airtable desde una pagina en servidor
For the last couple of weeks, I’ve been getting new 404 errors on API calls that used to work perfectly every time. The API calls run every 5 minutes or so, and 90% of the time it works great, but now 10% of the time I’m getting back an error that says the table cannot be found. This is crazy as the table remains and in just a few seconds/minutes when the next webhook runs it will find the table and run correctly. These 404s are causing significant problems, especially when I’m testing for a record and I get back a 404 my script thinks the record does not exist… but that’s not true. In my oponion this should be more of a 500 level server error. Here’s the calls I’m making and the errors I’m receiving: (yes these are from Zapier, and yes I had to spoof the user-agent to make it work) I’m calling https://api.airtable.com/v0/appU29NNGxB8qigRN/Main%20Table I get a 404, “We made a request to api.airtable.com and received (404) Not Found.” Specifically saying: “Could not find table Main Tab
Hello everyone, I have a very simple JSON POST to the Airtable API but am unable to Post an object into the Fields. { “fields”: { “Time”: “{time}”, “DeviceID”: “{device}”, “Payload”: “{data}”, “computedLocation”:{computedLocation} } } In my Airtable, “Time”, “DeviceID”, “Payload” are all fields, yet {computedLocation} is an object which has the following variables: “lat”, “lng”, “radius”, “source” and "status. My question is how do I parse an object into specific fields in Airtable? Something like “Lat”:"{computedLocation.lat}" isn’t working.
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.