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

# Pagination Model

> Pagination metadata returned by list and search APIs

## Overview

`PaginationInfo` describes the current page, the total number of results, and whether more pages are available. Every paginated endpoint returns this same shape inside its `data` object — for example `data.pagination` on photo and search responses, and `data.pagination` on the download response.

## PaginationInfo

```json theme={null}
{
  "total": 47,
  "currentPage": 1,
  "totalPages": 2,
  "hasNextPage": true,
  "hasPreviousPage": false,
  "page_size": 30
}
```

| Field             | Type    | Description                                  |
| ----------------- | ------- | -------------------------------------------- |
| `total`           | number  | Total items available for the request.       |
| `currentPage`     | number  | Current page number.                         |
| `totalPages`      | number  | Total number of pages available.             |
| `hasNextPage`     | boolean | Whether another page exists after this page. |
| `hasPreviousPage` | boolean | Whether a page exists before this page.      |
| `page_size`       | number  | Page size used for this response.            |

<Note>
  Some empty-result responses return `currentPage: 0` and `totalPages: 0`. Treat those values as "no page is available" rather than as a normal page number.
</Note>

## Endpoint Page Sizes

| Endpoint                                                       | Default `page_size` | Maximum `page_size` |
| -------------------------------------------------------------- | ------------------- | ------------------- |
| `GET /api/v1/ext/{org_id}/events`                              | `10`                | `100`               |
| `GET /api/v1/ext/{org_id}/event/{event_id}/images`             | `32`                | `100`               |
| `GET /api/v1/ext/{org_id}/event/{event_id}/bibs/{bib}`         | `32`                | `100`               |
| `POST /api/v1/ext/{org_id}/event/{event_id}/faces`             | `32`                | `100`               |
| `GET /api/v1/ext/{org_id}/event/{event_id}/faces/{request_id}` | `32`                | `100`               |
| `POST /api/v1/ext/{org_id}/event/{event_id}/original-photos`   | `30`                | `60`                |

## Used By

<CardGroup cols={2}>
  <Card title="List Events" icon="list" href="/api-reference/list-events">
    `data.pagination` field.
  </Card>

  <Card title="All Photos" icon="images" href="/api-reference/all-photos">
    `data.pagination` field.
  </Card>

  <Card title="BIB Search" icon="hashtag" href="/api-reference/bib-search">
    `data.pagination` field.
  </Card>

  <Card title="Face Search" icon="user-magnifying-glass" href="/api-reference/face-search">
    `data.pagination` field.
  </Card>

  <Card title="Download Originals" icon="cloud-arrow-down" href="/api-reference/download-original-photos">
    `data.pagination` field.
  </Card>
</CardGroup>
