How to set up Response JMESPath
- On the request screen, click the Advanced Settings button to expand additional options.
- Scroll down to the Response JMESPath field and enter your expression.
- Run your request again to see the transformed data, then reconfigure your response field mappings to match the new JSON structure.
You can copy the response JSON and test your JMESPath expressions on the official JMESPath website before adding them to Data Fetcher.
Common use cases and examples
The examples below show how JMESPath can solve common data transformation challenges. In each case, the result is JSON that Data Fetcher can easily map to Airtable fields.Keep only specific fields
Problem: Your API returns too much data, and you only need a few fields. Sample JSON:coins[].{id:id, name:name}
Result: Only the id and name fields are kept, reducing clutter in your Airtable base.
new_name:old_name syntax inside curly braces to rename fields.
Filter data by conditions
Problem: You only want records that meet specific criteria. Use conditions with a question mark? followed by operators to filter your data:
| Operator | Example JMESPath | Example in words |
|---|---|---|
== | countries[?code == 'GB'] | Keep objects where code equals GB |
> | coins[?price > 100] | Keep objects where price is greater than 100 |
>= | coins[?price >= 100] | Keep objects where price is greater than or equal to 100 |
< | coins[?price < 100] | Keep objects where price is less than 100 |
<= | coins[?price <= 100] | Keep objects where price is less than or equal to 100 |
&& | coins[?price > 100 && price < 1000] | Keep objects where price is between 100 and 1000 |
coins[?current_price > 100]
Work with nested data
Problem: The data you need is buried inside nested objects or arrays. Sample JSON with nested structure:coins[].{id:id, price:stats.current_price}
Result: The nested current_price becomes a top-level price field.
stats.current_price) to access nested object properties.
Choose the right array
Problem: Your JSON has multiple arrays, but Data Fetcher is using the wrong one. Sample JSON:exchanges[] to tell Data Fetcher to create records from the exchanges array instead of the coins array.
Result: The exchanges array is kept and becomes a top-level array.
JMESPath syntax quick reference
- Arrays: Access with
array_name[] - Objects: Access with
object_name.field_name - Conditions: Use
[?condition]to filter arrays - Field selection: Use
{new_name:old_name}to pick and rename fields - Combine techniques: Chain operations like
coins[?price > \10].{id:id, price:current_price}