Please help - can't get column_values?

I don’t work for monday.com so the below is based on my understanding of how GraphQL APIs would work in general and my experience with the monday.com API.

When it says nesting “items” in “boards” is “faster” its a little misleading.

A root query of items, boards, users, updates, whatevers has an intrinsic limit of 100 objects.

If you have 1000 item IDs, in the past you could fetch them all in one request by nesting items within the board. The items within board had a limit of 1000. In 2023-10, items_page is now required and has a limit of 500 - it also works differently.

EDIT: it has been brought to my attention that even the items within boards is limited to 100 item Ids. So that isn’t even faster.

It is this ability to fetch more items in a single request which made it “faster” - if you have more than 100 Ids to fetch in the past.

board.items_page.items with an array of a few item IDs is actually SLOWER than using items at the root. This is because the API resolver would first resolve the board, then use items_page to resolve a list of items (gets all item id then filters by the ids provided), then the items resolver to resolve the items themselves.

Using items at the root, with IDs uses the items resolver directly to resolve that list of IDs - esp. if it is less than 100 IDs. But even if you did have more you could execute two parallel requests for say 100 items (200 total) and it would still be faster than using boards for you.

Additionally if using items_page and you don’t specify a limit equal to the number of Ids provided, the API complexity goes WAY up because it processes as though its retrieving 500 items even though you’re only fetching 10. This is because the item_ids parameter of items_page is a filter of items fetched, not a request for specific item IDs.

1 Like