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

# Kéréskorlátok

> Hány kérést küldhet, és hogyan kezelje a 429-es válaszokat.

> [!NOTE]
>
> A GetQR API béta állapotban van, és csak kiválasztott munkaterületek számára érhető el. A részletek az általános kiadásig változhatnak.

A GetQR API korlátozza, hány kérést küldhet egy-egy API-kulcs, hogy egyetlen integráció se lassítsa le az API-t mindenki más számára.

## Korlátok

| Korlát | Érték |
| - | - |
| Kérések API-kulcsonként | 600 percenként |

A korlát egy csúszó, egyperces időablakra vonatkozik, és az összes végpontra együttesen érvényes. Az [állapotellenőrzéshez](https://docs.getqr.com/hu/api/endpoints/health.md) nem kell kulcs, és nem számít bele a korlátba.

## Kéréskorlát-fejlécek

Az érvényes API-kulccsal küldött kérésekre adott válaszok – a hibaválaszokat is beleértve – ezeket a fejléceket tartalmazzák:

| Fejléc | Leírás |
| - | - |
| `X-RateLimit-Limit` | Az időablakonként engedélyezett kérések maximális száma. |
| `X-RateLimit-Remaining` | Az aktuális időablakban még hátralévő kérések. |
| `X-RateLimit-Reset` | Az időablak újraindulásának időpontja, Unix-időbélyegként, ezredmásodpercben. |
| `Retry-After` | Másodpercek az időablak újraindulásáig, felfelé kerekítve. Ennyit várjon az újrapróbálkozás előtt. |

## Ha túllépi a korlátot

A korlát túllépésekor az API `429` kóddal, `rate_limit_exceeded` hibakóddal és ugyanezekkel a fejlécekkel válaszol:

```http theme={null}
HTTP/1.1 429 Too Many Requests
X-RateLimit-Limit: 600
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1792764060000
Retry-After: 37

{
  "error": {
    "code": "rate_limit_exceeded",
    "message": "Too many requests.",
    "doc_url": "https://getqr.com/account/api-docs#error-rate_limit_exceeded"
  }
}
```

További kérések előtt várja meg az újraindulás időpontját. Adjon hozzá véletlenszerű késleltetést (jitter), hogy több feldolgozó ne egyszerre próbálkozzon újra, és `5xx` hibáknál alkalmazzon exponenciális visszalépést:

```javascript theme={null}
async function getqrFetch(url, options = {}, maxRetries = 5) {
  for (let attempt = 0; ; attempt++) {
    const res = await fetch(url, {
      ...options,
      headers: {
        Authorization: `Bearer ${process.env.GETQR_API_KEY}`,
        ...options.headers,
      },
    });

    const retryable = res.status === 429 || res.status >= 500;
    if (!retryable || attempt >= maxRetries) return res;

    // On 429, wait for Retry-After (seconds). Otherwise back off: 1s, 2s, 4s…
    const retryAfter = Number(res.headers.get("Retry-After"));
    const wait =
      res.status === 429 && retryAfter > 0
        ? retryAfter * 1000
        : 1000 * 2 ** attempt;
    const jitter = Math.random() * 250;

    await new Promise((r) => setTimeout(r, wait + jitter));
  }
}
```

> [!TIP]
>
> A `POST /api/v1/qrs` kérést csak `Idempotency-Key` fejléccel ismételje meg. Így egy újrapróbálkozás soha nem hoz létre második QR-kódot. Lásd: [Idempotencia](https://docs.getqr.com/hu/api/introduction.md#idempotencia).

## Maradjon a korláton belül

* Figyelje az `X-RateLimit-Remaining` értékét, és lassítson, mielőtt eléri a 0-t.
* QR-kódonkénti külön kérések helyett használja a [tömeges QR-létrehozást](https://docs.getqr.com/hu/api/endpoints/bulk-qr-creations.md).
* Oldalanként legfeljebb 100 találatot kérjen le a `pageSize=100` paraméterrel. Lásd: [Lapozás](https://docs.getqr.com/hu/api/introduction.md#lapozás).
* Gyorsítótárazza a QR-képeket: a letöltések `ETag` értéket adnak vissza, így `If-None-Match` fejlécet küldhet, és `304 Not Modified` választ kap, ha semmi sem változott.

## Következő lépések

> [card] [Hibák](https://docs.getqr.com/hu/api/errors.md)

> [card] [QR-kódok](https://docs.getqr.com/hu/api/endpoints/qr-codes.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.