{"openapi":"3.1.0","info":{"title":"JSON Types API","version":"1.0.0","description":"Infer a schema or types from a sample JSON document — the fastest way to get a contract out of an example API response. Pass a JSON sample and the schema endpoint returns a JSON Schema (Draft 2020-12) with detected types, required keys, array item schemas merged across elements, and recognised string formats (email, uri, uuid, date-time, date, ipv4); the typescript endpoint returns ready-to-paste TypeScript interfaces with named nested interfaces, typed arrays, unions for mixed-shape array elements and structural de-duplication. Supply the sample inline via ?json=, as a query parameter, or as a request body. Everything is computed locally with no network calls, so it is fast and deterministic. Built for scaffolding types from real API responses, generating validation schemas, documentation, contract testing and code generation. A JSON type/schema inferer — distinct from JSON-Schema validation (jsonschema), JSON pretty-printing and conversion (json), and JSON diff/patch (jsondiff). No upstream key, no cache.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/jsontypes-api","description":"oanor gateway"}],"tags":[{"name":"JSON Types"},{"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/schema":{"get":{"operationId":"get_v1_schema","tags":["JSON Types"],"summary":"Infer a JSON Schema","description":"","parameters":[{"name":"json","in":"query","required":true,"description":"JSON sample (inline or body)","schema":{"type":"string"},"example":"{\"id\":\"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\"name\":\"Ada\",\"email\":\"ada@example.com\",\"age\":36,\"tags\":[\"x\",\"y\"],\"address\":{\"city\":\"London\"}}"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK"},"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/typescript":{"get":{"operationId":"get_v1_typescript","tags":["JSON Types"],"summary":"Infer TypeScript interfaces","description":"","parameters":[{"name":"json","in":"query","required":true,"description":"JSON sample (inline or body)","schema":{"type":"string"},"example":"{\"id\":\"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\"name\":\"Ada\",\"email\":\"ada@example.com\",\"age\":36,\"tags\":[\"x\",\"y\"],\"address\":{\"city\":\"London\"}}"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK"},"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":"Outputs & detected formats","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK"},"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":2140,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":630,"monthly_call_quota":41500,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2050,"monthly_call_quota":218000,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":5340,"monthly_call_quota":825000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/jsontypes-api"}