<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: SharePoint REST API not returning all results in Power Query</title>
    <link>https://community.fabric.microsoft.com/t5/Power-Query/SharePoint-REST-API-not-returning-all-results/m-p/3761061#M123760</link>
    <description>&lt;P&gt;I found this blog post which has an updated script that works:&amp;nbsp;&lt;A href="https://hoosierbi.com/2022/11/12/updated-get-sharepoint-list-data-fast/" target="_blank"&gt;Updated – Get SharePoint List Data … Fast – Hoosier BI&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;let
  siteurl = "https://&amp;lt;your tenant url&amp;gt;/sites/&amp;lt;your site name&amp;gt;",  // use ... /sites/&amp;lt;your site name&amp;gt;/&amp;lt;your subsite name&amp;gt; if applicable                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
  listname = "&amp;lt;your list name&amp;gt;",
  itemcount = Json.Document(Web.Contents(siteurl, [RelativePath = "_api/web/lists/GetByTitle('" &amp;amp; listname &amp;amp; "')/items?$select=ID&amp;amp;$orderby=ID%20desc&amp;amp;$top=1", Headers = [Accept = "application/json"]]))[value]{0}[ID],
  StartIDs = List.Numbers(0, Number.RoundUp(itemcount / 5000), 5000),
  ConvertToTable = Table.FromList(StartIDs, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
  Add_EndIDs = Table.AddColumn(ConvertToTable, "Addition", each [Column1] + 4999, type number),
  RenamedColumns = Table.RenameColumns(Add_EndIDs, {{"Column1", "StartID"}, {"Addition", "EndID"}}),
  #"Changed Type" = Table.TransformColumnTypes(RenamedColumns, {{"StartID", type text}, {"EndID", type text}}),
  //Comment in only one of the fieldselect lines below, defining your select and expand columns using the example syntax shown                                                                                                                            
  fieldselect = "&amp;amp;$top=5000",  // all fields with no expansion                                                                                                                                                                                                                         
  //fieldselect = "&amp;amp;$top=5000&amp;amp;$select=ID,Title,Date,PersonColumn,ChoiceColumn,LookupColumn", // list desired fields (no expansion) -No Spaces!                                                                                                                                            
  //fieldselect = "&amp;amp;$top=5000&amp;amp;$select=ID,Title,Date,PersonColumn/LastName,PersonColumn/FirstName,ChoiceColumn,LookupColumn/Title,LookupColumn/Project,LookupColumn/ProjectStatus&amp;amp;$expand=PersonColumn,LookupColumn", //expand list fields - No Spaces!                                                                                                                                                                                                                                                    
  GetData = Table.AddColumn(#"Changed Type", "Items", each Json.Document(Web.Contents(siteurl, [RelativePath = "_api/web/lists/GetByTitle('" &amp;amp; listname &amp;amp; "')/items?$filter=(ID ge " &amp;amp; [StartID] &amp;amp; ") and (ID le " &amp;amp; [EndID] &amp;amp; ")" &amp;amp; fieldselect, Headers = [Accept = "application/json"]]))[value]),
  #"Removed Other Columns" = Table.SelectColumns(GetData, {"Items"}),
  #"Expanded Items" = Table.ExpandListColumn(#"Removed Other Columns", "Items")
in
  #"Expanded Items"&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;or this one which accomplishes the same thing&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;let
  siteurl = "https://&amp;lt;your tenant url&amp;gt;/sites/&amp;lt;your site name&amp;gt;",  // use ... /sites/&amp;lt;your site name&amp;gt;/&amp;lt;your subsite name&amp;gt; if applicable                                                                                                                                                                                                            
  listname = "&amp;lt;your list name&amp;gt;",
  //Comment in only one of the fieldselect lines below, defining your select and expand columns using the example syntax shown                                                                                                                            
  fieldselect = "&amp;amp;$top=5000", // all fields with no expansion                                                              
  //fieldselect = "&amp;amp;$top=5000&amp;amp;$select=ID,Title,Date,PersonColumn,ChoiceColumn,LookupColumn", // list desired fields (no expansion) -No Spaces!                                                                                                                                            
  //fieldselect = "&amp;amp;$top=5000&amp;amp;$select=ID,Title,Date,PersonColumn/LastName,PersonColumn/FirstName,ChoiceColumn,LookupColumn/Title,LookupColumn/Project,LookupColumn/ProjectStatus&amp;amp;$expand=PersonColumn,LookupColumn",  //expand list fields - No Spaces!                                                                                                   
  InitialWebCall = Json.Document(Web.Contents(siteurl, [RelativePath = "_api/web/lists/GetByTitle('" &amp;amp; listname &amp;amp; "')/items?$skipToken=Paged=TRUE" &amp;amp; fieldselect, Headers = [Accept = "application/json"]])),
  datalist = List.Generate(() =&amp;gt; InitialWebCall, each List.Count([value]) &amp;gt; 0, each try Json.Document(Web.Contents(siteurl, [RelativePath = "_api" &amp;amp; Text.AfterDelimiter([odata.nextLink], "_api"), Headers = [Accept = "application/json"]])) otherwise [value = {}], each [value]),
  #"Converted to Table" = Table.FromList(datalist, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
  #"Expanded Column1" = Table.ExpandListColumn(#"Converted to Table", "Column1")
in
  #"Expanded Column1"&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 13 Mar 2024 15:15:06 GMT</pubDate>
    <dc:creator>mkubala</dc:creator>
    <dc:date>2024-03-13T15:15:06Z</dc:date>
    <item>
      <title>SharePoint REST API not returning all results</title>
      <link>https://community.fabric.microsoft.com/t5/Power-Query/SharePoint-REST-API-not-returning-all-results/m-p/3749352#M123252</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I found the below code to use the SharePoint REST API to pull in large amounts of data from a SharePoint library. I have a document library with over 130,000 documents that I want to create a simple report from. Invoking the function seems to work, but when I do a descending sort on the Created date, it only has documents up to 9/12/2023 and there are a lot more recent documents than that. Am I getting throttled? Is there some way to see that in Power BI? Or maybe there is something off with the code, but I'm not familiar with Power Query so I can't tell. Any help would be appreciated.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;let&lt;BR /&gt;Source = (tenant_name,site_name,list_name)=&amp;gt;&lt;BR /&gt;let&lt;BR /&gt;tenantname = tenant_name,&lt;BR /&gt;sitename = site_name, // if a subsite use "Site/SubSite"&lt;BR /&gt;listname = list_name,&lt;BR /&gt;baseurl = "https://" &amp;amp; tenantname &amp;amp; ".sharepoint.com/sites/" &amp;amp; sitename &amp;amp; "/_api/web/lists/GetByTitle('" &amp;amp; listname &amp;amp; "')/",&lt;BR /&gt;itemcount = Json.Document(Web.Contents(baseurl&amp;amp;"ItemCount", [Headers=[Accept="application/json"]]))[value],&lt;BR /&gt;skiplist = List.Numbers(0, Number.RoundUp(itemcount/5000), 5000),&lt;BR /&gt;#"Converted to Table" = Table.FromList(skiplist, Splitter.SplitByNothing(), null, null, ExtraValues.Error),&lt;BR /&gt;#"Renamed Columns" = Table.RenameColumns(#"Converted to Table",{{"Column1", "Skip"}}),&lt;BR /&gt;#"Changed Type" = Table.TransformColumnTypes(#"Renamed Columns",{{"Skip", type text}}),&lt;BR /&gt;fieldselect = "&amp;amp;$top=5000", // all fields with no expansion&lt;BR /&gt;#"Added Custom" = Table.AddColumn(#"Changed Type", "Items", each Json.Document(Web.Contents(baseurl&amp;amp; "items?$skipToken=Paged=TRUE%26p_ID=" &amp;amp; [Skip] &amp;amp; fieldselect, [Headers=[Accept="application/json"]]))),&lt;BR /&gt;#"Expanded Items" = Table.ExpandRecordColumn(#"Added Custom", "Items", {"value"}, {"value"}),&lt;BR /&gt;#"Expanded value" = Table.ExpandListColumn(#"Expanded Items", "value")&lt;BR /&gt;&lt;BR /&gt;in&lt;BR /&gt;#"Expanded value"&lt;BR /&gt;in&lt;BR /&gt;Source&lt;/P&gt;</description>
      <pubDate>Thu, 07 Mar 2024 17:01:54 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Power-Query/SharePoint-REST-API-not-returning-all-results/m-p/3749352#M123252</guid>
      <dc:creator>mkubala</dc:creator>
      <dc:date>2024-03-07T17:01:54Z</dc:date>
    </item>
    <item>
      <title>Re: SharePoint REST API not returning all results</title>
      <link>https://community.fabric.microsoft.com/t5/Power-Query/SharePoint-REST-API-not-returning-all-results/m-p/3749677#M123273</link>
      <description>&lt;P&gt;Have you considered using the SharePoint Bulk API instead?&lt;/P&gt;</description>
      <pubDate>Thu, 07 Mar 2024 21:29:41 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Power-Query/SharePoint-REST-API-not-returning-all-results/m-p/3749677#M123273</guid>
      <dc:creator>lbendlin</dc:creator>
      <dc:date>2024-03-07T21:29:41Z</dc:date>
    </item>
    <item>
      <title>Re: SharePoint REST API not returning all results</title>
      <link>https://community.fabric.microsoft.com/t5/Power-Query/SharePoint-REST-API-not-returning-all-results/m-p/3752143#M123361</link>
      <description>&lt;P&gt;I haven't heard of that before, but I'll look it up and give it a shot.&lt;/P&gt;</description>
      <pubDate>Fri, 08 Mar 2024 22:13:36 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Power-Query/SharePoint-REST-API-not-returning-all-results/m-p/3752143#M123361</guid>
      <dc:creator>mkubala</dc:creator>
      <dc:date>2024-03-08T22:13:36Z</dc:date>
    </item>
    <item>
      <title>Re: SharePoint REST API not returning all results</title>
      <link>https://community.fabric.microsoft.com/t5/Power-Query/SharePoint-REST-API-not-returning-all-results/m-p/3761061#M123760</link>
      <description>&lt;P&gt;I found this blog post which has an updated script that works:&amp;nbsp;&lt;A href="https://hoosierbi.com/2022/11/12/updated-get-sharepoint-list-data-fast/" target="_blank"&gt;Updated – Get SharePoint List Data … Fast – Hoosier BI&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;let
  siteurl = "https://&amp;lt;your tenant url&amp;gt;/sites/&amp;lt;your site name&amp;gt;",  // use ... /sites/&amp;lt;your site name&amp;gt;/&amp;lt;your subsite name&amp;gt; if applicable                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
  listname = "&amp;lt;your list name&amp;gt;",
  itemcount = Json.Document(Web.Contents(siteurl, [RelativePath = "_api/web/lists/GetByTitle('" &amp;amp; listname &amp;amp; "')/items?$select=ID&amp;amp;$orderby=ID%20desc&amp;amp;$top=1", Headers = [Accept = "application/json"]]))[value]{0}[ID],
  StartIDs = List.Numbers(0, Number.RoundUp(itemcount / 5000), 5000),
  ConvertToTable = Table.FromList(StartIDs, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
  Add_EndIDs = Table.AddColumn(ConvertToTable, "Addition", each [Column1] + 4999, type number),
  RenamedColumns = Table.RenameColumns(Add_EndIDs, {{"Column1", "StartID"}, {"Addition", "EndID"}}),
  #"Changed Type" = Table.TransformColumnTypes(RenamedColumns, {{"StartID", type text}, {"EndID", type text}}),
  //Comment in only one of the fieldselect lines below, defining your select and expand columns using the example syntax shown                                                                                                                            
  fieldselect = "&amp;amp;$top=5000",  // all fields with no expansion                                                                                                                                                                                                                         
  //fieldselect = "&amp;amp;$top=5000&amp;amp;$select=ID,Title,Date,PersonColumn,ChoiceColumn,LookupColumn", // list desired fields (no expansion) -No Spaces!                                                                                                                                            
  //fieldselect = "&amp;amp;$top=5000&amp;amp;$select=ID,Title,Date,PersonColumn/LastName,PersonColumn/FirstName,ChoiceColumn,LookupColumn/Title,LookupColumn/Project,LookupColumn/ProjectStatus&amp;amp;$expand=PersonColumn,LookupColumn", //expand list fields - No Spaces!                                                                                                                                                                                                                                                    
  GetData = Table.AddColumn(#"Changed Type", "Items", each Json.Document(Web.Contents(siteurl, [RelativePath = "_api/web/lists/GetByTitle('" &amp;amp; listname &amp;amp; "')/items?$filter=(ID ge " &amp;amp; [StartID] &amp;amp; ") and (ID le " &amp;amp; [EndID] &amp;amp; ")" &amp;amp; fieldselect, Headers = [Accept = "application/json"]]))[value]),
  #"Removed Other Columns" = Table.SelectColumns(GetData, {"Items"}),
  #"Expanded Items" = Table.ExpandListColumn(#"Removed Other Columns", "Items")
in
  #"Expanded Items"&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;or this one which accomplishes the same thing&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;let
  siteurl = "https://&amp;lt;your tenant url&amp;gt;/sites/&amp;lt;your site name&amp;gt;",  // use ... /sites/&amp;lt;your site name&amp;gt;/&amp;lt;your subsite name&amp;gt; if applicable                                                                                                                                                                                                            
  listname = "&amp;lt;your list name&amp;gt;",
  //Comment in only one of the fieldselect lines below, defining your select and expand columns using the example syntax shown                                                                                                                            
  fieldselect = "&amp;amp;$top=5000", // all fields with no expansion                                                              
  //fieldselect = "&amp;amp;$top=5000&amp;amp;$select=ID,Title,Date,PersonColumn,ChoiceColumn,LookupColumn", // list desired fields (no expansion) -No Spaces!                                                                                                                                            
  //fieldselect = "&amp;amp;$top=5000&amp;amp;$select=ID,Title,Date,PersonColumn/LastName,PersonColumn/FirstName,ChoiceColumn,LookupColumn/Title,LookupColumn/Project,LookupColumn/ProjectStatus&amp;amp;$expand=PersonColumn,LookupColumn",  //expand list fields - No Spaces!                                                                                                   
  InitialWebCall = Json.Document(Web.Contents(siteurl, [RelativePath = "_api/web/lists/GetByTitle('" &amp;amp; listname &amp;amp; "')/items?$skipToken=Paged=TRUE" &amp;amp; fieldselect, Headers = [Accept = "application/json"]])),
  datalist = List.Generate(() =&amp;gt; InitialWebCall, each List.Count([value]) &amp;gt; 0, each try Json.Document(Web.Contents(siteurl, [RelativePath = "_api" &amp;amp; Text.AfterDelimiter([odata.nextLink], "_api"), Headers = [Accept = "application/json"]])) otherwise [value = {}], each [value]),
  #"Converted to Table" = Table.FromList(datalist, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
  #"Expanded Column1" = Table.ExpandListColumn(#"Converted to Table", "Column1")
in
  #"Expanded Column1"&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 13 Mar 2024 15:15:06 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Power-Query/SharePoint-REST-API-not-returning-all-results/m-p/3761061#M123760</guid>
      <dc:creator>mkubala</dc:creator>
      <dc:date>2024-03-13T15:15:06Z</dc:date>
    </item>
  </channel>
</rss>

