En 2012 Facebook desarrolla internamente GraphQL para resolver un problema concreto de sus aplicaciones móviles: las APIs REST existentes obligaban a realizar múltiples peticiones para obtener datos relacionados entre sí, y devolvían grandes cantidades de campos innecesarios (over-fetching) o insuficientes (under-fetching), lo que penalizaba el rendimiento en conexiones móviles lentas. GraphQL invierte el modelo: en lugar de que el servidor defina la forma de los datos que devuelve cada endpoint, es el cliente quien especifica exactamente qué campos necesita en una única consulta, y el servidor responde solo con esos datos. El sistema se basa en un esquema tipado que describe todos los tipos de datos disponibles y sus relaciones, actuando como contrato explícito entre cliente y servidor. Facebook lo usa internamente desde 2012 y lo publica como especificación abierta en septiembre de 2015, liderado por Lee Byron, Nick Schrock y Dan Schafer. La especificación se transfiere en 2019 a la GraphQL Foundation, bajo la Linux Foundation, asegurando su neutralidad respecto a cualquier empresa. La ruptura respecto a REST es arquitectónica: REST organiza la API en torno a recursos identificados por URLs (un endpoint por recurso), mientras que GraphQL expone un único endpoint y delega en el cliente la composición de la consulta. Esto elimina la necesidad de versionar APIs y reduce drásticamente el número de peticiones de red en aplicaciones con datos complejos y relacionados. GraphQL es adoptado como estándar de facto por GitHub (2016), Twitter, Shopify, Airbnb y la mayoría de plataformas con APIs públicas de alta complejidad.