jq filter for JSON

Client

Paste JSON and a jq filter expression—same language as the jq CLI. Output is pretty-printed when it is JSON; use this for pipelines, logs, and API shaping in the browser.

Learn more: jq vs JSONPath

Run jq filters on JSON in your browser—the same expression language as the jq CLI (including pipes and many built-ins). The runtime is lazy-loaded WebAssembly; your input stays local.

Not the same as JSONPath or JMESPath

jq uses its own grammar. If you need JSONPath or JMESPath specifically, use the JSONPath & JMESPath tool in this hub. If you need jq for scripts or pipelines, use this page to match the CLI.

Limits

Very large documents may be slow in the browser. External jq modules and network fetches are not available—only standard jq features bundled in the build.

Common use cases

  • Match shell or CI jq one-liners before pasting them into scripts.
  • Shape API responses with pipes—map, select, group_by—without JSONPath or JMESPath.
  • Preview transformations on sample payloads while writing data pipelines.

Common mistakes to avoid

  • Treating jq like JSONPath or JMESPath

    jq has its own grammar. Expressions from other query languages usually need rewriting—use the JSONPath & JMESPath page when you need those dialects.

  • Expecting full jq CLI environment features

    This page runs jq in the browser. File reads, HTTP, and custom modules are not available—only the bundled jq runtime.

FAQ

Is my JSON sent to a server?

No. The jq engine loads in your browser (WebAssembly) and runs locally.

Why is the first run slower?

The jq WebAssembly bundle downloads on first use, then stays cached for the session.

Related utilities you can open in another tab—mostly client-side.