var listUrl = "https://<TENANT>.sharepoint.com/sites/site/_api/<SITE>/lists/getByTitle('<LIST>')" var url = `${listUrl}/items?$top=5000`; var fetchOptions = { headers: { "Accept": "application/json;odata=nometadata" } }; var response = await fetch(url, fetchOptions); var data = await response.json(); var items = data.value; var commentsPromises = items.map(async item => { var commentsUrl = `${listUrl}/items(${item.Id})/Comments()`; var commentsResponse = await fetch(commentsUrl, fetchOptions); if (commentsResponse.ok) { var commentsData = await commentsResponse.json(); item.Comments = commentsData.value; } else { item.Comments = []; } }); await Promise.all(commentsPromises); console.log(items);