Preskoči na vsebino

Omejitve, kvote in glave

Omejitev Kaj šteje Ob prekoračitvi
Hitrost (burst) zahteve na sekundo na ključ (Hobi 1, Starter 5, Growth 15, Custom po dogovoru) 429 rate_limited
Kvota obračunske enote v obračunskem obdobju (Hobi 100 na mesec in največ 20 na dan, Starter 2.500, Growth 10.000) 429 quota_exceeded (trda omejitev) ali preseganje, če ste ga vklopili
Fizične osebe na dan različne fizične osebe (s.p.), vrnjene vaši organizaciji v dnevu (Hobi 20, Starter 200, Growth 1.000, Custom po dogovoru) 429 natural_person_cap_exceeded

Vsak 429 ima glavo Retry-After v sekundah. Preizkuševalnik API-ja v nadzorni plošči ne porablja enot in ima svojo omejitev: približno 20 zahtev na minuto na uporabnika in na organizacijo. Dnevna omejitev fizičnih oseb velja tudi zanj.

Uporabljamo osnutek IETF draft-ietf-httpapi-ratelimit-headers-11 in klasične glave:

RateLimit-Policy: "burst";q=15;w=1, "monthly";q=10000;w=2592000
RateLimit: "burst";r=12;t=1, "monthly";r=8123;t=1209600
X-RateLimit-Limit: 15
X-RateLimit-Remaining: 12
X-RateLimit-Reset: 1792396800
X-Quota-Limit: 10000
X-Quota-Remaining: 8123
X-Quota-Reset: 1793606400
X-Quota-Warning: 80
  • X-RateLimit-Reset in X-Quota-Reset sta Unixova časa v sekundah.
  • X-Quota-Warning (80 ali 100) se pojavi, ko presežete prag. Opozorila prejmete tudi po e-pošti.
async function call(url, init, tries = 4) {
for (let i = 0; ; i++) {
const r = await fetch(url, init);
if (r.status !== 429 && r.status < 500) return r;
if (i === tries - 1) return r;
const wait = Number(r.headers.get('Retry-After') ?? 2 ** i) * 1000;
await new Promise((s) => setTimeout(s, wait + Math.random() * 250));
}
}
  • ETag je zgoščena vrednost vsebine in podatkovne različice. Z If-None-Match dobite 304 Not Modified, ki je brezplačen.
  • Last-Modified je datum vira FURS.
  • Odgovori s ključem imajo Cache-Control: private, max-age=300.

Podatki se spremenijo največ enkrat na dan, zato jih lahko varno predpomnite do naslednje osvežitve (X-Data-As-Of). Za fizične osebe velja največ 30 dni (Pogoji uporabe).

GET /v1/usage vrne porabo v tekočem obdobju za ključ in organizacijo (0 enot). Podrobnosti po dnevih in končnih točkah so v nadzorni plošči.

Vir: FURS · neuradni vir, ni uradni izpis · Pogoji · Zasebnost · maticna.si