the Graph API is only returning 50 records regardless of the TOP parameter setting

Troy Cantrell 0 Reputation points
2025-11-17T19:56:09.6066667+00:00

In the Graph Explorer, I am trying to get detected apps, but it does not honor the TOP parameter.  I have tried different iterations of this, and none seem to actually work.  There is no error, but it only ever returns 50 records.  Is this a known issue?  

This is the call

https://graph.microsoft.com/v1.0/deviceManagement/detectedApps?$top=100&$skip=100&$select=deviceCount This is the odata link that is returned with 50 records.

"@odata.nextLink": "https://graph.microsoft.com/v1.0/deviceManagement/detectedApps?$top=100&$skip=150&$select=deviceCount"

If I dont specify the top, this is the odata next link:

"@odata.nextLink": "https://graph.microsoft.com/v1.0/deviceManagement/detectedApps?$top=100&$select=deviceCount&$skip=50"  

In either case, only 50 records are returned.

Developer technologies | .NET | Other
0 comments No comments
{count} votes

2 answers

Sort by: Most helpful
  1. Q&A Assist
    2025-11-17T19:57:33.75+00:00
    AI generated content. This question contains an answer created with AI from Q&A Assist. Learn more

    It seems that you are experiencing an issue with the Microsoft Graph API where the $top parameter is not returning the expected number of records. According to the documentation, the $top query parameter is used to specify the number of items to be included in the result, but the maximum number of items that can be returned is dependent on the specific API being called.

    In your case, it appears that the API is returning a maximum of 50 records regardless of the $top parameter setting. This behavior could be due to a limitation of the API or a specific configuration of the endpoint you are accessing.

    To troubleshoot this issue, you might consider the following steps:

    1. Check API Documentation: Verify the maximum limit for the specific endpoint you are using. Some endpoints may have hard limits on the number of records returned.
    2. Use Pagination: Since you are receiving an @odata.nextLink, you can continue to paginate through the results using the $skip parameter to retrieve additional records.
    3. Contact Support: If the behavior persists and you believe it is not aligned with the documentation, consider reaching out to Microsoft support for further assistance.

    If you continue to face this issue, it may be beneficial to provide feedback through the Graph Explorer or check for any known issues in the Microsoft Graph API documentation or forums.

    0 comments No comments

  2. Surya Amrutha Vaishnavi Lanka (INFOSYS LIMITED) 1,120 Reputation points Microsoft External Staff
    2025-11-18T13:13:06.6433333+00:00

    Thanks for reaching out! The behavior is by design: the Intune detectedApps API returns 50 items per page maximum, regardless of higher $top values. To retrieve more than 50, please follow the @odata.nextLink until it is absent. For efficiency, we recommend using $select to limit properties and $filter to narrow the dataset. If the total is needed up front, add $count=true with ConsistencyLevel: eventual to receive @odata.count.Here are some steps to fix it
    1.The Paging rule
    The Intune endpoint enforces a server-side max page size of 50.

    $top>50 is ignored; the service still returns 50 and a @odata.nextLink to fetch the next page.

    You must follow @odata.nextLink repeatedly until it’s absent.

    2.Page using @odata.nextLink until completion

    Do not build the next URL yourself—call the @odata.nextLink exactly as returned.
    3.Minimize payload
    Use $select= to return only needed properties

    Use $filter when possible to reduce the number of pages


Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.