# Entity Service API: Ordering & Pagination

The Entity Service API offers the ability to order and paginate results found with its findMany() method.

# Ordering

To order results returned by the Entity Service API, use the sort parameter. Results can be ordered based on a single or on multiple attribute(s) and can also use relational ordering.

# Single

To order results by a single field, just pass it to the sort parameter:

  • either as a string to sort with the default ascending order
  • or as an object to define both the field name and the order (i.e. 'asc' for ascending order or 'desc' for descending order)
strapi.entityService.findMany('api::article.article', {
  sort: 'id',
});

// single with direction
strapi.entityService.findMany('api::article.article', {
  sort: { id: 'desc' },
});
1
2
3
4
5
6
7
8

# Multiple

To order results by multiple fields, pass the fields as an array to the sort parameter:

  • either as an array of strings to sort multiple fields using the default ascending order
  • or as an array of objects to define both the field name and the order (i.e. 'asc' for ascending order or 'desc' for descending order)
strapi.entityService.findMany('api::article.article', {
  sort: ['publishDate', 'name'],
});

// multiple with direction
strapi.entityService.findMany('api::article.article', {
  sort: [{ title: 'asc' }, { publishedAt: 'desc' }],
});
1
2
3
4
5
6
7
8

# Relational ordering

Fields can also be sorted based on fields from relations:

strapi.entityService.findMany('api::article.article', {
  sort: {
    author: {
      name: 'asc',
    },
  },
});
1
2
3
4
5
6
7

# Pagination

To paginate results returned by the Entity Service API, use the start and limit parameters:

strapi.entityService.findMany('api::article.article', {
  start: 10,
  limit: 15,
});
1
2
3
4