GraphQL is an open-source data query and manipulation language for APIs that allows clients to get precisely the data they need from a server in a single request. It provides a complete description of the available data in an API and gives clients control over the data received. While REST uses a server-driven architecture with multiple endpoints, GraphQL uses a single endpoint and client-driven model. Some key advantages of GraphQL include fetching exact data needs to avoid over- or under-fetching, and stitching together schemas from multiple sources into a unified API.