> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cevoid.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Pagination

> Understand how to work with paginated responses in the Cevoid API

## Overview

Pagination is used by the Cevoid API to limit data returned in a single request, making it easier to work with large datasets. All API endpoints that return multiple items support pagination.

## Pagination Parameters

### `limit`

* **Type**: Integer
* **Default**: 10 items
* **Maximum**: 25 items
* **Description**: Controls the number of items returned per request

### `skip`

* **Type**: Integer
* **Default**: 0
* **Description**: Number of items to skip from the beginning of the result set

***

## Making Paginated Requests

### Basic Pagination

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl -G https://api.cevoid.com/v1/posts \
  -H "x-api-key: {your-api-key}" \
  -d skip=0 \
  -d limit=10
```

### Pagination with Custom Parameters

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl -G https://api.cevoid.com/v1/posts \
  -H "x-api-key: {your-api-key}" \
  -d skip=5 \
  -d limit=15
```

***

## Response Format

Paginated responses include helpful metadata to navigate through the dataset:

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "count": 30,
  "next": "https://api.cevoid.com/v1/posts?skip=15&limit=10",
  "nodes": [
    {
      "id": "WAz8eIbvDR60rouK",
      // ... post data
    },
    {
      "id": "XBa9fJcwES71spvL",
      // ... post data
    }
    // ... more items
  ]
}
```

### Response Fields

* **`count`**: Total number of items available
* **`next`**: URL for the next page of results (if available)
* **`nodes`**: Array containing the requested items

***

## Pagination Best Practices

<Tip>
  Use the `next` field from the response to get the URL for the next page of results. This ensures you're using the correct parameters.
</Tip>

### Efficient Navigation

1. **Start with reasonable limits**: Use the default limit of 10 for most use cases
2. **Use the `next` URL**: Don't manually construct pagination URLs
3. **Handle empty results**: Check if `nodes` is empty to detect the end of results
4. **Respect rate limits**: Don't make requests too quickly when paginating through large datasets

### Example: Iterating Through All Results

```javascript theme={"theme":{"light":"github-light","dark":"github-dark"}}
let skip = 0;
const limit = 25; // Use maximum for efficiency
let hasMoreData = true;

while (hasMoreData) {
  const response = await fetch(`https://api.cevoid.com/v1/posts?skip=${skip}&limit=${limit}`, {
    headers: {
      'x-api-key': 'your-api-key'
    }
  });
  
  const data = await response.json();
  
  // Process the current batch
  data.nodes.forEach(post => {
    // Handle each post
  });
  
  // Check if there are more results
  hasMoreData = data.nodes.length === limit;
  skip += limit;
}
```

<Warning>
  Remember that the maximum limit is 25 items per request. Requests with a higher limit will be automatically capped at 25.
</Warning>
