Sharepoint List Metadata column - Graph API

Julio Bellano 0 Reputation points
2025-12-18T02:06:16.71+00:00

Hi, I am developing an app using Microsoft Graph API specifically for getting Sharepoint data.

I am having trouble to get one of the column from a list using this URL:
https://graph.microsoft.com/v1.0/sites/{site-id}/lists/{list-id}/items?$expand=fields

It's a managed metadata column and it's not inside the fields object when getting the API response.

Things I have tried:
Using the name instead of displayName
Specifically mention the column in expand=fields($select={columnName})
Specifically mention all column in expand=fields($select=*)

Note:
When I query the specific item https://graph.microsoft.com/v1.0/sites/{site-id}/lists/{list-id}/items/{items-id}
It will return the column that initially was not displayed on the previous url:

        "name": {
            "Label": "metadataLabel",
            "TermGuid": "metadataTermGuid",
            "WssId": metadataWssid
        },

Question:
Is there a way to get all the column (include the missing column) on the first url? (by changing list settings or adding headers etc)
Why is this happening because I have another list that also has managed metadata but it returns everything?

Microsoft 365 and Office | SharePoint | Development
0 comments No comments
{count} votes

1 answer

Sort by: Most helpful
  1. Matthew-P 7,945 Reputation points Microsoft External Staff Moderator
    2025-12-18T05:00:46.34+00:00

    Hi Julio Bellano

    Thank you for sharing the details. I completely understand how confusing it can be when the API behaves differently across lists. 

    From what you described, it seems you are encountering a behavior documented for FieldValueSet here: FieldValueSet properties – Microsoft Graph 

    When retrieving multiple list items via the Graph API, using select on expand=fields does not consistently include all complex field types, such as Managed Metadata. This is expected based on how FieldValueSet works internally. 

    Why does another list return everything? I tested with a basic list and confirmed that GET /sites/{site-id}/lists/{list-id}/items?$expand=fields can return Managed Metadata values in some cases.

    User's image

    So the difference you see (one list works, another doesn’t) is likely due to the number and type of fields being expanded in a single query especially when there are many lookup or complex columns. 

    Quick check: Do you have more than 12 lookup or complex columns in your list? This can affect how data is returned when expanding fields. 

    If you need reliable values for that managed metadata field, a practical workaround is: 

    1. Get item IDs: GET /sites/{site-id}/lists/{list-id}/items?$select=id 
    2. For each ID, call: GET /sites/{site-id}/lists/{list-id}/items/{item-id}?$expand=fields 

    The single‑item endpoint isn’t affected in the same way and will consistently return the full managed metadata object. 

    I hope the information I’ve shared gives you additional insight to clarify the issue. If you have any concerns, questions, or if I’ve misunderstood or explained anything unclearly, please feel free to reach out. I’m happy to assist further. 


    If the answer is partially helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".    

    Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.  

    You found this answer helpful.

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.