---
title: "Bybit REST V5 Next Cursor JavaScript SDK Example | Siebly"
description: "Bybit REST V5 next cursor JavaScript example for the Siebly Bybit SDK, covering exchange REST API and WebSocket integration, setup, and production SDK docs."
canonical: "https://siebly.io/examples/Bybit/Rest/rest-v5-next-cursor"
robots: "index,follow"
---

# Bybit REST V5 Next Cursor JavaScript SDK Example

Bybit REST V5 next cursor JavaScript example for the Siebly Bybit SDK, covering exchange REST API and WebSocket integration, setup, and production SDK docs.

**Path:** [Home](/) / [Examples](/examples) / [Bybit](/examples/Bybit) / [Rest](/examples/Bybit/Rest) / [rest-v5-next-cursor.ts](/examples/Bybit/Rest/rest-v5-next-cursor)

[View source on GitHub](https://github.com/sieblyio/crypto-api-examples/blob/master/examples/Bybit/Rest/rest-v5-next-cursor.ts)

[Open the Bybit JavaScript SDK guide](/sdk/bybit/javascript)

## rest-v5-next-cursor.ts

```typescript
import { RestClientV5, UniversalTransferRecordV5 } from 'bybit-api';

const client = new RestClientV5({
  testnet: false,
  key: 'insert_api_key',
  secret: 'insert_api_secret',
});

async function getAllUniversalTransfers() {
  const allTransfers: UniversalTransferRecordV5[] = [];
  let nextCursor = '';
  let pages = 0;

  do {
    pages++;
    console.log(`Fetching data from page ${pages}`);
    const response = await client.getUniversalTransferRecords({
      limit: 50, // Maximum page size per request
      cursor: nextCursor || undefined, // Only send cursor if we have one
    });

    if (response.result.list && response.result.list.length > 0) {
      allTransfers.push(...response.result.list);
    }

    nextCursor = response.result.nextPageCursor;

    // Optional: Add a small delay to avoid rate limits
    await new Promise((resolve) => setTimeout(resolve, 100));
  } while (nextCursor);

  console.log('Total transfers fetched:', allTransfers.length);
  console.log('All transfers:', allTransfers);
}

getAllUniversalTransfers().catch(console.error);
```
