JMESPath is a formally specified query language for JSON that lets you declaratively extract and transform elements from a document. It is widely embedded in tools and SDKs, including AWS command-line and client libraries.
JMESPath
JMESPath is a formally specified query language for JSON. It gives you a compact, declarative expression syntax for reaching into a document, selecting the elements you want, and reshaping them into a new structure — all without writing procedural code to walk the tree. Because it has a real grammar and a compliance test suite, implementations behave consistently across languages.
- A declarative expression syntax - Dot and bracket navigation, wildcards, slices, filters, and multiselects pull data out of nested JSON.
- Projections and functions - Built-in functions and list/hash projections transform results, not just extract them.
- A portable specification - One grammar plus a shared compliance suite keeps Python, Go, JavaScript, and other runtimes in agreement.
- Ubiquitous tooling - It is the
--queryengine in the AWS CLI and is embedded across many SDKs and automation tools.
In API operations, JMESPath shows up wherever a JSON response needs to be filtered or reshaped on the client side. It is the query language behind the AWS CLI’s --query flag, and it turns up in policy engines, automation pipelines, and agent tooling that needs to pluck a few fields out of a large payload deterministically. It sits alongside sibling approaches like JSONPath and JSON Pointer in the broader JSON query and reference toolkit — JMESPath’s advantage being a rigorous specification and transformation functions rather than pure addressing.
Referenced on the API Evangelist blog
Where this standard shows up across sixteen years of my writing at apievangelist.com — how it fits into API design, governance, and the agentic turn.