GraphQL is a query language for APIs, and a runtime that executes those queries against a typed schema. The client describes the data it wants, and gets exactly that shape back.
The main differences:
REST exposes many URLs, one per resource. GraphQL usually exposes one endpoint.
A REST endpoint returns a fixed shape, so clients over-fetch unused fields or under-fetch and make extra calls. A GraphQL query gets related data in one request.
A GraphQL schema is typed, and tools can read it through introspection, a query that returns the schema. REST APIs describe themselves with separate documentation.
REST APIs often add versions such as /v2. GraphQL APIs usually add fields and deprecate old ones.
REST is easier to cache over HTTP, because each URL is a natural cache key.
Rewriting in plainer words…
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.