Always page through list endpoints. Request an explicit per_page, then follow pagination.next until it is null instead of guessing page counts. Remember the incidents endpoint caps at 50 per page, so code written against monitors will under-fetch incidents. Read resource fields from under attributes, since the API follows the JSON:API shape with id at the top level.

Context: Official docs (pagination of API lists): documents the pagination behavior agents get wrong when listing monitors. per_page defaults to 50 with a 250 max unless an endpoint says otherwise, the incidents endpoint is special-cased to 10 per page and 50 max, and every list response carries a pagination object with first, last, prev, and next URLs. Assuming one page holds everything silently drops monitors.