Pagination and Filtering

All group API resources have support for bulk fetches via List API resources and filtering by query params. The sections that follow explain how you can use the Pagination and Filtering.

Pagination

You can list subscriptions, list customers, and list invoices. These list API methods share a common structure

Pagination can be controlled by page_size parameter that limits the number of resources to be returned in the response. The value ranges from 1 to 100 and defaults to 20.

List API methods returns an object with these four attributes:

  • count: The total existing objects.

  • next: The query path to go to next results.

  • previous: The query path to go to previous results.

  • results: The list with the results objects.

Filtering

In the List API resources, filtering of resources can be performed using query parameters. Please refer to the corresponding resource's documentation for the complete list of supported query parameters. The following types of query parameters are supported now:

  • string

  • enumerated string

  • number

  • date

  • datetime

  • boolean

The operators supported for a query parameter is based on the query parameter type, as explained below:

Filter operators:

Operator

Supported type

Example

gt

Returns the objects, if the filter attribute's value is greater than the specified value.

number

&amount__gt=1000

gte

Returns the objects, if the filter attribute's value is greater than or equal to the specified value.

number

&amount__gte=1000

lt

Returns the objects, if the filter attribute's value is lesser than the specified value.

number

&amount__lt=1000

lte

Returns the objects, if the filter attribute's value is lesser than or equal to the specified value.

number

&amount__lte=1000

range Takes in two values as input. Returns the objects, if the filter attribute's value falls within the specified range.

number

date

datetime

&amount__between=1000,2000

in

Returns the objects, if the filter attribute's value matches any one of the specified values.

all types

&status__in=active,archived

contains

Returns the objects, if the filter attribute's value contains specified value respecting capital letters.

string

&name__contains=Acme

icontains

Returns the objects, if the filter attribute's value contains specified value.

string

&name__icontains=acme

exact

Returns the objects, if the filter attribute's value is exact to specified value respecting capital letters.

string

&address__exact=St

iexact

Returns the objects, if the filter attribute's value is exact to specified value.

string

&address__iexact=street

year

Returns the objects, if the filter attribute's value is exact to specified year value.

date datetime

&created__year=2019

day

Returns the objects, if the filter attribute's value is exact to specified day value.

date datetime

&created__day=01

month

Returns the objects, if the filter attribute's value is exact to specified month value.

date datetime

&created__month=06

isnull

Returns the objects, if the filter attribute's value is null or no, specified True or False value.

all types

&email__isnull=True

startswith

Returns the objects, if the filter attribute's value starts with the specified value.

string

&email__startswith=aaron

endswith

Returns the objects, if the filter attribute's value ends with the specified value.

string

&email__endswith=gmail.com

Nested filtering

Filter on nested objects is supported. Use an expression like these for filter by nested objects:

/invoices/?customer__name__endswith=llc Returns all invoices objects that customer name ends with LLC.

/subscriptions/?lines__plan__name__icontains=basic Returns all subscriptions objects that plan name contain basic.

In the same way you can make use of filter operators on nested objects.

Last updated