What it does
The Search Airtable tool queries records in a specific table. It supports three query modes, all with offset-based pagination:- Free-text search — pass a
searchTerm+searchFieldsto match a case-insensitive substring across named fields (the tool builds anOR(SEARCH(...))formula for you) - Formula filter — pass a raw
filterByFormulafor full Airtable formula-language filtering (AND/OR logic, date math, linked-record filtering, etc.) - Plain list — omit filters and just list records, optionally scoped to a
view, with sort/fields/maxRecords applied
Key features
- Three complementary query modes covering quick lookups through complex structured filters
- Case-insensitive free-text search across any set of fields
- Full Airtable formula language support for structured filters
- Sort by one or more fields, ascending or descending
- Scope results to a named view (honors the view’s own filter/sort)
- Return only specific fields to keep responses small
- Offset-based pagination via
nextOffset
Parameters
Common use cases
Free-text find
Structured filter with formula
Scope to a view
Paginate a large table
First call:hasMore is false.
What you get back
records[]— each withid,createdTime, and afieldsobject keyed by field namecount— number of records in this responsehasMore— boolean indicating whether more records are availablenextOffset— opaque cursor to pass asoffseton the next call (nullwhenhasMoreis false)
Best practices
- Prefer table IDs over names when the table might be renamed — names work but break on rename; IDs are stable
- Use
fieldsaggressively — limiting the response to 3–5 fields massively reduces token usage - For AND/OR logic across fields, use
filterByFormula—searchTermonly supports OR across fields with a single substring - For large tables, set a sensible
maxRecords— the default paginates through the entire table which can be thousands of calls - Scope to a view when users have already built a saved filter in Airtable — agents don’t need to recreate the logic
Troubleshooting
“searchFields is required when using searchTerm”- Pass the list of fields to search within:
searchFields: ["Name", "Description"] - Or use
filterByFormulainstead for more complex queries
- Wrap field names in
{}:{Status}='Active', notStatus='Active' - Escape single quotes inside string literals:
\' - Validate the formula in Airtable’s formula field playground before passing it in
- Call airtable_get_schema with the
baseIdto confirm exact table and field names - Field names are case-sensitive
- Views apply their own filter and sort on top of yours — if the view already hides records, your filter can only narrow further
- Drop the
viewparameter to query the full table
Related tools
- Get Airtable Schema — discover
baseId,tableIdOrName, and field names - Manage Airtable Records — create, update, or delete records found via this tool