Skip to main content

Hi everyone,

I’m trying to update the list of select options in the column Categories_test in an Airtable table using the API. My request seems to be correctly formatted, but I keep getting an error response from the server. I would appreciate any guidance on what might be wrong.

Here are the details:

PATCH Request:

Endpoint:

 

 

PATCH https://api.airtable.com/v0/meta/bases/{baseId}/tables/{tableId}/fields/{fieldId}

 

 

Request Body:

 

 

{
"type": "multipleSelects",
"options": {
"choices": :
{
"name": "test"
},
{
"name": "blabla"
}
]
}
}

 

 

Headers:

 

 

{
"Authorization": "Bearer rANONYMIZED_API_TOKEN]",
"Content-Type": "application/json"
}

 

 

Server Response:

 

 

{
"error": {
"type": "INVALID_REQUEST_UNKNOWN",
"message": "Invalid request: parameter validation failed. Check your request data."
}
}

 

 

What I’ve Tried:

  1. Verified that baseId, tableId, and fieldId are correct (confirmed via API).
  2. Confirmed that the Categories_test field is of type multipleSelects (checked via API).
  3. Tested the request in both Insomnia and make.com.

 

Has anyone encountered a similar issue? Are there additional requirements when updating multipleSelects fields that I might be missing? Any help would be greatly appreciated!

You can only update the name and description via that endpoint I'm afraid: https://airtable.com/developers/web/api/update-field

To add new options to an existing multiple select field, try creating a new record or editing an existing record and adding those options in with 'typecast' true.  Here's an example of editing a single existing record via a PATCH that'll add those two options in:

{
"fields": {
"Select": [
"test",
"blabla"
]
},
"typecast": true
}

https://airtable.com/developers/web/api/update-record


You can only update the name and description via that endpoint I'm afraid: https://airtable.com/developers/web/api/update-field

To add new options to an existing multiple select field, try creating a new record or editing an existing record and adding those options in with 'typecast' true.  Here's an example of editing a single existing record via a PATCH that'll add those two options in:

{
"fields": {
"Select": [
"test",
"blabla"
]
},
"typecast": true
}

https://airtable.com/developers/web/api/update-record


Thank you for your response, and I appreciate the clarification!

I’m aware that I can use typecast: true to add new options to a multiple select field by editing or creating a record. However, in my case, I specifically need to remove certain options from the multiple select field's list of choices.

If API doesn’t support directly modifying or removing options from a multipleSelects field, is there any other recommended approach to achieve this? For example, is there a way to remove unused or unwanted options via API or another workaround?

Thanks again for your help! 😊


Thank you for your response, and I appreciate the clarification!

I’m aware that I can use typecast: true to add new options to a multiple select field by editing or creating a record. However, in my case, I specifically need to remove certain options from the multiple select field's list of choices.

If API doesn’t support directly modifying or removing options from a multipleSelects field, is there any other recommended approach to achieve this? For example, is there a way to remove unused or unwanted options via API or another workaround?

Thanks again for your help! 😊


Hmm for deleting options I think you'd have to use the scripting extension: https://airtable.com/developers/scripting/api/field#update-options-async


Hmm for deleting options I think you'd have to use the scripting extension: https://airtable.com/developers/scripting/api/field#update-options-async


You’re absolutely correct that the scripting extension can be used with the updateOptionsAsync method to modify or remove options from a multipleSelects field. However, I’m specifically looking for a solution that can be triggered automatically. Unfortunately, the scripting extension requires manual execution, which doesn’t align with my use case.