Pagination and Filtering
6 min
list methods return one page at a time use request builders to control page size, sorting and filters defaults field default description page 0 zero based page index size 20 items requested per page sortby id sort field direction desc sort direction examples const request = new listdevicesrequestbuilder() page(0) size(50) sortby("id") direction(sortdirection desc) addfilter(devicefilter platform, "android", searchoperation equal) build(); const devices = await client devices() list(request);listdevicesrequest request = listdevicesrequest builder() page(0) size(50) sortby("id") direction(sortdirection desc) build(); pagedto\<device> devices = client devices() list(request); java sdk 1 0 0 request builders expose filters, but list methods currently send only pagination and sorting node js sends filters as well search operations operation use equal match the exact value not equal exclude the exact value greater than match values greater than the supplied value less than match values less than the supplied value filter fields use these published sdk constants instead of writing raw filter keys list java and node js constants devices devicefilter pool id , serial number , marketing name , model name , platform , os version , tags , state pools poolfilter name allocations allocationfilter allocation sessions sessionfilter allocation , session , serial , state screen records screenrecordfilter created at applications applicationfilter file key , file path , version , revision the java sdk version 1 0 0 spells the manufacturer constant as devicefilter menufacturer node js uses devicefilter manufacturer page result every list method returns pagedto\<t> with page , size , totalpages , totalelements and data to read every item, increase the page index until the last page avoid requesting an unbounded page size read every node js page let page = 0; while (true) { const result = await client devices() list( new listdevicesrequestbuilder() page(page) size(100) build() ); for (const device of result data) { console log(device serial); } if (page >= result totalpages 1) { break; } page += 1; } use a bounded page size to avoid large responses and request timeouts
