> For the complete documentation index, see [llms.txt](https://docs.vomevolunteer.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.vomevolunteer.com/getting-started/pagination.md).

# Pagination

The Vome API supports navigating through large datasets by implementing cursor-based pagination. This feature allows clients to efficiently browse through lists of resources such as profiles or shift reservations, ensuring that applications can handle large amounts of data smoothly.

**How Pagination Works**

Pagination in the Vome API relies on two parameters to navigate through data: `page` and `limit`. These parameters help control the part of the dataset that the API returns on each request.

**Parameters**

* **page** (`integer`): Specifies the page number of the results to retrieve.
* **limit** (`integer`, optional, default is 10): Determines the number of records to return in one page. This number can range between 1 and 100, allowing flexibility depending on the needs of the client application.

**Example**&#x20;

Fetch the first page of profiles with 25 records:

```http
GET /api/profiles/?page=1&limit=25
```

#### Response Structure

Paginated responses include navigation metadata:

```json
{
  "count": 150,
  "next": "https://api.vomevolunteer.com/api/profiles/search/?first_name=Aaron&is_offline=False&page=3&limit=15",
  "previous": "https://api.vomevolunteer.com/api/profiles/search/?first_name=Aaron&is_offline=False&page=1&limit=15",
  "results": [
     {
            "id": "ab687438-bf10-4569-b023-818a8e512936",
            "logged_hours": 0,
            "is_offline": true,
            "is_following": false,
            "emergency_contact": {
                "name": "Jon Smiths",
                "phone_number": "5555555555",
                "relationship": "Father"
            },
            "medical_information": {
                "description": "Allergies to peanuts",
                "has_medical_info": true
            },
            "profile_details": {
                "first_name": "Name",
                "last_name": "Unit Price",
                "full_name": "",
                "email": "sampleuser+677@malinator.com",
                "profile_image": "",
                "phone_number": "",
                "date_of_birth": null,
                "gender": 2,
                "gender_text": "",
                "occupation": null,
                "occupation_institution_name": "",
                "skills": [],
                "languages": [],
                "address": "",
                "created_at": "2026-04-01T11:06:26.396971Z",
                "age": null,
                "address_coordinates": []
            },
            "opportunities": [],
            "most_recent_shift": null,
            "completed_shifts": 0,
            "profile_tags": [],
            "custom_fields": [
                {
                    "id": "851ca2f9-41b5-42c8-be84-d715ae6a2339",
                    "custom_field": {
                        "id": "009eb956-f8ba-45da-8654-d2d0ace71336",
                        "name": "Where are you from?",
                        "field_type": 0,
                        "is_active": true
                    },
                    "custom_field_value": {
                        "id": "10109097-f78e-4f09-86a3-4ac2a9517c9d",
                        "value": "CA",
                        "value_info": "CA"
                    }
                }
            ]
        },
  ]
}
```

#### Navigating Between Pages

* `next`: URL for the next page, if available.
* `previous`: URL for the previous page, if available.

####
