Strategic Architecture: The primary WSO Investment Reporting API matrix exposes a collection of highly optimized, data-domain specific endpoints (Cash, Principal, Trade, Contract) via the base route: https://ir-api.wsoinsights.com/investment-reporting/request/. This pattern breaks up massive single datasets, drastically optimizing parsing speeds for downstream enterprise data warehouses. Every distinct functional path is mapped to a parallel metadata-driven schema endpoint (e.g., /request/schema) supporting dynamic data structure discoveries.
Change-Tracking & Delta Transmission Logic: Programmatic consumers can implement granular **Delta Reporting** to fetch modified data sets without handling complex timeline offsets manually. By submitting a valid GetRecordsAfterRecordIdentifier token inside the request JSON criteria, the gateway contextually evaluates the engine transaction timeline and yields only records containing localized inserts, updates, or deletions generated after that token. To ensure full data lineage continuity on deletes, downstream scripts should map the tracking keys: Delta_RecordIdentifier, Delta_RecordType, and Delta_SourceId.
Payload Optimization & Operational Boundaries: The Investment Reporting API handles request rules designed to finish sequences within a maximum execution window of 90 seconds. Large data extractions that risk crossing these boundaries should be sent to the legacy WSO Reporting engine.
- Payload Size Constraint: Response arrays are structurally capped at a maximum ceiling of **10 MB** (9,000,000 bytes). Exceeding this boundary outputs an explicit payload size exception. Developers should declare
"CompressData": trueinside the body root to toggle GZIP compression rules. - Batch Threshold Strategy: Execution blocks should be structured to query a maximum threshold of **10 portfolios** simultaneously, focus on a date filter span of **1 year or less**, or target a rolling delta scope of **1 week or less**.
- Concurrency Controls: The network architecture implements a hard ceiling limit of **5 concurrent active processes**. Launching concurrent operations above this limit returns an immediate **HTTP Status Code 428 Concurrency Limit Error**.