SharePoint REST API: How to find the List or Library “__metadata” “type”

When using the SharePoint REST API to update objects such as lists or items, you will need to pass the “__metadata” “type”. This is generally straightforward, unless you encounter an anomaly, which I will attempt to describe.

For updating a list item, the “__metadata” “type” is usually “SP.Data.ListNameItem”, which is based on the list’s URL, for example: https://[tenant].SharePoint.com/sites/[site]/lists/listname. However, in some cases, I have seen the exact same API call (code) used in other Office 365 tenants where the required value is “SP.Data.ListNameListItem”.

Please refer to Microsoft’s ‘Update list item’ article for details on how to use the SharePoint API to update a list item.

I have no idea why these differences may exist, but here’s how I confirm that I have the correct value: Copy and paste the following URL into your favorite browser, replacing the values in square brackets to match your environment:

https://[tenant].sharepoint.com/sites/[site]/_api/web/lists/GetByTitle('[List Or Library Title]')

Next, search for the value between the ‘<d:ListItemEntityTypeFullName>’ tags:

<d:ListItemEntityTypeFullName>SP.Data.ListOrLibraryTitleItem</d:ListItemEntityTypeFullName>

And there you have it.

Alternatively, you can use the Microsoft Graph API as a “modern” and preferred method for SharePoint operations, which doesn’t require this knowledge but does require more upfront effort. See Microsoft’s ‘Updating Item’ article for more information on using the Graph API.

Categories

Recent Posts

  • How to sort an array using Power Automate
    Learn how to sort an array using Power Automate. In this post I share a Power Platform solution containing two example Cloud Flows demonstrating how an array can be sorted. I also briefly explore performance results of running actions in parallel verses serial with some surprising results.
  • How to Add and Remove Accounts from Multi-Select SharePoint Person and Group Fields
    Learn how to use the SharePoint API and Power Automate to add and remove accounts from multi-select Person and Group fields in SharePoint. Our step-by-step guide includes detailed illustrations and examples, as well as an optional Power Platform solution to help you deploy the solution to your tenant. Improve your SharePoint workflow management today!
  • Navigating Microsoft Power Automate Licensing: Challenges, Considerations, and Compliance
    Navigate the complexities of Microsoft Power Automate licensing with insights on challenges, considerations, and compliance. Learn about potential risks, licensing rules, and best practices for organizations using Power Automate. Get guidance on avoiding license breaches, managing premium connectors, and ensuring compliance with Microsoft licensing requirements. Stay informed and take proactive steps to maintain licensing compliance in Power Automate, regardless of your location. Discover practical strategies to optimize your Power Automate licensing and avoid potential pitfalls.
  • SharePoint REST API: How to find the List or Library “__metadata” “type”
    SharePoint REST API is a powerful tool for updating lists and items in SharePoint, but determining the correct “__metadata” “type” for API calls can be confusing. While it’s typically “SP.Data.ListNameItem” based on the list’s URL, there are cases where it may be “SP.Data.ListNameListItem” in certain Office 365 tenants. In this article, we will explore how to find the correct “__metadata” “type” when updating lists or libraries in SharePoint, and also highlight the alternative approach of using the Microsoft Graph API. By understanding this crucial aspect of SharePoint REST API, readers can ensure successful updates and avoid potential errors.
  • “The Age of #AI has begun” said Bill Gates
    March 2023 has been an extraordinary month with the launch of GPT-4 on March 14th, closely followed by #Microsoft’s launch of Copilot preview on March 16th, and Bill Gates’ article, “The Age of AI has begun,” on March 21st.
%d bloggers like this: