Hoe werken de API limieten van Exact Online?

De laatste tijd loop ik er steeds vaker tegenaan dat ik een error krijg dat de API Call limieten zijn bereikt voor onze organisatie. Dit gebeurt niet alleen bij het verversen van data van onze eigen, interne administratie, maar ook bij het verversen van klantdata.

Hier lijkt het dus zo te zijn dat de call limieten op de centrale organisatie worden geplakt en niet per administratie.

Dus als een boekhouder een dashboard maakt voor 1 klant zit hier een limiet van 5,000 Calls op.
Wordt dit dashboard uitgerold naar 100 klanten, zou ik verwachten dat de limiet 5,000 * 100 = 500,000 Calls wordt voor het totaal.

Hoe berekent Exact deze limieten en is het überhaupt mogelijk om een schaalbaar dashboard te maken als de limieten zijn gebaseerd op de centrale organisatie?

Hi.
you may want to have a look here : # New Exact Online API limitations for 2021

inside the discussion @gls as linked to more explanations, details, turnarounds.

De Exact Online API-limieten (“Exact Online API rate limits”) zijn zoals beschreven door @sda (thanks) terug te vinden op de Exact Online site.

De limiet die vaak als restrictief ervaren wordt is de daglimiet van 5.000 API calls per dag, administratie en per client ID. Voor enkele Invantive SQL gebruikers is deze limiet problematisch, maar 99% heeft hier weinig last van ondervonden. De limieten zijn gaandeweg over 2021 steeds verlaagd; meer informatie over de Exact Online API aanpassingen in 2021 zijn te vinden op Impact Exact Online API aanpassingen 1 juli 2021.

Bij 100 administraties is het maximum dus 500.000 calls, maar er mogen per administratie maximaal 5.000 per dag gebruikt worden.

Een ophoging is te realiseren met meer gekoppelde apps en/of door een tijdelijke extensie bij Exact Online Support aan te vragen met een ticket.

Overschrijding van de Exact Online daglimiet zorgt er voor dat rest van de dag onder die client ID geen API requests meer afgevuurd kunnen worden. Er treedt dan onder HTTP 429 error op: Too many requests (het aantal verzoeken overschrijdt de daglimiet). Invantive SQL toont dan een itgeneor229 foutmelding zoals beschreven in Geleidelijke verlaging van Exact Online API-limieten leidt tot "Too many requests" en itgeneor229 foutmeldingen.

Er is geen sprake van een limiet die op een centrale administratie terugslaat en rapportages schalen lineair in het aantal Exact Online administraties.

Het gebruik op Exact Online maar ook andere API’s is eenvoudig op te vragen via de Invantive SQL Editor met een paar SQL-statements:

--
-- Selecteer alle administraties.
--
use all@eol

--
-- Zorg dat alle Exact Online administraties geraakt zijn met een simpele API-call
-- zodat de administratie ook statistieken teruggeeft.
--
select 1 c
from   exactonlinerest..journals 
where  code = 'BESTAATNIET'

--
-- Haal lijst van huidige rate limit waardes op per administratie.
--
select provider_data_container_id
,      code
,      daily_limit
,      daily_used
,      daily_remaining
,      daily_reset_date_utc
,      minutely_limit
,      minutely_remaining
,      minutely_reset_date_utc
,      last_measurement_utc
,      first_daily_remaining
,      first_measurement_utc
from   systempartitions@datadictionary

Het plaatje toont dat er bijvoorbeeld op 10523 al 7 Exact Online API-calls gemeten zijn volgens de Exact Online API server:

Het resterende aantal API calls is te vinden onder DAILY_REMAINING. Het deze minuut resterende aantal API calls (de zogenaamde “minutely limit”) is te vinden onder MINUTELY_REMAINING. Per minuut kunnen 60 API-calls gemaakt worden naar Exact Online.

Binnen een downloadsessie kunnen de aantallen API-verzoeken en details API-calls opgevraagd worden door de view SessionIOs@DataDictionary uit te lezen (voor in dit geval NMBRS):

Dezelfde gegevens zullen enkele minuten later verschijnen in het scherm “Sessie I/O’s” op Invantive Cloud. Deze lijst met API-calls is tegenwoordig redelijk vlot op te openen en bevat alle sessie I/O’s van vandaag. Sessie I/O’s ouder dan een dag zijn hier niet online zichtbaar, alhoewel totalen bewaard blijven.

Meer informatie over Exact Online rate limits is te lezen in Itgeneor229 Verkrijg meer API-aanroepen per dag dan de huidige limiet van 15.000-aanroepen of probeer het morgen opnieuw. The remote server returned an error: (429) Too Many Requests.

Voor gebruikers van on-premises producten staan de extra mogelijkheden beschreven in Welke API calls heeft Invantive SQL daadwerkelijk uitgevoerd?.

Optimalisatietips zijn te vinden vanaf onder bijvoorbeeld: