SyteLine IDO REST Paging Throughput Calculator
This calculator plans bulk reads through the SyteLine and CSI Mongoose IDO REST v2 load endpoint, where you page with recordcap, loadtype NEXT and the bookmark from the previous response. Enter your row count and two measured timings to see how many calls you need, how large each response is, and how long the whole read will take.
Your numbers
Do not use 0 (all rows) for large IDOs. -1 means the default of 200 rows.
Include JSON property names and quotes, which repeat on every row.
Network round trip plus request handling. Measure with a recordcap of 1.
Measure: time a large page, subtract the fixed overhead, divide by rows.
Only with independent, non-overlapping filters per stream.
Your results
A transparent planning model, not an Infor throughput figure. Measure the per-call overhead and per-row cost on your own system with test calls; IDO cost varies widely with custom load methods, calculated properties and filters.
Total minutes and KB per call vs recordcap
Sweeps recordcap (rows per call) from 100 to 5000, holding your other inputs fixed.
Fighting IDO timeouts?
Send us the IDO, filter and your measured call timings and we will suggest a paging and filter pattern that fits your SyteLine environment.
Optional. The tool and every export work without this. No spam.
How the paging works
The load call is GET /ido/load/{ido} on the IDO Request Service, with properties, filter, orderby and recordcap in the query string. recordcap sets how many rows one call returns: -1 gives the default of 200, 0 returns every row, any other number returns that many. The response contains Items, a Bookmark, and MoreRowsExist. To read the next page, send the same request with loadtype=NEXT and the bookmark you received; keep going until MoreRowsExist is false. loadtype also accepts FIRST, PREV and LAST. Because the bookmark carries the position in the ordered key, keep the orderby stable between calls, and use the IDO's key properties.
- Never use recordcap=0 against a large IDO such as material transactions
- Keep filter, orderby and properties identical across pages
- Request only the properties you need; every one adds payload on every row
The model behind the numbers
Each call costs a fixed overhead (network round trip, authentication check, IDO session handling) plus a per-row cost on the server. Seconds per page = (overhead ms + recordcap x per-row ms) / 1000. Pages = ceil(rows / recordcap). Total minutes = pages x seconds per page / streams / 60. Payload per page = recordcap x properties x bytes per value / 1024. The rule of thumb that falls out: tiny pages are dominated by the fixed overhead, so time drops quickly as recordcap rises; past a few hundred to a few thousand rows the curve flattens while payload and memory keep growing, and very large pages start to hit IDO runtime or proxy timeouts. Pick the knee of the curve, not the maximum.
Worked example
With the defaults, 50,000 rows at recordcap 500 need 100 calls. Each call takes 0.25 + 500 x 0.0004 = 0.45 seconds, so the read takes about 0.75 minutes on one stream, with about 117 KB per response and 11.4 MB in total. At recordcap 100 the same read needs 500 calls of 0.29 seconds, about 2.4 minutes, because overhead dominates. At recordcap 5,000 it needs 10 calls of 2.25 seconds, about 0.38 minutes, but each response is over 1 MB, which is where timeouts and memory pressure begin on a busy utility server.
Measuring your inputs and avoiding timeouts
Time a call with recordcap=1 a few times and take the median as the fixed overhead. Then time a call with recordcap=1000 and compute (time minus overhead) / 1000 for the per-row cost. IDOs with custom load methods, calculated properties or post-query methods (pqc) can be ten times slower per row than a plain table-backed IDO. A message such as timed out waiting for response from Mongoose usually means a single call is too heavy: reduce recordcap, drop properties, add a selective filter, or split the read into parallel streams by a key range. For a full historical load, a database extract is often the better tool than REST.
Frequently Asked Questions
What does recordcap do in the Mongoose REST API?
It sets the maximum rows returned by one load call. A value of -1 returns the default 200 rows, 0 returns all rows, and any other value returns up to that many. Combine it with loadtype=NEXT and the returned bookmark to page through larger result sets.
How do I get the next page from a SyteLine IDO load?
Read Bookmark and MoreRowsExist from the response. If MoreRowsExist is true, repeat the request with loadtype=NEXT and bookmark set to the returned value, keeping properties, filter and orderby unchanged. Stop when MoreRowsExist is false.
Why do I get timed out waiting for response from Mongoose?
The call took longer than the configured timeout, typically because recordcap is too large, the filter is not selective, or the IDO runs expensive custom logic per row. Reduce the page size and properties, filter on indexed key properties, and check the IDO runtime log for the slow method.
Should I use parallel calls to speed up a bulk read?
Only with non-overlapping filters, for example by site or key range, and only a few streams. Parallel calls compete for the same IDO runtime and database, so watch server load. Doubling streams roughly halves the elapsed time only while the server has spare capacity.
If you are wiring SyteLine IDOs into an AI assistant or integration on your own servers, we can help design the read pattern and keep it within your system's limits.
Related Tools
SyteLine IDO REST Request Generator
Fill in host, configuration, IDO, properties and filter to get ready-to-use REST calls for loading, updating and invoking methods on SyteLine IDOs.
Infor SyteLineSyteLine IDO Names Reference
Searchable list of common SyteLine IDO names with the underlying tables, to speed up REST integrations and form work.
Developer ToolsSyteLine Incremental Extract Query Generator
Writes the watermark table, delta SELECT, watermark update, delete detection and MERGE for loading one SyteLine table into a staging database with SSIS or any ETL tool.
Infor SyteLineSyteLine Integration Complexity Calculator
Estimate build hours, testing effort, cost, and timeline for your SyteLine integration portfolio based on architecture and data volume.
More Developer Tools tools
See all- SyteLine SQL Query Generator for Item, Job and Order Tables
- SyteLine SQL Blocking and Long Running Query Script Generator
- SyteLine Custom Table CREATE Script Generator
- SyteLine Mongoose Framework Events Reference
- SyteLine Event Action Types Reference
- SyteLine Event Action Parameter Functions Reference
- SyteLine WinStudio Standard Form Events Reference
- SyteLine Mongoose API Options Reference
- SyteLine SQL User-Defined Data Types Reference
Keep exploring
Free tools
- SyteLine ION API IDO Request GeneratorTurn a .ionapi backend service file into working PowerShell and curl calls that load SyteLine IDO data through ION API, including bookmark paging.
- SyteLine IDO REST Request GeneratorFill in host, configuration, IDO, properties and filter to get ready-to-use REST calls for loading, updating and invoking methods on SyteLine IDOs.
- SyteLine IDO Names ReferenceSearchable list of common SyteLine IDO names with the underlying tables, to speed up REST integrations and form work.
ERP fixes and how-tos
- Reporting in CloudSuite Industrial Multi-Tenant Without Direct SQL AccessNo direct database access in CloudSuite Industrial multi-tenant? Compare IDO REST, built-in reports and data lake extracts to replace SQL views.
- How to Add a Custom Method to a SyteLine IDO in C#How to expose a new server-side operation on a SyteLine IDO: define the method on the IDO Collection, implement it in C#, and call it safely.
- Private AI Layer for SyteLine On-Prem: Reference ArchitectureReference architecture to add a private AI assistant to SyteLine on-prem: data access paths, retrieval, permissions, sizing and rollout, no cloud needed.
Guides
- SyteLine REST API Integration GuideIntegrate SyteLine via REST APIs. IDO web services, authentication, payload design, and integration patterns for CloudSuite Industrial.
- SyteLine REST API Development: Working with IDO EndpointsPractical SyteLine REST API development guide: calling IDO endpoints over REST, token authentication, JSON payloads, filter syntax, and error handling.
- SyteLine REST API Development GuideBuild REST API integrations with Infor SyteLine. Access IDOs via REST endpoints, configure OAuth 2.0 authentication, and implement CRUD operations efficiently.
Integrations
- How to add Slack to Infor SyteLineConnect Slack to Infor SyteLine with slash commands, interactive approval messages and event alerts built on the IDO REST service, AES and ION.
- How to add a mobile app to Infor SyteLineBuild or extend a mobile app for Infor SyteLine: barcode scanning, labor reporting, inventory moves and approvals over IDO REST, with offline and device options.