GraphQL is a declarative data fetching method that provides a single endpoint for queries. It was developed by Facebook in 2012 and addresses challenges with REST like over- and under-fetching of data. GraphQL uses a schema to define types and their relations, and allows fetching nested data in a single query to the server. It supports queries to read data, and mutations to write data by creating, updating, or deleting data records.