GraphQL is a query language for your API, and a server-side runtime for executing queries using a type system you define for your data. The GraphQL specification was open-sourced in 2015 and has since been implemented in a variety of programming languages. GraphQL has been released simply as a specification, for a query language for APIs that allows clients to request exactly the data they need, nothing more and nothing less.
GraphQL server can be implemented in any preferred programming language.
Unlike REST, where multiple endpoints provide fixed data structures, GraphQL has a single endpoint and lets clients define the structure of the response.
This reduces the over-fetching and under-fetching of data.
It is strongly typed using Schema Definition Language