Find repeated keys
Return every matching property path instead of stopping at the first occurrence.
Start typing to search 227 tools.
Find JSONPath-style locations for matching keys or values inside deeply nested JSON without manually tracing the structure.
JSON Path Finder locates keys or scalar values inside nested JSON and returns their paths. It is useful when an API response is too large to trace manually or when the same property name appears at several nesting levels.
Key mode searches object property names. Value mode searches string representations of scalar values, including strings, numbers and booleans. Matching is case-insensitive and partial, so a search for user can find both user and user_id. The output uses paths such as $.account.profile.email and $.orders[0].id.
Focused controls, predictable output, and a workflow designed around this exact transformation.
Return every matching property path instead of stopping at the first occurrence.
Object names and array indexes remain visible in each path.
Value mode finds scalar values without treating nested arrays or objects as text.
The result is a compact list that can be checked against the original JSON.
Practical details about input, output, privacy, limits, and the best way to use this tool.
Find JSONPath-style locations for matching keys or values in nested JSON without manually tracing objects and arrays.
No. The source remains available while the tool produces a separate result for review.
Yes, but remove secrets and confidential values first. Use representative samples and verify the output before production use.
Matching is case-insensitive and partial. Searching for id can match keys such as id, user_id and orderId.
No. It compares scalar values such as strings, numbers and booleans, then returns the path of each match.
Yes. It can reduce repetitive manual inspection and make transformations easier to compare against the original source.
Avoid pasting passwords, private keys, tokens, personal records, or confidential production data into any environment you do not fully trust.
Reduce it to the smallest failing example, correct the syntax or options, and add complexity back gradually.
Learn JSON objects, arrays, value types, validation, formatting, parsing, API workflows, and common syntax errors.
Every matching property path is returned, including keys inside arrays.
JSON: {"account":{"email":"ada@example.com"},"orders":[{"customer":{"email":"lin@example.com"}}]}
Query: email
Mode: Key name
$.account.email $.orders[0].customer.email
Value mode returns the location of the matching scalar rather than the parent object.
JSON: {"orders":[{"id":101,"status":"paid"},{"id":102,"status":"pending"}]}
Query: pending
Mode: Value contains
$.orders[1].status
Key matching is partial and case-insensitive.
JSON: {"user_id":7,"orderId":19,"profile":{"IDCard":"A-42"}}
Query: id
Mode: Key name
$.user_id $.orderId $.profile.IDCard
Key mode checks every object property name and returns all partial, case-insensitive matches. Value mode checks scalar leaf values such as strings, numbers, booleans, and null-like string representations. Nested objects and arrays are traversed, but their complete serialized contents are not searched as one block.
Choose the mode based on the question. Search keys to locate fields named email. Search values to locate records whose status contains pending.
Object properties are appended with a dot and array elements use zero-based indexes in brackets. The first order ID may appear as $.orders[0].id. These are readable JSONPath-style locations for navigation, not a full evaluator for RFC 9535 filters, wildcards, or slices.
Input: {"account":{"email":"ada@example.com"},"orders":[{"customer":{"email":"lin@example.com"}}]}
Query: email
Mode: Key name
Output:
$.account.email
$.orders[0].customer.email
Input: {"orders":[{"id":101,"status":"paid"},{"id":102,"status":"pending"}]}
Query: pending
Mode: Value contains
Output: $.orders[1].status
Input: {"user_id":7,"orderId":19,"profile":{"IDCard":"A-42"}}
Query: id
Mode: Key name
Output:
$.user_id
$.orderId
$.profile.IDCard
Input: {"users":[{"active":true},{"active":false}],"ready":true}
Query: true
Mode: Value contains
Output:
$.users[0].active
$.ready
The source must be valid JSON. Double quotes are required around property names and string values, comments are unsupported, and trailing commas are invalid. Use JSON Validator before searching when parsing fails.
Because matching is partial, a short query such as id can intentionally find id, user_id, and orderId. Make the term more specific when the result is too broad. A returned location does not prove that the field exists in every version of an API response.
Inspect the complete hierarchy with JSON Viewer, check syntax with JSON Validator, or normalize compact input with JSON Formatter. When you already know the exact RFC 6901 location, resolve it with JSON Pointer Tester.