É unha alternativa a REST que usa un sistema forte de tipos para describir as funcionalidades dunha API. GraphQL describe os recursos mediante un esquema (escrito nunha linguaxe propia chamada SDL) que define:
Tipos de datos e as relacións entre eles.
Unha serie de operacións, entre as que destacan as Consultas (Queries) para a lectura de datos, e os Modificadores (Mutations) para crear, modificar e borrar datos, os solucionadores (Resolvers) e os manexadores de erros.
As operacións (consultas e modificadores) tamén son tipos, e os seus atributos declaran as operacións dispoñibles. Así que ó realizar unha consulta débese especificar os atributos de retorno. A vantaxe de GraphQL é que se pode navegar pola información asociada á consulta, o que proporciona maior flexibilidade á hora de definir APIs.