{"openapi":"3.1.0","info":{"title":"JSON Flatten API","version":"1.0.0","description":"Flatten and unflatten JSON. Turn a deeply nested JSON object into a single-level map of dot-notation keys (a.b.c → value, arrays become a.0, a.1), and turn a flat dot-notation map back into the original nested structure. Choose the delimiter (dot, slash, anything), limit the depth, or keep arrays intact. Perfect for environment variables, i18n/translation keys, preparing JSON for CSV or spreadsheet export, analytics event properties, config diffing and form serialisation. Pure local processing — no key, no third-party service, instant. Live. 3 endpoints. Distinct from JSON validation/formatting, JSONPath querying and type inference.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/flatten-api","description":"oanor gateway"}],"tags":[{"name":"Flatten"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/flatten":{"get":{"operationId":"get_v1_flatten","tags":["Flatten"],"summary":"Flatten nested JSON to dot-notation","description":"","parameters":[{"name":"json","in":"query","required":true,"description":"Nested JSON object","schema":{"type":"string"},"example":"{\"a\":{\"b\":{\"c\":1}},\"list\":[{\"x\":1}]}"},{"name":"delimiter","in":"query","required":false,"description":"Key delimiter (default .)","schema":{"type":"string"}},{"name":"safe","in":"query","required":false,"description":"true to keep arrays intact","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"keys":2,"flattened":{"a.b.c":1,"list.0.x":1}},"meta":{"timestamp":"2026-06-02T16:51:53.757Z","request_id":"f15803e1-f8eb-46ed-b9ae-7a05bbbbe8fb"},"status":"ok","message":"Flatten nested JSON","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/unflatten":{"get":{"operationId":"get_v1_unflatten","tags":["Flatten"],"summary":"Unflatten dot-notation JSON","description":"","parameters":[{"name":"json","in":"query","required":true,"description":"Flat dot-notation object","schema":{"type":"string"},"example":"{\"a.b.c\":1,\"list.0.x\":1}"},{"name":"delimiter","in":"query","required":false,"description":"Key delimiter (default .)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"unflattened":{"a":{"b":{"c":1}},"list":[{"x":1}]}},"meta":{"timestamp":"2026-06-02T16:51:53.865Z","request_id":"920033d0-4efe-4084-b2d4-187b293d0448"},"status":"ok","message":"Unflatten dot-notation JSON","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"auth":"none upstream; this gateway requires x-api-key","name":"JSON Flatten API","note":"Flatten a nested JSON object to single-level dot-notation keys and back. /v1/flatten?json={\"a\":{\"b\":1}} → {\"a.b\":1} (options: delimiter, max_depth, safe=true to keep arrays); /v1/unflatten?json={\"a.b\":1} → {\"a\":{\"b\":1}}. Great for env vars, i18n keys, CSV/spreadsheet export prep and analytics events. Instant, nothing stored.","source":"Local JSON flattening (flat) — no key, no upstream","endpoints":3},"meta":{"timestamp":"2026-06-02T16:51:53.970Z","request_id":"7089987c-1f73-4b10-81da-b2a281e4977a"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":1220,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":400,"monthly_call_quota":14000,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2360,"monthly_call_quota":154000,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":5960,"monthly_call_quota":790000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/flatten-api"}