How to Download Attachments from SharePoint List Item using Microsoft Graph API

Samuel JN 66 Reputation points
2025-04-28T10:22:29.86+00:00

Dear Microsoft Support Team,

I use the Microsoft Graph API to interact with the SharePoint list. When I call the following endpoint:

GET https://graph.microsoft.com/v1.0/sites/{site-id}/lists/{list-id}/items/{item-id}?expand=fields(select=Title,Attachments)

I am able to retrieve information about whether attachments are available (with the Attachments field showing true or false). However, I could not find clear documentation on how to download the actual attachment files from the Sharepoint list.

Could you please guide me on the appropriate Microsoft Graph API endpoint or approach to download list item attachments.

Your support and guidance would be highly appreciated.

Regards,
Samuel

Microsoft Security | Microsoft Entra | Microsoft Entra ID

Answer accepted by question author
Sridevi Machavarapu 5,885 Reputation points Volunteer Moderator
2025-04-30T06:32:07.09+00:00

Hello Samuel JN,

I understand you're trying to download attachments from a SharePoint list item using Microsoft Graph.

You're correctly using this endpoint to check whether attachments exist or not:

GET https://graph.microsoft.com/v1.0/sites/{site-id}/lists/{list-id}/items/{item-id}?expand=fields(select=Title,Attachments)

enter image description here

This API confirms if attachments are present (true or false), but it doesn’t return the actual files.

Currently, Microsoft Graph does not support downloading attachments from SharePoint list items. As a workaround, you can use the SharePoint REST API, which does support this functionality.

To list all attachments for a list item, use:

GET https://{tenant}.sharepoint.com/sites/{site-name}/_api/web/lists/getbytitle('{list-title}')/items({item-id})/AttachmentFiles

enter image description here

To download a specific file, like logo.jpg, use below SharePoint REST API call:

GET https://{tenant}.sharepoint.com/sites/{site-name}/_api/web/lists/getbytitle('{list-title}')/items({item-id})/AttachmentFiles('logo.jpg')/$value

enter image description here

If you're using Postman, the file might be saved as response.bin. You can simply rename it to the original file name (such as logo.jpg), and it will open correctly.

You can find a related suggestion already posted on the Microsoft Feedback Portal:
https://feedbackportal.microsoft.com/feedback/idea/5272d0ff-74b2-ef11-95f5-6045bdbc7c39

Feel free to upvote it to help raise visibility. Many Microsoft Graph features are prioritized based on customer feedback, and with more demand, support for downloading list item attachments may be considered in future updates.

You can also check this related Microsoft Q&A thread confirming the limitation and workaround:

Hope this helps!


If this answers your query, do click Accept Answer and Yes for was this answer helpful, which may help members with similar questions.

User's image

If you have any other questions or are still experiencing issues, feel free to ask in the "comments" section, and I'd be happy to help.

Was this answer helpful?

1 person found this answer helpful.
0 comments No comments

0 additional answers

Sort by: Oldest

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.