JMESPath Free API:
Transform JSON Data Instantly
The JMESPath free API gives you a ready-to-use, serverless endpoint for running JSON transformations with the JMESPath query language. It’s public, and perfect for prototyping and testing low-volume automations.
Instead of spinning up infrastructure, you can run JMESPath requests in seconds. Below you’ll find the endpoint, sample code, error format, and ideas for integrating it with your tooling.
https://noteapiconnector-tools.vercel.app/api/jmespath
Quick Start
curl -X POST https://noteapiconnector-tools.vercel.app/api/jmespath \
-H "content-type: application/json" \
-d '{
"data": {
"people": [
{ "name": "Ana", "age": 30 },
{ "name": "Bob", "age": 20 }
]
},
"query": "people[?age>`25`].name"
}'
["Ana"]
API Reference
URL
https://noteapiconnector-tools.vercel.app/api/jmespath
Method
POST
Headers
content-type: application/json
Request Body
data
JSON object or array to transform
query
JMESPath expression string
CORS enabled: Call directly from browsers, low-code tools, and automation platforms. No authentication required for testing.
Common Use Cases
Filter Data
Extract only the records that meet your criteria before syncing to Notion databases.
Reshape Objects
Transform nested API responses into flat structures perfect for spreadsheets.
Sort & Rank
Order results by any field and grab top performers for dashboards and reports.
Examples
Need inspiration? Copy any of the curl
commands below, hit the JMESPath free API, and tweak the
JSON to match your own workflow. For more examples, check our
documentation.
Filter Unfinished Tasks
Returns only tasks where completed
is false.
curl -X POST https://noteapiconnector-tools.vercel.app/api/jmespath \
-H "content-type: application/json" \
-d '{
"data": {
"tasks": [
{ "title": "Draft docs", "completed": false, "priority": 2 },
{ "title": "Send invoice", "completed": true, "priority": 1 },
{ "title": "Plan launch", "completed": false, "priority": 3 }
]
},
"query": "tasks[?completed==`false`].title"
}'
RESPONSE
["Draft docs", "Plan launch"]
Project Nested Contact Fields
Grabs each customer's name and email from a nested payload.
curl -X POST https://noteapiconnector-tools.vercel.app/api/jmespath \
-H "content-type: application/json" \
-d '{
"data": {
"customers": [
{
"name": "Asha Patel",
"contact": { "email": "[email protected]", "city": "Austin" }
},
{
"name": "Lee Wong",
"contact": { "email": "[email protected]", "city": "Seattle" }
}
]
},
"query": "customers[].{name: name, email: contact.email}"
}'
RESPONSE
[
{
"name": "Asha Patel",
"email": "[email protected]"
},
{
"name": "Lee Wong",
"email": "[email protected]"
}
]
Sort and Choose Top Results
Orders products by rating and returns the top two names.
curl -X POST https://noteapiconnector-tools.vercel.app/api/jmespath \
-H "content-type: application/json" \
-d '{
"data": {
"products": [
{ "name": "Starter", "rating": 4.2 },
{ "name": "Pro", "rating": 4.8 },
{ "name": "Enterprise", "rating": 4.6 }
]
},
"query": "reverse(sort_by(products, &rating))[:2].name"
}'
RESPONSE
["Pro", "Enterprise"]
Error Handling
Invalid Query Response (400)
Malformed expressions return descriptive error messages:
{
"error": "RuntimeError: Invalid token: Parse error at column 11..."
}
Frequently Asked Questions
data
— the object or array to transformquery
— your JMESPath expression
sort_by
, reversing, slicing, and reshaping nested
payloads into flat objects. See the Examples section for copy-ready cURL commands.
400
with a descriptive error
message so
you can fix the query.