🚀 How to Retrieve More Than 10,000 Items from SharePoint in Power Apps

Short Answer (Summary)
Power Apps cannot directly retrieve more than the delegation limit (max 2,000 per query), but you can load 10,000+ SharePoint items by breaking the data into batches, using index columns, and looping through ranges to build a full collection. This is a known workaround used by Power Apps makers.

    đź§© 2. Proven Methods to Retrieve 10,000+ Items
    ✅ Method 1 — Use an Index Column + Batch Retrieval (Most Reliable)
    This is the most widely used method for large lists.
    You add a numeric “Index” column in SharePoint (1,2,3,…10000) and retrieve items in 2,000‑record batches.

    Steps
    Add a Number column in SharePoint called Index.

    Populate it (Power Automate or script).

    In Power Apps, loop through ranges:

    powerapps
    Clear(colBigList);

    ForAll(
    Sequence(5), // 5 batches → 5 × 2000 = 10,000
    Collect(
    colBigList,
    Filter(
    ‘MySharePointList’,
    Index > ((Value – 1) * 2000) &&
    Index <= (Value * 2000)
    )
    )
    )

    Why it works
    Each batch uses a delegable filter (>, <, <=, >= on a number column).

    You can scale to 100k+ items by increasing the Sequence() count.

    ✅ Method 2 — Use a “Range Table” + ForAll Loop
    This method uses a helper table (local or SharePoint) that stores ranges like:

    RangeID Start End
    1 1 2000
    2 2001 4000
    3 4001 6000
    … … …
    Then loop through it:

    đź“‹ 3. Implementation Checklist
    Before Power Apps

    • Add Index column
    • Populate index values
    • Index the column in SharePoint
    • Confirm list has no non-delegable filters

    In Power Apps

    • Set delegation limit to 2000 (App settings → Advanced)
    • Use Sequence() to create batch loops
    • Use Filter() with delegable numeric comparisons
    • Collect batches into a single collection

    🎯 Final Takeaway
    You can retrieve more than 10,000 SharePoint items in Power Apps, but only by chunking the data into delegable batches using an indexed numeric column or a range table.