---
title: "Faqezimi"
page_id: "pagination"
section: "Si te fillosh"
canonical: "https://fature.al/api-reference/pages/pagination.html"
---

# Faqezimi

Part of the [fature.al API](/api-reference/index.html) documentation.

Shumica e listave faqezohen me `limit` dhe `offset`, dhe numeruesit kthehen ne nje
objekt `pagination`. Por jo te gjitha listat sillen njesoj, dhe dallimet kane
rendesi kur shkruani nje cikel qe lexon gjithcka.

## Tabela e shkurter

| Endpoint | Parametrat | `total` | Kufiri i `limit` |
| --- | --- | --- | --- |
| `GET /invoice` | `limit`, `offset` | jo | pa kufi |
| `GET /invoice/wtn` | `limit`, `offset` | jo | pa kufi |
| `GET /clients` | `limit`, `offset` | po | 100 |
| `GET /api/v2/clients` | `limit`, `offset` | po | 100 |
| `GET /bank-accounts` | `limit`, `offset` | po | 100 |
| `GET /products` | `limit`, `offset` | po | 500 |
| `GET /purchase-invoices` | `page` | jo | nuk zbatohet |

Pa `limit` merret `20`, dhe pa `offset` merret `0`. Perjashtim ben lista e
produkteve, e cila pa `limit` kthen te gjithe katalogun.

## Listat me total

Klientet dhe llogarite bankare kthejne `total`, pra e dini qe ne faqen e pare sa
faqe ju presin:

```bash
curl 'https://fature.al/api/v1/clients?limit=100&offset=0' \
  -H 'Authorization: Bearer TOKEN_I_JUAJ'
```

```json
{
  "status": true,
  "data": {
    "items": [ ... ],
    "pagination": { "records": 100, "total": 842, "limit": 100, "offset": 0 }
  }
}
```

`records` eshte sa erdhen ne kete faqe, `total` eshte sa ekzistojne gjithsej. Vazhdoni
me `offset += limit` derisa `offset` te kaloje `total`.

## Listat pa total

Lista e faturave dhe ajo e fleteve shoqeruese nuk e llogarisin totalin, sepse mbi
miliona rreshta ai numerim do te kushtonte me shume se vete faqja. `pagination` i tyre
ka vetem numeruesit e faqes:

```json
{
  "items": [ ... ],
  "pagination": { "records": 20, "limit": 20, "offset": 0, "type": "EINVOICE", "query": null }
}
```

Ndaloni kur faqja vjen me e shkurter se `limit`, jo kur arrini nje total:

```bash
offset=0
while :; do
  n=$(curl -s "https://fature.al/api/v1/invoice?limit=100&offset=$offset" \
        -H "Authorization: Bearer $TOKEN" | jq '.data.pagination.records')
  [ "$n" -lt 100 ] && break
  offset=$((offset + 100))
done
```

Lista e faturave nuk e kufizon `limit`, por kjo nuk do te thote se duhet kerkuar
gjithcka njeheresh: nje faqe shume e madhe ngadaleson pergjigjen dhe rrit mundesine
qe kerkesa te skadoje. Faqe nga 100 deri ne 500 punojne mire.

`pagination` kthen edhe `type` me `query`, pra filtrat qe zbatoi. Kjo ndihmon kur
ciklin e shkruani mbi disa filtra njeheresh.

## Produktet e mbajne pagination jashte data

Lista e produkteve eshte e vjeter sa vete API-ja, dhe forma e saj nuk ndryshohet dot pa
prishur integrimet qe e lexojne. Prandaj `data` ka mbetur vargu i thjeshte qe ka qene gjithmone,
dhe `pagination` rri **krahas** tij, jo brenda:

```json
{
  "status": true,
  "data": [ { "id": 1, "code": "SRV-01", "name": "Sherbim" } ],
  "pagination": { "records": 1, "total": 340, "limit": 20, "offset": 0 }
}
```

Pra `data[0]` eshte nje produkt, ndersa tek listat e tjera `data.items[0]` eshte
elementi. Nje program i shkruar para se filtrat te ekzistonin lexon sot sakte ate qe
lexonte me pare.

Pa `limit` kthehet i gjithe katalogu dhe `limit` mbetet `null` ne pergjigje. Sapo e
dergoni, ai kufizohet ne 500.

Kjo liste ka edhe nje kufi kerkesash me vete: nje thirrje cdo 10 sekonda. Kur e
kaloni, pergjigja kthen zarfin e gabimit, por me status HTTP `200`, jo `429`.
Kontrolloni fushen `status` te trupit, jo vetem kodin.

## Faturat e blerjes numerohen me faqe

`GET /purchase-invoices` nuk lexon nga baza jone, por nga sistemi i fiskalizimit,
dhe ai faqezohet me numer faqeje qe fillon nga `1`:

```bash
curl 'https://fature.al/api/v1/purchase-invoices?fromDate=2026-09-01&toDate=2026-09-30&page=1' \
  -H 'Authorization: Bearer TOKEN_I_JUAJ'
```

`pagination` kthen `records` dhe `page`. Perseritni me `page + 1` derisa `items` te
kthehet bosh. Pa `fromDate` dhe `toDate` merret dita e sotme, jo e gjithe historia.

## Renditja

Listat kthehen nga me e reja tek me e vjetra, sipas `id` zbrites. Kjo do te thote se
nje fature e re e leshuar gjate kohes qe ju lexoni faqet i zhvendos rreshtat nje pozicion
me poshte, dhe nje rresht mund ta shihni dy here.

Kur lexoni nje periudhe te mbyllur, kufizojeni me `fromDate` dhe `toDate`. Nje
periudhe qe ka mbaruar nuk pranon me rreshta te rinj, prandaj faqet mbeten te
qendrueshme sa kohe qe cikli punon.
