XML to JSON
<invoice> and 5 elements inside it converted; repeated elements became arrays.
XML
JSON
attributes as @name, text as #textJSON Diff
7 changes across plan, coupon, features and metadata; the other 5 top-level keys are equal.
Before
subscription-before.jsonAfter
subscription-after.jsonQuery
$.plan.amount matched 1 value in subscription-after.json.
Document
subscription-after.jsonJSONPath
Validate
Not valid JSON. Line 8, column 22: Expected "," or "}" after this value, found a quote.
Document
webhook-payload.jsonResult
IP
100.72.14.9: Shared (carrier-grade NAT), IPv4. Who owns it and where it is need a lookup over the network.
Address
Owner and location
- Organisation
- —
- Network (ASN)
- —
- Country
- —
- City
- —
Ping
api.northwind-labs.io has not been pinged yet. Press Ping to time 3 HTTPS requests from this browser.
Host
This tool contacts only the host you enter, and sends nothing else: no cookies, no referrer, nothing you pasted elsewhere in json0.
Round trips
| Attempt | Status | Time |
|---|---|---|
| 1 | — | — |
| 2 | — | — |
| 3 | — | — |
Browsers cannot send ICMP pings, so this times an HTTPS request from this browser to the host you typed, one second apart. The status code is not readable from a browser, so a reply only proves the host answered.
Base64
63 bytes of text is 84 Base64 characters.
Text
Base64
JWT
HS256 token for cus_R2d9; its expiry is read against this device’s clock.
Token
Claims
Header
Payload
Signature
Hash
21 bytes hashed four ways; SHA-256 begins 9ee4f2bb8af0.
Input
Digests
UUID
8 version 4 UUIDs from crypto.randomUUID, 122 random bits each.
UUIDs
Format
Format
Pretty-printed at 2 spaces: 621 bytes becomes 836 bytes (+35%), 32 keys.
Input
invoice.min.jsonOutput
Table
12 rows × 16 columns from a top-level array, with 3 nested objects flattened into dot paths; the sparsest column, discount.coupon, is filled in 3 of 12.
JSON
invoices.jsonRows
Schema and types
20 properties, 18 required, inferred from 3 samples merged; 6 enums and 3 formats (email, date-time, uri) detected.
Sample
subscriptions.jsonCSV viewer
11 rows × 10 columns, comma-delimited; 1 duplicate row (row 9 repeats row 4); notes is empty in 6 rows.
CSV
customers.csvRows
Column profile
CSV diff
6 differences keyed on customer_id: 2 rows added, 1 removed, 3 cells changed in 2 rows; 5 rows unchanged.
Before
customers-2026-10-01.csvAfter
customers-2026-10-24.csvDifferences
Extended JSON
11 typed values (2 ObjectIds, 2 Longs, 2 Dates, 1 Decimal128, 1 Int32, 1 Timestamp, 1 Binary, 1 Regular expression) read from mongosh shell syntax and written as canonical Extended JSON v2, with every type kept.
Input
subscription.mongosh.jsOutput
Typed values
ObjectId
5 ObjectIds created between 30 Sept 2026 and 24 Oct 2026, by 2 processes (distinct random values).
Decoded
ObjectIds
hex, ObjectId("…") or {"$oid": "…"}, one or manySelected
Generate
Range filter
Query tester
4 of 10 documents match (40%), sorted by plan.amount, projected to 3 fields. Run in this browser, no server.
Documents
subscriptions.jsonResults
Schema analyzer
18 fields across 10 documents; 2 fields have mixed types to fix (plan.seats is Int32 in 9 and String in 1, and 1 more); 3 fields are missing from some documents.
Documents
subscriptions.export.jsonFields
Redact
14 sensitive values in 13 fields: 1 JWT, 3 API keys, 2 emails, 1 IBAN, 2 phone numbers, 1 card number, 2 IP addresses and 2 secrets by key name. Scanned in this browser; nothing was sent.
The scan runs in this browser. Nothing you paste here is sent anywhere, and the hashes are computed with Web Crypto on this device.
Input
support-export.jsonBy kind
Findings
Redacted
Request a feature
Ask for a tool, report a bug or ask a question. The form itself sends nothing: it writes a GitHub issue or an email for you to send.
Your request
Preview
[New tool] Untitled
Write to me directly
siddharthachauhan304@gmail.comOr reach me at sidstack.in