The API

How to use the GraphQL API.

Dgraph serves spec compliant GraphQL over HTTP. By default, GraphQL is served at http://localhost:8080/graphql. Both GET and POST requests are served.

For POST requests, the body must be “application/json” encoded with the following form.

{
  "query": "...",
  "operationName": "...",
  "variables": { "var": "val", ... }
}

For GET requests, the query, variables and operation are sent as query parameters in the url.

http://localhost:8080/graphql?query={...}&variables={...}&operation=...

In both cases, only query is required. variables is only required if the query contains GraphQL variables: i.e. it starts like query myQuery($var: String...). While, operationName is required if there are multiple operations in the query; in which case, operations must also be named.

Compressed requests and responses are available with gzip. Set header Content-Encoding to gzip to post encoded data, and Accept-Encoding to gzip to receive a compressed response.

When an operation contains multiple queries, they are run concurrently and independently in a single Dgraph transaction.

When an operation contains multiple mutations, they are run serially, in the order listed in the request, and in a transaction per mutation. If a mutation fails, the following mutations are not executed, and previous mutations are not rolled back.