Omnikit
DevFilesMoneyAll tools
Ctrl K
Dev toolsFile toolsMoney calculatorsAll tools
HomeDeveloper toolsJMESPath Tester

JMESPath Tester

dev

Run JMESPath queries on pasted JSON, as the AWS and Azure CLI --query does

Runs in your browser. Nothing you type is sent anywhere. Checked against sources on 17 Oct 2026.

JMESPath is the JSON query language behind the AWS CLI and Azure CLI --query option. Paste JSON, type an expression and the result appears as you type. The interpreter passes all 892 cases of the official JMESPath compliance suite, so a query that works here works the same in the CLI.

Next:
  • JSONPath Tester Run RFC 9535 JSONPath queries on pasted JSON and see every match highlighted
  • JSON Formatter & Validator Format, validate, minify and sort JSON with exact error positions

How to test a JMESPath expression

1

Paste JSON into the JSON box, or press Try an example.

2

Type an expression such as orders[?total > `1000`].id, or tap one of the ready-made queries.

3

The result appears as you type; a mistake is shown with its position and the kind of error.

4

Press Copy to take the result as JSON.

About JMESPath Tester

JMESPath selects and reshapes JSON with one short expression. The AWS CLI, the Azure CLI, Ansible's json_query filter and many SDKs use it, so the same skill pays off in several places. Getting an expression right by rerunning a slow cloud command is painful; here you paste the saved output once and try as many expressions as you like.

What the language does.

Form Example Result
Field and index orders[0].id The first order's ID
Projection orders[*].id Every order's ID
Filter orders[?status == 'shipped'] Only the shipped orders
Flatten orders[].items[].sku Every SKU in one list
Multi-select orders[*].{id: id, total: total} New objects with chosen keys
Pipe and function sort_by(orders, &total)[-1].id The ID of the largest order

All 26 built-in functions are there: length, sort, sort_by, max_by, min_by, join, contains, starts_with, keys, values, merge, map, to_number, to_string, type and the rest, with the type checks the specification requires.

Errors you can act on. A syntax mistake is reported with the character where the parser stopped. A wrong argument says which function and which argument, such as "length(): argument 1 must be string or array or object, not number." A query that matches nothing returns null, as the CLI prints it.

JMESPath or JSONPath? The two look alike but differ: JMESPath filters use [?a == 'x'] with backticks for JSON literals and can build new objects, while JSONPath starts with $. For JSONPath, use the JSONPath Tester.

How it was checked. The interpreter runs the 892 test cases published by the JMESPath project, the suite every implementation is held to, and gives the exact result or error kind for each one. Everything runs in your browser; the JSON you paste is not sent anywhere.

Frequently asked questions

What is JMESPath used for?

JMESPath queries JSON: it picks fields, filters arrays and builds new objects in one expression. The AWS CLI and Azure CLI use it for their --query option, Ansible uses it in the json_query filter, and SDKs in Python, JavaScript, Go and Java ship it for searching API responses.

How do I filter an array by a value in JMESPath?

Use a filter projection: orders[?status == 'shipped'] keeps the orders whose status is shipped. Strings go in single quotes, numbers in backticks, as in orders[?total > `1000`]. Add .id after the closing bracket to keep only one field of each match.

Why does my JMESPath query return null?

A field name that does not exist, a wrong letter case or applying [0] to an object gives null rather than an error. Check each step by deleting the end of the expression until a result appears; the first step that returns null is where the path stops matching the data.

What is the difference between [*] and [] in JMESPath?

Both project over an array, but [] also flattens one level of nested arrays. Reservations[*].Instances[*].InstanceId gives a list of lists, while Reservations[].Instances[].InstanceId gives one flat list, which is usually what an AWS CLI query needs.

Are the results the same as in the AWS CLI?

Yes for the query itself. The AWS CLI evaluates --query with the Python JMESPath library, and this tester passes the same 892 compliance tests that library passes. Paste output saved with --output json so the data matches what the CLI filters.

Is my JSON uploaded anywhere?

No. Parsing the JSON and running the expression both happen in your browser tab, and nothing you paste is sent to a server or stored. You can paste output that contains account IDs or resource names, and you can use the page offline once it has loaded.

Sources

  • JMESPath SpecificationGrammar, projections, filters, slices, pipes and the 26 built-in functions with their types
  • JMESPath compliance tests (jmespath.test)The 892 published test cases, commit 53abcc37, used as the reference
  • AWS CLI User Guide, Filtering output with --queryThe AWS CLI --query option takes a JMESPath expression
  • Microsoft Learn, How to query Azure CLI command outputThe Azure CLI --query option takes a JMESPath expression

Last verified 17 October 2026.

Rates and rules change; check the source before you rely on a figure.

Still stuck? Ask about JMESPath Tester and anybody who knows can answer. No account needed.

Common uses

  • AWS CLI --query TesterTry an AWS CLI --query expression on saved JSON output before running the command
  • Azure CLI --query TesterShape an az --query JMESPath expression on pasted JSON, with errors shown as you type

Same job, other tools: Link Preview Checker – Find the missing tag behind a WhatsApp or Slack link with no picture · Readability Checker – Flesch reading ease and grade level, with what to change · User-Agent String Checker – Check what a user-agent string can and cannot tell you before you rely on it · JSONPath Evaluator – Evaluate a JSONPath expression and get the matching values and their paths.

Related tools

All developer tools
Regex TesterTest JavaScript regular expressions with live highlighting and a plain-English explanationDiff CheckerCompare two texts side by side and see every added and removed lineJSON DiffCompare two JSON documents and list every added, removed and changed valueOpen Graph PreviewPaste a page and see the share card for Facebook, LinkedIn, X, WhatsApp and SlackKeyword Density and ReadabilityWord and phrase counts, densities, reading time and a Flesch readability scoreHTTP Status CodesEvery HTTP status code, what it means, when to send it and the RFC it comes fromUser-Agent ParserRead a user-agent string: browser, engine, OS, device type and whether it is a botJSONPath TesterRun RFC 9535 JSONPath queries on pasted JSON and see every match highlighted
Was this tool helpful?
Omnikit

Small jobs, done in your browser. Free, fast and private. Files are never uploaded.

Files

  • Compress Image
  • Image to PDF
  • Merge PDF
  • Compress PDF
  • PDF to Word
  • Word to PDF

Dev

  • JSON Formatter & Validator
  • Base64 Encode & Decode
  • JWT Decoder, Verifier & Encoder
  • Password Generator
  • UUID Generator
  • Unix Timestamp Converter

Money

  • SIP Calculator
  • EMI Calculator
  • GST Calculator
  • FD Calculator
  • PPF Calculator
  • Lumpsum Calculator
GuidesQuestionsAboutHow we checkLaw library (beta)PrivacyTermsDisclosureContactMore: Exam practice (UGC NET Paper 1)Runs in your browser. Nothing is uploaded. © 2026 Omnikit (theomnikit.com)