Изучив документы API Я думаю, что вы можете использовать ItemLookup, если хотите получить результаты для нескольких UPC.
ItemLookup itemLookup = new ItemLookup(){
AssociateTag = "myaffiliatetag-20"
};
itemLookup.AWSAccessKeyId = MY_AWS_ID;
ItemLookupRequest itemLookupRequest = new ItemLookupRequest();
itemLookupRequest.IdTypeSpecified = true;
itemLookupRequest.IdType = ItemLookupRequestIdType.UPC;
itemLookupRequest.ItemId = new String[] { "9120031340300", "9120031340270" };
itemLookupRequest.ResponseGroup = new String[] { "OfferSummary" };
itemLookup.Request = new ItemLookupRequest[] { itemLookupRequest };
ItemLookupResponse response = client.ItemLookup(itemLookup);
foreach(var item in response.Items[0])
{
//Do something...
Console.WriteLine(item.ItemAttributes.Title);
}
При этом, если вы не работаете с поисками по некоторому идентификатору (UPC, ASIN и т. Д.), То ваш исходный код выполнения пакетного поиска по ключевым словам, по-видимому, является единственным способом сделать несколько запросов по ключевым словам в один запрос (что я смог найти ..). Если вы выполняете поиск по ключевым словам, вы всегда можете создать метод генератора ItemSearchRequest, чтобы сократить дублирующийся код при создании кратных.