07-04-2022 03:08 AM
Hi community,
I am messing around with the Broadworks XSI API to extract data from the api to our own datawarehouse. I have the API up and running and I am getting data back. The only problem I have right now is that I am getting a limited set of results.
Say for example directories/CallLogs/Placed always returns 20 records.
directories/Enterprise says 1174 available records but returns only 50 records.
I have read the whole broadworks xsi guide but I cant find any parameters to instruct the API to get all records, with something like skip&take so I can loop through the data with a Python script.
Is there additional documentation out there (that for the life of me I can't find) that elaborates on the global usable request parameters?
I tried start=1, limit=1000
start=1, end=1000
skip=0, take=1000
I read that if the api doenst recognize the params it just ignores them.
This is the request I have setup right now:
Headers:
Authorization : Basic key
Content-type : application/json; charset=utf-8
Accept : application/json
Hoping that someone can point me in the right direction
Thanks!
Glenn
Solved! Go to Solution.
07-04-2022 05:02 AM
Looks like that documentation has the relevant bits missing. I have a loop that goes through the directories. If you look at the directories/enterprisecommon one in that document it shows start and result. From memory the enterprise one is the same as the enterprisecommon which didnt exist when I did my integration. But for enterprise the result size is up to a maximum of 50 at a time.
From a quick browse through i think the same should work for some of the call log directories too but I haven't tried them
07-04-2022 05:02 AM
Looks like that documentation has the relevant bits missing. I have a loop that goes through the directories. If you look at the directories/enterprisecommon one in that document it shows start and result. From memory the enterprise one is the same as the enterprisecommon which didnt exist when I did my integration. But for enterprise the result size is up to a maximum of 50 at a time.
From a quick browse through i think the same should work for some of the call log directories too but I haven't tried them
07-04-2022 05:36 AM
He mpcaddy, thanks for the insights! That means we can use the start param when we know the hard limit is for example 50 records. Then the loop would be something like:
1st run: start=1
2nd run: start 51
3rd run: start 101
repeat indefinitely untill no more records are returned
Unfortunately the CallLogs directories doesnt respond to the start param which is weird because the documentation describes it will return all call logs: This command is used to retrieve (GET method) or delete (DELETE method) all call logs.
This api is giving me headaches
07-04-2022 08:48 AM
Yep thats pretty much the process I have, loop through incrementing the start by 50 each time until I have all the entires.
I have a vague recollection of reading somewhere that only a small history of calls are in the call logs.
Yes the api gave me headaches and nightmares when I first set it up. Especially the long polling for events that was certainly driving me insane to begin with. Especially when its been set up with two ips and expects responses back to the same one that you received over the long polling as the other ip knows nothing about it!
But did eventually get it tracking through calls from call centers to users properly including transfers (for the most part). Been fairly stable too apart from when the provider is doing updates but that affects the whole thing not just my connector.
07-05-2022 12:13 AM
Thanks for your understanding, its nice to hear I am not the only one that is suffering
I accepted your post earlier as a solution
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide