In GraphQL, input types are special object types used to define the structure of data passed as arguments to queries and, especially, mutations. They are defined using the input keyword and are used to group and organize input arguments, improving readability and maintainability.
Input types are designed to represent the structure of data that a client needs to send to the server as input for operations like creating or updating data (mutations).
You define an input type using the input keyword, followed by the type name and a set of fields within curly braces, similar to how you define object types, but with the input keyword instead of type.