# JSON path inventory

- Human page: https://happytails.ai/en/data-tools/json-path-inventory/
- Markdown: https://happytails.ai/en/data-tools/json-path-inventory.md
- Structured JSON: https://happytails.ai/agents/en/data-tools/json-path-inventory/index.json
- Visibility: public

## Tool capabilities

| Property | Value |
| --- | --- |
| Tool ID | `json-path-inventory` |
| Category | data-tools |
| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |
| Browser execution | Automatic updates after valid input or file selection. |
| Browser processing | Browser; see tool notes for network behavior. |
| HTTP API | Not callable through HTTP. |
| Browser-agent interface | run_current_tool |

### Implementation notes

List exact paths, observed types and present/missing counts. In Array of records mode, pointers are relative to each record. Array positions use explicit indices, not wildcard guesses. Up to 10,000 observed paths. This describes the sample, not every future record. Runs on your device. Up to 1,000,000 input characters, 50,000 values per JSON document and 64 nesting levels. Duplicate JSON keys, unsafe integers, negative zero and decimals that would change on JSON serialization are rejected rather than rounded. Quote precision-sensitive numbers as strings. Output whitespace and object-member order may change. Each JSON Pointer is limited to 20,000 characters.

### Inputs and settings

Text input: JSON input.

Example or placeholder shown in the interface (not a validated fixture):

```text
[{"name":"Ana","score":90},{"name":"Bea","score":null},{"name":"Cam"}]
```

Paste text to process locally. Review the result before downloading. Results update as you type. Up to 1,000,000 characters.

| Setting | Meaning | Control type | Default | Constraints |
| --- | --- | --- | --- | --- |
| `scope` | Inspect | select | "Array of records" | Allowed: Array of records, Whole document |

### Browser-agent workflow

1. Open the human page in a browser that supports WebMCP.
2. Discover the interface exposed by that page; use its actual schema.
3. Select files on the page first when the tool requires files.
4. Call `run_current_tool` with valid input and settings.
5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.

Calls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.

### Planning specification

At most 10,000 sample records or observed paths. Up to 1,000,000 input characters, 50,000 values per JSON document and 64 nesting levels. Duplicate keys, negative zero and numbers that cannot safely retain their decimal value are rejected. Quote precision-sensitive numbers as strings. Formatting and object member order may change. Processing stays on your device. Each JSON Pointer is limited to 20,000 characters. Distinct path text is limited to 1,000,000 characters in total.

This describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.

### Complete machine-readable capability record

```json
{
  "id": "json-path-inventory",
  "category": "data-tools",
  "built": true,
  "requirements": "At most 10,000 sample records or observed paths. Up to 1,000,000 input characters, 50,000 values per JSON document and 64 nesting levels. Duplicate keys, negative zero and numbers that cannot safely retain their decimal value are rejected. Quote precision-sensitive numbers as strings. Formatting and object member order may change. Processing stays on your device. Each JSON Pointer is limited to 20,000 characters. Distinct path text is limited to 1,000,000 characters in total.",
  "implementation": {
    "fields": [
      {
        "key": "scope",
        "label": "Inspect",
        "value": "Array of records",
        "type": "select",
        "values": [
          "Array of records",
          "Whole document"
        ]
      }
    ],
    "live": true,
    "presentation": "metrics",
    "note": "List exact paths, observed types and present/missing counts. In Array of records mode, pointers are relative to each record. Array positions use explicit indices, not wildcard guesses. Up to 10,000 observed paths. This describes the sample, not every future record. Runs on your device. Up to 1,000,000 input characters, 50,000 values per JSON document and 64 nesting levels. Duplicate JSON keys, unsafe integers, negative zero and decimals that would change on JSON serialization are rejected rather than rounded. Quote precision-sensitive numbers as strings. Output whitespace and object-member order may change. Each JSON Pointer is limited to 20,000 characters.",
    "experience": {
      "automatic": true,
      "single": false,
      "inputMaxLength": 1000000,
      "inputMode": "text",
      "label": "JSON input",
      "placeholder": "[{\"name\":\"Ana\",\"score\":90},{\"name\":\"Bea\",\"score\":null},{\"name\":\"Cam\"}]",
      "help": "Paste text to process locally. Review the result before downloading. Results update as you type. Up to 1,000,000 characters.",
      "action": null
    },
    "mode": "automatic",
    "interactive": false
  },
  "execution": "Browser interface",
  "api": null,
  "browser_agent": {
    "supported": true,
    "name": "run_current_tool",
    "discovery": "WebMCP on the human page in a supporting browser",
    "verification": "See audit/API-AUDIT.md; availability is not verification"
  }
}
```

## Page guide

Find the paths and value types in sample JSON. Compare field presence across records and download an inventory.

How can we improve this tool?

Report a problem or share an idea.

Please leave out private information. Your message and the tool name go to our team via PostHog.

### How to use JSON path inventory

1. Paste JSON and select Whole document or Array of records.
2. Review the observed paths, types and presence counts.
3. Download the inventory and report.

## Useful next steps

- [JSON array grouper](https://happytails.ai/en/data-tools/json-array-grouper/) ([Markdown](https://happytails.ai/en/data-tools/json-array-grouper.md))

- [JSON flattener](https://happytails.ai/en/data-tools/json-flattener/) ([Markdown](https://happytails.ai/en/data-tools/json-flattener.md))

- [JSONL validator](https://happytails.ai/en/data-tools/jsonl-validator/) ([Markdown](https://happytails.ai/en/data-tools/jsonl-validator.md))

## Inspect a whole document or a sample of records

Choose Whole document for one object, array or scalar. Choose Array of records to compare paths relative to each item in the root array. The empty path represents the document or sample record itself.

### See observed types and missing fields

Each path lists its observed types, the number of records containing it and the number missing it. Null counts as present with a null type. Nested arrays use exact numeric indices, so /items/0/name and /items/1/name remain separate observations.

### Use the inventory as evidence about your sample

Download the JSON inventory and report to inspect inconsistent types or optional fields. This is not a generated schema or a guarantee about future records. JSON Pointer escaping keeps slashes, tildes and empty object keys unambiguous.
