Paginate query results

The operators limit and offset are used for pagination. limit specifies the number of rows to retain from the result set and offset determines which slice to retain from the results.

The following are examples of pagination in different scenarios:

Limit results

Fetch the first 5 authors from the list of all authors:

query {
  author(
    limit: 5
  ) {
    id
    name
  }
}
query { author( limit: 5 ) { id name } }
{ "data": { "author": [ { "id": 1, "name": "Justin" }, { "id": 2, "name": "Beltran" }, { "id": 3, "name": "Sidney" }, { "id": 4, "name": "Anjela" }, { "id": 5, "name": "Amii" } ] } }

Limit results from an offset

Fetch 5 authors from the list of all authors, starting with the 6th one:

query {
  author(
    limit: 5,
    offset:5
  ) {
    id
    name
  }
}
query { author( limit: 5, offset:5 ) { id name } }
{ "data": { "author": [ { "id": 6, "name": "Corny" }, { "id": 7, "name": "Berti" }, { "id": 8, "name": "April" }, { "id": 9, "name": "Ninnetta" }, { "id": 10, "name": "Lyndsay" } ] } }

Limit results in a nested object

Fetch a list of authors and a list of 2 of each of their articles:

query {
  author {
    id
    name
    articles (
      limit:2
    ) {
      id
      title
    }
  }
}
query { author { id name articles ( limit:2 ) { id title } } }
{ "data": { "author": [ { "id": 1, "name": "Justin", "articles": [ { "id": 15, "title": "vel dapibus at" }, { "id": 16, "title": "sem duis aliquam" } ] }, { "id": 2, "name": "Beltran", "articles": [ { "id": 2, "title": "a nibh" }, { "id": 9, "title": "sit amet" } ] }, { "id": 3, "name": "Sidney", "articles": [ { "id": 6, "title": "sapien ut" }, { "id": 11, "title": "turpis eget" } ] }, { "id": 4, "name": "Anjela", "articles": [ { "id": 1, "title": "sit amet" }, { "id": 3, "title": "amet justo morbi" } ] } ] } }