Kennisbank
Hoe lang duurt een volledige synchronisatie? Doorvoer berekenen
De duur van een volledige synchronisatie is het aantal records maal het aantal aanroepen per record, gedeeld door de limiet van de API. 15.000 artikelen bij 60 aanroepen per minuut is 250 minuten, ruim vier uur, als je ze één voor één ophaalt.
Bijgewerkt op
De som
Doorvoer is het aantal records dat een koppeling per minuut of per dag door een API krijgt. De duur van een volledige ronde volgt uit drie getallen: hoeveel records er zijn, hoeveel aanroepen één record kost en hoeveel aanroepen de API toelaat.
duur = records x aanroepen per record / limiet per minuut
15.000 artikelen x 1 aanroep = 15.000 aanroepen
15.000 / 60 per minuut = 250 minuten = 4 uur en 10 minuten
Elk van de drie getallen valt in de praktijk hoger of lager uit dan gedacht.
Records. Tel varianten, niet producten. 3.000 producten met gemiddeld 5 varianten zijn 15.000 records, want elke variant heeft een eigen voorraad en een eigen artikelnummer.
Aanroepen per record. Staat de voorraad in het ene endpoint en de prijs in het andere, dan kost een artikel 2 aanroepen en wordt 250 minuten 500 minuten.
Limiet. Een API heeft er vaak meer dan één. Exact Online telt per minuut en per dag. Bij 5.000 aanroepen per dag duren 15.000 aanroepen drie dagen, hoe snel je ze ook verstuurt. Het laagste plafond bepaalt de doorvoer.
Echte plafonds per systeem
De getallen hieronder komen uit de documentatie van de leveranciers, gecontroleerd op 3 oktober 2026.
| Systeem | Limiet | 15.000 artikelen één voor één | Gebundeld |
|---|---|---|---|
| Exact Online | 60 per minuut en 5.000 per dag, per app per administratie | 250 minuten volgens de minuutlimiet, 3 dagen volgens de daglimiet | 15 aanroepen: 1.000 records per aanroep via bulk of sync |
| Shopify, REST Admin API | 2 per seconde, emmer van 40, op een standaard abonnement | 15.000 / 2 = 7.500 seconden = 125 minuten | niet van toepassing |
| Shopify, GraphQL Admin API | 100 punten per seconde, maximaal 1.000 punten per query, lijsten tot 250 items | niet van toepassing | 15.000 / 250 = 60 aanroepen |
| Picqer | 500 per minuut per API-sleutel | 15.000 / 500 = 30 minuten | niet van toepassing |
Exact Online publiceert deze grenzen op de pagina API limits. Gewone endpoints geven daar 60 records per pagina terug, bulk- en sync-endpoints 1.000. Shopify noemt de REST Admin API sinds 1 oktober 2024 legacy en rekent in GraphQL met kosten per query in plaats van met een aantal aanroepen. Picqer kan de 500 per minuut tijdelijk verlagen als het platform druk is.
Er is ook een plafond dat niet in een API zit maar in de koppeling zelf. Een standaardkoppeling die voorraad in een vaste lus scant, bijvoorbeeld 10 producten per 5 minuten, verwerkt 120 producten per uur. Dat lijkt op elke 5 minuten synchroniseren. Per artikel is het iets anders:
| Catalogus | Volledige ronde bij 120 per uur |
|---|---|
| 1.000 producten | 8 uur en 20 minuten |
| 5.000 producten | bijna 42 uur |
| 15.000 producten | 125 uur, ruim 5 dagen |
| 20.000 producten | bijna 7 dagen |
Een artikel dat net gescand is en daarna uitverkoopt, staat bij 5.000 producten nog 42 uur als leverbaar in de webshop.
Hoe je de som verandert
De limiet ligt vast. De andere twee getallen niet.
Bundelen. Meer records per aanroep. Bij Exact Online 1.000 in plaats van 60 per pagina: 15 aanroepen in plaats van 250 voor dezelfde 15.000 artikelen. Bij Shopify 250 voorraadregels in één GraphQL-mutatie in plaats van één artikel per aanroep.
Delta in plaats van alles. Alleen ophalen wat gewijzigd is. De sync-endpoints van Exact Online werken met een Timestamp: je geeft de laatste waarde mee en krijgt alleen nieuwe en gewijzigde records terug. Verwijderde records zitten daar niet in. Die komen uit een apart endpoint, en een koppeling die dat overslaat laat verwijderde artikelen in de webshop staan.
Delta werkt niet overal voor voorraad. Veel ERP's zetten de wijzigingsdatum van een artikel alleen bij een wijziging in omschrijving of prijs, niet bij een voorraadmutatie. Een delta op artikelniveau mist dan elke verkoop en elke ontvangst. De oplossing is een bron die voorraadmutaties zelf markeert, zoals sync/Inventory/StockPositions bij Exact Online, met een volledige ronde per nacht als vangnet.
Snellopers eerst. Niet elk artikel verdient hetzelfde tempo. Neem 15.000 artikelen waarvan 1.500 snellopers. De snellopers elke 10 minuten en de overige 13.500 elke 4 uur is 1.500 x 6 + 13.500 / 4 = 12.375 records per uur. Alles elke 10 minuten is 90.000 records per uur. Bij 250 records per aanroep is dat 50 tegen 360 aanroepen per uur.
Spreiden. 5.000 aanroepen per dag is gemiddeld 208 per uur. Een nachtelijke prijsronde die er 2.000 gebruikt, laat voor de rest van de dag 3.000 over. Zware rondes plan je buiten de uren waarin orders binnenkomen. Hoe je per stroom het tempo kiest staat in realtime of batch.
Parallel werken helpt beperkt. Business Central verwerkt per gebruiker 5 aanvragen tegelijk, NetSuite op het Standard-niveau 5 per account, gedeeld met elke andere koppeling op dat account. Tien processen naast elkaar leveren daar geen dubbele doorvoer op, wel geweigerde aanvragen.
Piekdagen
Een koppeling die op een gewone dinsdag ruim binnen de limiet blijft, kan op de drukste dag van het jaar vastlopen. Reken het door voor Exact Online met 150 orders per dag.
- Orders: 150 x 4 aanroepen = 600. De vier zijn: debiteur opzoeken, artikel-ID opzoeken voor gemiddeld 2 orderregels, order aanmaken.
- Voorraad: een delta elke 10 minuten is 144 rondes x 2 aanroepen = 288.
- Prijzen en artikelen, per nacht: 30.
Samen 918 van de 5.000. Op een piekdag met tien keer zoveel orders wordt de eerste regel 1.500 x 4 = 6.000 en het totaal 6.318. Het dagbudget is op bij order 1.170, want (5.000 min 318) / 4 = 1.170. De overige 330 orders komen pas de volgende dag in het ERP.
De limiet verandert niet, het aantal aanroepen per order wel. Houdt de koppeling de artikel-ID's in een eigen tabel bij, dan vallen de 2 opzoekacties per order weg en kost een order 2 aanroepen. Dezelfde piekdag komt dan op 3.000 + 318 = 3.318, met 1.682 aanroepen over voor herhaalpogingen.
De minuutlimiet telt ook mee. Komen er 200 orders in 10 minuten binnen, dan zijn dat bij 2 aanroepen per order 400 aanroepen. Bij 60 per minuut duurt het verwerken 6 minuten en 40 seconden. De orders staan zolang in een wachtrij en de webshop merkt er niets van. Zonder wachtrij krijgt order 31 in die minuut een 429 terug. Wat er dan gebeurt staat in wat is een rate limit.
API-limieten en een ronde met 15.000 artikelen
Elke API begrenst hoeveel verzoeken je per seconde, per minuut of per dag mag doen. Die grens bepaalt hoe lang een ronde duurt, en daarmee hoe actueel je webshop is.
| Systeem | Limiet | Gevolg voor de koppeling |
|---|---|---|
| Exact Online | 60 verzoeken per minuut en 5.000 per dag, per administratie | boven 5.000 artikelen past een volledige ronde niet in één dag als elk artikel een eigen verzoek kost |
| Shopify | 100 kostenpunten per seconde, 200 op Advanced, 1.000 op Plus; één query kost maximaal 1.000 punten | grote aantallen gaan via bulkbewerkingen, niet via losse queries |
| Picqer | 500 verzoeken per minuut, 100 resultaten per verzoek | 15.000 producten ophalen kost 150 verzoeken |
De getallen zijn op 3 oktober 2026 nagelezen in de documentatie van Shopify, Picqer en Exact Online.
Een rekenvoorbeeld. Een groothandel heeft 15.000 artikelen in het ERP. De API staat 60 verzoeken per minuut toe.
- Een artikel per verzoek. 15.000 verzoeken gedeeld door 60 is 250 minuten: 4 uur en 10 minuten voor één ronde. Bij een daglimiet van 5.000 verzoeken duurt dezelfde ronde drie dagen.
- Alleen wat gewijzigd is. Bij 600 wijzigingen sinds de vorige ronde zijn het 600 verzoeken: 10 minuten.
- 100 artikelen per verzoek. 150 verzoeken: 2,5 minuut.
De koppeling combineert de laatste twee: per ronde alleen de wijzigingen, in zo groot mogelijke pagina's, met een wachtrij die de verzoeken over de minuut spreidt. Loopt hij toch tegen de grens, dan antwoordt de API met een 429. Bij Exact Online ziet dat er zo uit:
HTTP/1.1 429 Too Many Requests
X-RateLimit-Minutely-Limit: 60
X-RateLimit-Minutely-Remaining: 0
X-RateLimit-Limit: 5000
X-RateLimit-Remaining: 3812
De koppeling leest die regels uit, wacht tot de minuut voorbij is en gaat verder waar hij was. De eerste twee regels zijn de minuutlimiet, de laatste twee het dagbudget: er zijn vandaag nog 3.812 verzoeken over. De som voor je eigen aantallen maak je met doorvoer berekenen; wat een limiet precies is staat in wat is een rate limit.
Toegang en limieten per systeem
Drie verschillen die de opzet van een koppeling bepalen. Exact Online geeft toegang per administratie: een tweede administratie is een tweede verbinding met een eigen limiet van 60 verzoeken per minuut. AFAS werkt met GetConnectoren om te lezen en UpdateConnectoren om te schrijven, en de beheerder van AFAS stelt ze beschikbaar voordat er iets gekoppeld kan worden. Picqer heeft een open API met 500 verzoeken per minuut en webhooks, en leest zelf geen leveranciersbestanden in.
Wat betekent dit voor je koppeling?
Wij maken deze som voordat er iets gebouwd wordt: het aantal artikelen en varianten, het aantal orders op een gewone dag en op je drukste dag, en de limieten van de systemen die je gebruikt. Daaruit volgt welke stroom gebundeld gaat, welke als delta en hoe groot de wachtrij moet zijn. In het dashboard zie je per ronde hoeveel records verwerkt zijn en hoe lang dat duurde.
Voor voorraad staat de uitwerking op voorraad koppelen. Hoe de stromen tussen webshop en ERP samenhangen lees je in je webshop koppelen aan je ERP. Wil je de som voor jouw aantallen zien, stuur ze dan in.
Veelgestelde vragen
Hoe lang duurt het om 15.000 artikelen te synchroniseren?
Eén voor één bij 60 aanroepen per minuut: 15.000 gedeeld door 60 is 250 minuten, dus 4 uur en 10 minuten. Met een endpoint dat 1.000 records per aanroep teruggeeft zijn het 15 aanroepen en is de ronde binnen een minuut klaar. De limiet is dezelfde, de manier van vragen verschilt.
Wat is het verschil tussen een volledige synchronisatie en een delta?
Een volledige synchronisatie haalt elk record op, een delta alleen wat sinds de vorige ronde gewijzigd is. Bij 15.000 artikelen waarvan er 200 per uur wijzigen scheelt dat een factor 75 in records. Een delta mist wel verwijderde records en wijzigingen die de bron niet markeert, dus een periodieke volledige ronde blijft nodig.
Waarom loopt mijn voorraad uren achter terwijl de koppeling elke 5 minuten draait?
Omdat elke 5 minuten draaien niet betekent dat elk artikel elke 5 minuten wordt bijgewerkt. Een koppeling die per ronde 10 producten scant, doet er 120 per uur. Bij 1.000 producten komt elk artikel dan eens per ruim 8 uur aan de beurt, bij 15.000 producten eens per 125 uur.
Helpt het om meer aanroepen tegelijk te doen?
Tot de grens die het systeem aan gelijktijdige aanvragen stelt. Business Central verwerkt per gebruiker 5 aanvragen tegelijk, NetSuite op het Standard-niveau 5 per account. Een zesde gelijktijdige aanvraag wacht of wordt geweigerd. Bij een limiet per minuut of per dag verandert parallel werken de som niet.
Wat gebeurt er als het dagbudget van een API op is?
De API weigert elke volgende aanroep met een 429 tot het nieuwe venster begint. Bij Exact Online is dat het begin van de volgende dag. Orders en wijzigingen blijven in de wachtrij staan en worden daarna verwerkt. Zie wat is een rate limit.
Vertel wat je nodig hebt
Vertel welke systemen je gebruikt en wat je wilt verbeteren. Je krijgt binnen één werkdag een persoonlijk antwoord. We helpen je de werkzaamheden helder te krijgen en spreken de prijs en planning af voordat je iets toezegt.
- Je weet de prijs en de doorlooptijd voordat je iets toezegt
- Wij zoeken uit welke koppeling het werk uit handen neemt
- Wij verzorgen de bouw, hosting, bewaking en het onderhoud
- Je team krijgt minder overtypwerk en minder uitzoekwerk