Each API request only returns a limited amount of records. To allow users to fetch large amounts of records some of our endpoints implement a system of pagination.

Paginated endpoints currently use cursor pagination. These endpoints will return a cursor next with each request response. To get the next set of records, the API user has to include the returned cursor on the following API request.


Default time range

Each endpoint includes a default time range which (for example 30 days for Get swaps by pool ). If you want to query data outside of default time range, you need to explicitely provide:

  • A start and end date: start_date and end_date
  • A time range days and either one of start_date or an end_date

For example:

To paginate further, a user can specify a start_date and an end_date as follows:

For example, calling the Get recent swaps endpoint:


Will return the 50 most recent swaps ordered from the most recent to the oldest:

  "statusCode": 200,
  "status": true,
  "data": [
      "time": "2022-12-07T07:28:27.000Z",
      "pair": "0x8072dcd2ec9d20b0cdacd1f596328711d906bfe7",
      "token0": "0x5187816a80a61b67b9879aea87ea0890a493396b",
      "token1": "0xc2132d05d31c914a87c6611c10748aeb04b58e8f",
      "amount0": -216.06966141020132,
      "amount1": 1.057698,
      "amount_usd": "1.05777203886",
      "slippage": 1.4386992810494261,
      "receiver": "0x11ab72cbb42e24310f269c48f9d8355e437e3f63",
      "tx": "0x36b50e1c23a6c7d3b803d2e43f9c5a615061272b17ddb3f2d6351a3370075cb4",
      "price0": 0.0048955139372938335,
      "price1": 1.00007,
      "network": 137,
      "token0_symbol": "CORIS",
      "token1_symbol": "USDT",
      "exchange": "0x5757371414417b8c6caad45baef941abc7d3ab32",

The next set of recent swaps can be queried with:


This will return all swaps with a timestamp older than "2022-12-07T07:28:27.000Z"** (the oldest timestamp in the previous returned data).




Paginated endpoints only support cursors if the order is by time. If ordering by amountusd or amounts, it is recommended to use limits and start / end dates.

To get the largest 10 AAVE trades over the last 7 days by amountusd you can use the following query:


To see more results, since there is no cursor, you can specify a larger limit to view more of the largest AAVE trades over 7 days. Alternatively, you can specify start_date and end_date with limits to control the number of largest trades for a token you want to fetch

Pagination Direction

By default or if you provide an end_date param, the data will paginate backwards meaning that each new response will return older records.


If you only provide a start_date, the API will paginate forward.

Example 1: ?start_date=2022-01-01&end_date=2022-01-02&limit=100 will return records from the most recent to the oldest. If there are more than 100 records, you can retrieve the next set of records by calling ?start_date=2022-01-01&end_date=2022-01-02&limit=100&next={next} where {next} is returned in the previous query result.

Example 2: ?start_date=2022-01-01&limit=100. There is no end_date so the API responses will be paginated forward. The API will return the records from the oldest (after 2022-01-01T00:00:00Z) to the most recent.

Code Example

const paginate = async () => {
  let done = false
  let next = ""
  let baseUrl = 'https://services.blockpour.com/'
  let endpoint = 'api/swaps'
  const body = JSON.stringify({ "traders": ["0x6977e753e022f65ebeb170d8267b2ea54a431523"] })
  const options = {
    method: 'POST',
    headers: {
      accept: 'application/json',
      'content-type': 'application/json',
      authorization: 'PUT TOKEN HERE'

  let url = new URL(endpoint, baseUrl);
  let params = {
    start_date: '2023-03-01',
    end_date: '2023-03-10'
  Object.keys(params).forEach(key => url.searchParams.append(key, params[key]));

  let data = [] 
  while (!done) {
    if (next) url.searchParams.append("next", next)
    let response = await fetch(url, options)
    let result = await response.json()  

    next = result.next
    if (result.data.length === 0) done = true

  return data