GraphQL is an open-source query language for APIs and a server-side runtime that answers those queries. An API (application programming interface) is the interface through which one program, for example a mobile app, asks a server for data. Facebook used GraphQL in its mobile apps from 2012, open-sourced the specification in 2015, and the GraphQL Foundation, hosted by the non-profit Linux Foundation, now supports it.
A GraphQL service defines a strongly typed schema: types such as Project or User, their fields and the relations between them. The client sends a query that names the fields it wants, and the response has the same shape, with no extra or missing data. One request can follow relations across several resources, where a typical REST API needs several calls. Subscriptions push updates when data changes, and new fields can be added without a new API version. GraphQL is not tied to any database: engines in many languages connect it to existing databases, REST APIs and services.
The specification and its reference tools are free and open source.