JSON Editor Pro
Format, validate, compare, and explore JSON — entirely in your browser.
- Code, Tree, Table & Graph views
- Live validation & formatting
- Structural diff & merge
Powerful tools · Simpler workflows
Nivoapps is an independent studio building focused, privacy-respecting software for people who work with data and APIs — a JSON workspace that never uploads your documents, and an API client for fourteen protocols. Both free, both ready in your browser.
The ecosystem
Each Nivoapps product does one job well and lives on its own subdomain. They share the same foundations: free, account-optional, and local-first.
Format, validate, compare, and explore JSON — entirely in your browser.
A local-first API client for REST, GraphQL, WebSocket, gRPC, and 10 more protocols.
Shared foundations
The problem
Debugging JSON usually means pasting an API response, a config file, or a token into whichever website ranks first — and trusting a server you know nothing about with that data. A plain text editor is safer, but it won't tell you where the missing comma is, what changed between two payloads, or what a deeply nested structure actually looks like.
How JSON Editor Pro helps
JSON Editor Pro runs entirely client-side. It validates as you type with an exact line and column, lets you switch the same document between code, tree, table, and graph views, and bundles the diff, merge, conversion, and token tools you'd otherwise hunt down one site at a time.
{ "id": "ord_2048", "status": "shipped", "total": 142.25, "customer": { "name": "Ada Lovelace", "email": "ada@example.com" }, "items": [ { "sku": "KB-01", "qty": 1, "price": 89.5 }, { "sku": "MS-02", "qty": 2, "price": 20 }, { "sku": "CB-07", "qty": 3, "price": 4.25 } ], "coupon": null}
{"id":"ord_2048","status":"shipped","total":142.25,"customer":{"name":"Ada Lovelace","email":"ada@example.com"},"items":[{"sku":"KB-01","qty":1,"price":89.5},{"sku":"MS-02","qty":2,"price":20},{"sku":"CB-07","qty":3,"price":4.25}],"coupon":null}
{ "id": "ord_2048", "status": "shipped" "total": 142.25, "customer": { "name": "Ada Lovelace", "email": "ada@example.com" }, "items": [ { "sku": "KB-01", "qty": 1, "price": 89.5 }, { "sku": "MS-02", "qty": 2, "price": 20 }, { "sku": "CB-07", "qty": 3, "price": 4.25 } ], "coupon": null}
Can't show tree — the document has a syntax error. Fix it in the Code view (or press Break it again) and the tree comes back.
| # | sku | qty | price |
|---|---|---|---|
| 0 | "KB-01" | 1 | 89.5 |
| 1 | "MS-02" | 2 | 20 |
| 2 | "CB-07" | 3 | 4.25 |
Can't show table — the document has a syntax error. Fix it in the Code view (or press Break it again) and the table comes back.
Can't show graph — the document has a syntax error. Fix it in the Code view (or press Break it again) and the graph comes back.
{
"id": "ord_2048",
"status": "shipped",
"total": 142.25,
"customer": {
"name": "Ada Lovelace",
"email": "ada@example.com"
},
"items": [
{
"sku": "KB-01",
"qty": 1,
"price": 89.5
},
{
"sku": "MS-02",
"qty": 2,
"price": 20
},
{
"sku": "CB-07",
"qty": 3,
"price": 4.25
}
],
"coupon": null
}
{"id":"ord_2048","status":"shipped","total":142.25,"customer":{"name":"Ada Lovelace","email":"ada@example.com"},"items":[{"sku":"KB-01","qty":1,"price":89.5},{"sku":"MS-02","qty":2,"price":20},{"sku":"CB-07","qty":3,"price":4.25}],"coupon":null}
{
"id": "ord_2048",
"status": "shipped"
"total": 142.25,
"customer": {
"name": "Ada Lovelace",
"email": "ada@example.com"
},
"items": [
{
"sku": "KB-01",
"qty": 1,
"price": 89.5
},
{
"sku": "MS-02",
"qty": 2,
"price": 20
},
{
"sku": "CB-07",
"qty": 3,
"price": 4.25
}
],
"coupon": null
}
Every view edits the same underlying document, so you can read a payload as a tree, scan an array as a table, then jump back to code without copying anything.
The Monaco editor (the editor behind VS Code) with JSON syntax highlighting, folding, and expand/collapse all.
A collapsible, virtualized tree that stays fast on deeply nested data — with search across keys and values.
Arrays of objects become a spreadsheet-style table, so you can scan rows instead of scrolling braces.
A zoomable node graph of the document's structure, for seeing how objects and arrays nest at a glance.
The plain text, exactly as it will be saved or copied.
Validation runs on every keystroke using the browser's own JSON parser, and points at the exact line and column instead of a character offset.
Parse errors are flagged instantly with the exact line and column.
Re-indent with 2 spaces, 4 spaces, or tabs for readable, reviewable output.
Strip whitespace for compact, transfer-ready payloads, with a size-reduction summary.
Size, depth, key counts, a breakdown by type — and duplicate-key detection, which JSON.parse silently hides.
Two responses that should match but don't? Compare them side by side, get a path-by-path change list, or merge them deliberately.
Two or more documents with added, removed, and modified highlighting and synchronized scrolling.
A git-style change list by path — added, removed, moved, and modified nodes.
A deep, key-by-key merge where the overlay wins conflicts, and arrays either replace or concatenate.
Config in YAML, data in CSV, a feed in XML — convert to JSON and back, or infer a schema from a real sample.
Convert YAML to JSON and back, preserving structure.
With attribute and namespace handling.
With header detection and type inference.
Convert TOML to JSON and back.
Infer a JSON Schema straight from sample data, including union types for mixed arrays.
The utilities that usually live in a dozen bookmarked tabs, running locally next to your JSON.
Decode and inspect JSON Web Tokens entirely client-side.
Generate and sign test tokens with HS256, HS384, or HS512.
Encode and decode Base64 strings and files.
Encode and decode URL components.
Generate v4 or time-ordered v7 UUIDs in bulk.
Test regular expressions with live match highlighting.
Convert between Unix timestamps and human-readable dates.
Look up status codes with explanations and use cases.
Close the tab and come back tomorrow — your documents, tabs, and history are still there, stored locally in your browser.
Open, color, duplicate, and switch between several JSON documents at once.
Auto-snapshots with a diff view, so you can step back through edits.
Drag-and-drop file import; export a single document or a ZIP of every open tab.
Search within a document, or jump to any action from a keyboard-driven palette (⌘K).
Installable as a PWA; a web worker keeps large documents responsive.
Matches your OS by default, with a manual override.
Built for
Debugging an API response, reshaping a payload, or checking what a client actually sent.
Comparing an expected and an actual response to pinpoint the one field that differs.
Cleaning up config, and converting between YAML, TOML, and JSON.
Tokens, customer records, internal configs — inspected without uploading them anywhere.
Keyboard-first
The problem
A modern backend rarely speaks just REST. Testing one often means a REST client, a separate WebSocket tool, an MQTT client, and a database console — four sets of saved requests, four places for environment variables, and an account wall on most of them.
How Voyager helps
Voyager puts every protocol behind one request builder, with shared collections, environments, history, and scripts. It works without signing up and stores your workspace locally; an optional free account adds sync, sharing, and teams.
Headers
{ "id": 42, "name": "Ada Lovelace", "email": "ada@example.com", "role": "admin", "active": true }
Available in: Web · VS Code
Query
query GetUser($id: ID!) {
user(id: $id) { name email }
}{ "data": { "user": { "name": "Ada Lovelace", "email": "ada@example.com" } } }
Available in: Web · VS Code
Connected to wss://realtime.example.com/orders{"type":"subscribe","channel":"orders"}{"type":"ack","channel":"orders"}{"order":1042,"status":"paid"}Available in: Web · VS Code
{"step":"install","status":"done"}event: build · id: 17{"step":"test","status":"passed"}event: build · id: 18{"step":"deploy","status":"running"}event: build · id: 19Available in: Web · VS Code
Subscribed to sensors/# (QoS 1)21.4sensors/lab/temp48sensors/lab/humidity{"fan":"on"}devices/lab/fanAvailable in: Web · VS Code
Message
{ "id": "42" }
{ "name": "Ada Lovelace", "plan": "PLAN_TEAM" }
Available in: VS Code extension
Request / Response
Streaming
IoT
File transfer & email
Raw sockets
Database
One interface for request/response, streaming, IoT, file transfer, email, raw sockets, and SQL.
Methods, params, headers, and bodies — raw JSON/XML/HTML/JavaScript/text with beautify, form data, or URL-encoded.
Bearer token, Basic auth, API key (header or query), and OAuth 2.0 client credentials.
Pretty, raw, and preview modes; headers and parsed cookies in their own tabs, with search; status, time, and size on every response.
WebSocket frames, Socket.IO events, SSE messages, and MQTT topics in a live message log.
Structure that mirrors your API, and variables that follow you between environments.
Mirror your API's resource structure, with multiple workspaces for separate projects.
Switch environments from the top bar and use {{variable}} substitution in URLs, headers, bodies, and protocol settings. Secret values stay hidden from viewers when shared.
Every request you send is logged with method, status, and timing — reopen any entry with its original configuration.
Prepare data before a request, assert on what comes back, and stand up an endpoint before the backend exists.
Plain JavaScript in a sandboxed QuickJS runtime, with pass/fail results and console output beside the response.
Routes with path parameters, status codes, headers, bodies, and delays, plus a live request log — in the VS Code extension.
Export any request as cURL, JavaScript (fetch), Node.js (axios), Python (requests), or Java (HttpClient).
Built for
Building and debugging endpoints across REST, GraphQL, and real-time protocols from one place.
Exploring an API before wiring it up, and generating a ready-to-paste client snippet.
Watching MQTT topics, WebSocket frames, and event streams in a live timeline.
Importing existing Postman or Insomnia collections without paying per seat to collaborate.
Keyboard-first
Find a tool
Pick what you're trying to do and jump straight to the tool that does it — each link opens the exact page in the right product.
Why Nivoapps
Nivoapps is an independent technology brand focused on practical, accessible, thoughtfully designed tools. The goal is simple: make everyday digital workflows simpler, and keep improving each product after launch — not just at release.
Read the story behind NivoappsJSON Editor Pro never uploads your documents. Voyager keeps your workspace on your device unless you choose to sign in. Your data isn't the product.
Open either app and start working. Accounts are optional, and only ever add things like sync and sharing.
No trials, paywalls, or seat limits on either product — every shipped feature is available to everyone.
Each product starts from a specific, repetitive task — debugging a payload, testing an endpoint — and solves it end to end instead of chasing a feature checklist.
Command palettes and shortcuts for the actions you repeat, with light and dark themes that follow your system.
Products evolve through real use. In-app feedback goes straight to the person building them, not into a support queue.
Guides
Practical, in-depth write-ups on JSON, APIs, and auth — each one useful without any Nivoapps product.
A practical field guide to the JSON parse errors developers run into most: trailing commas, single quotes, comments, unescaped characters, NaN, BOMs, and more — with the exact fix for each.
Learn JSON Schema by building one: types, required fields, additionalProperties, enums, arrays, $ref reuse, and the mistakes that make schemas silently accept bad data.
An honest comparison of JSON, YAML, TOML, and XML — syntax, comments, type pitfalls like YAML's 'Norway problem', tooling, and which format fits configuration files versus data exchange.
FAQ
Can't find what you're looking for? Email info@nivoapps.com — it reaches a real person.
Nivoapps is an independent technology brand that builds focused web applications and developer tools. This site is the central directory for everything we've shipped — each product lives on its own subdomain.
Two today: JSON Editor Pro, a browser-based JSON workspace, and Voyager, a local-first API client for REST, GraphQL, and a dozen other protocols. Both are listed on the Products page, and more are planned.
Yes. JSON Editor Pro is completely free, with no account, subscription, or paywall. Voyager has no paid tier, no feature gating, and no seat limits — an optional free account only adds sync, sharing, and teams.
Voyager is an API development platform for building and running requests across fourteen protocols — REST, GraphQL, WebSocket, gRPC, MQTT, and more. It's available as a web app and a VS Code extension, with a desktop app in development.
No. JSON Editor Pro and Voyager's web app both run entirely in your browser. JSON Editor Pro can also be installed as a PWA if you prefer an app-like experience, and Voyager has a VS Code extension — its most complete edition, with all fourteen protocols and local mock servers.
They're independent tools with no shared account or integration, but they complement each other: Voyager is for sending requests and inspecting responses, while JSON Editor Pro is for working with the JSON itself — diffing two payloads, converting formats, or inferring a schema.
No, by default. JSON Editor Pro processes and stores everything locally in your browser and never uploads your JSON to a server. Voyager is local-first — your requests, collections, and environments stay on your device unless you sign in. When you are signed in, Voyager syncs your data across your devices, and its web app can route a request through Voyager's relay when the browser can't send it directly (for example, a CORS-blocked request or an FTP, SMTP, or TCP connection). See our Privacy Policy for the full picture.
The fastest way is the in-app feedback option inside the product you're using. You can also reach us directly — see the Contact page.
Email us at info@nivoapps.com, or use the Contact page for general inquiries, bug reports, and feedback.