Types inferred from real data
Writing model classes for a large API response by hand is slow and easy to get wrong. This tool reads your JSON sample and works out the type of every field. When a list contains several objects, all of them are compared: a field that some objects do not have becomes optional, and a field that is null in some objects becomes nullable.
Numbers are split into whole numbers and decimals, and whole numbers beyond the 32 bit range become long or int64. Strings that look like ISO dates, such as 2026-10-27 or 2026-10-27T09:30:00Z, can become date types in C#, Python, Go and Java. Nested objects get their own type named after their key, and objects with the same shape share one type.
Names that follow each language
Keys like user_name, First Name or createdAt are turned into the naming style of the language: PascalCase properties in C#, snake_case in Python, camelCase in Java and Kotlin, exported names in Go. When the new name differs from the JSON key, the original key is kept in an attribute or tag, so serialization still matches the data. Reserved words and keys that start with a digit are renamed safely.
The result is a starting point. Check field types that could not be decided from your sample, for example a field that is always null or always an empty list.