List JSON keys and paths for a data inventory
JSON Key Extractor lists object member names or their full paths. It is useful for documenting a large payload without manually traversing every branch.
When should you use it?
- Inventory fields in an API response.
- Find the exact path to a repeated name.
- Build a list of distinct property names.
Example: list nested key locations
Path mode records both the parent member and its nested member. Unique-name mode would output "user" and "name".
{"user":{"name":"Alex"}}$["user"]
$["user"]["name"]Use full paths when names repeat
A field named id may appear under a customer, an order, and each line item. Distinct key names answer which names exist; full bracket paths answer where they occur. Choose the latter when preparing a mapping or investigating a renamed field. Array indexes identify positions in this particular document, so they do not automatically describe every future record.
Use the inventory as a review aid
A path list can reveal unexpected nesting or a field introduced by an upstream change. It does not describe requiredness or every possible type. Use a schema for those rules and JSONPath when you want the values at selected locations. The extractor rejects documents with more than 10,000 key paths instead of returning a partial inventory. Use a smaller representative branch if that limit is reached.
Find every key without scanning the document.
Choose complete locations for nested object members or a deduplicated list of names. Values stay in your browser.
Paste valid JSON
Arrays and nested objects are traversed in document order.
Choose the output
Show every bracket-notation path or each distinct key name.
Copy or download
Use the plain-text list in documentation or follow-up work.
How do I list every nested key path in a JSON response?
Choose path mode to traverse object members through arrays and nested objects. Each result contains the full bracket location, so repeated names in different records remain distinguishable. Choose unique-name mode when you only need a field inventory.
Two paths for the same property name
text{"users":[{"id":1},{"id":2}]}
$["users"][0]["id"]
$["users"][1]["id"]Unique-name mode lists "users" and "id" once each; it does not show which array item contained the name.
Why are keys inside quotes in a copied path?
Quoted bracket names distinguish a literal dot, bracket, or space in a property name from path syntax. This avoids ambiguity in documents with unusual keys.
What should you check before using the result?
Name mode loses the location of each occurrence. Duplicate names within one object are rejected, and extraction stops after 10,000 key paths.
Paths versus names
A path identifies one object member, including array indexes and quoted names. Unique-name mode removes repeated names and does not preserve location. This is extraction, not a JSONPath query evaluator.
Limits and ambiguity
The tool accepts up to 1 MiB of JSON and stops after 10,000 key paths. Duplicate names in the same object are rejected because their paths would be ambiguous.
Technical reference: JSON syntax and interoperability · RFC 8259