With Exact Online increasingly tightening resource usage for APIs, it is essential to monitor actual usage.
Note for 2021: Exact has announced that the API rate limits will be tightened in various aspects in July 2021. Read Impact Exact Online API adjustments July 1, 2021 for more information.*
The following query provides an overview per Exact Online company (“division”) of the remaining daily API calls across all sessions, as well as the uncompressed amount of data transported during the current session.
The first statement use
selects all Exact Online companies. You might want to select specific companies as a comma-separated list.
The second statement select
triggers a short API request for each Exact Online company to retrieve at most one unique journal. This API request returns the current maximum and remaining number of daily and minutely API calls, including rate limit reset times.
The third statement select
is the actual report. It collect for all divisions (each division is a partition) the remaining daily calls as well as the approximate number of uncompressed data transported between the Exact Online API clusters and the client.
The report works for both on-premise products such as Invantive Query Tool for Windows or Invantive Data Hub for Mac, as well as online products such as Invantive Bridge Online, Invantive App Online, Invantive Cloud or Get My Report.
use all@eol
--
-- Ensure at least one API call has been made
-- to each Exact Online division. Each API call
-- returns remaining API calls.
--
select *
from exactonlinerest..journals@eol
where code = 'x'
select spn.code
, spn.provider_data_container_alias
, rlt.DailyLastRemaining
, sio.bytes_received
, sio.bytes_sent
from SYSTEMPARTITIONS@DataDictionary spn
left
outer
join ratelimits@eol rlt
on rlt.division = to_number(spn.code)
left
outer
join ( select partition
, sum(bytes_sent)
bytes_sent
, sum(bytes_received)
bytes_received
from SESSIONIOS@DataDictionary sio
where sio.data_container_alias = 'eol'
and sio.partition is not null
group
by partition
) sio
on sio.partition = spn.code
where spn.provider_data_container_alias = 'eol'
and spn.is_selected = true
order
by spn.code
The results resemble: