Serveur MCP

Plendio price comparison

com.plendio/plendio
Commerce et retail Public et accessible MCP 2025-11-25

Ce que fait ce MCP

Searches products and compares shop prices, shipping, availability, and price history across several European markets.

add_to_wishlist
Add products to a wishlist
Adds products to a wishlist made earlier, given its edit link or the token at the end of it. A product already on the list keeps its place and takes the new note. A list holds at most 50 products; unknown or unavailable products, and products that no longer fit, are reported and not added. Returns the list's items with their best current prices. The token stops working once the list has been saved to a Plendio account.
Destructif Accès externe Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['edit_token', 'items'], 'properties': {'items': {'type': ['null', 'array'], 'items': {'type': 'object', 'properties': {'note': {'type': 'string', 'maxLength': 140, 'description': 'Optional short note shown with the product, e.g. a size or colour. Up to 140 characters; markup and links are removed.'}, 'slug': {'type': 'string', 'maxLength': 300, 'description': "Alternative to product_id: the product's url, or the slug-and-id at its end (acme-book-15-42). The number after the last dash is the id."}, 'product_id': {'type': 'integer', 'minimum': 1, 'description': 'Plendio product id (the id field of a search result).'}}, 'additionalProperties': False}, 'maxItems': 50, 'minItems': 1, 'description': 'The products to add: 1 to 50. A product already on the list keeps its place and takes the new note.'}, 'market': {'enum': ['dk', 'se', 'de', 'no'], 'type': 'string', 'description': 'Market for the urls in the answer: dk, se, de or no. Default: the market the list was made for.'}, 'edit_token': {'type': 'string', 'maxLength': 300, 'minLength': 20, 'description': "The wishlist's edit link as returned when it was created, or just the token at the end of it."}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', 'required': ['title', 'market', 'share_url', 'item_count', 'items'], 'properties': {'added': {'type': ['null', 'array'], 'items': {'type': 'integer'}, 'description': 'Product ids put on the list.'}, 'items': {'type': ['null', 'array'], 'items': {'type': 'object', 'required': ['product_id', 'title', 'available', 'url'], 'properties': {'url': {'type': 'string', 'description': "The product's page on Plendio, listing all its offers."}, 'note': {'type': 'string', 'description': 'Text written by whoever made the list.'}, 'title': {'type': 'string'}, 'currency': {'type': 'string', 'description': 'ISO 4217 currency of price_from.'}, 'available': {'type': 'boolean', 'description': 'False for a product that has left the catalogue or has no offer now.'}, 'price_from': {'type': ['null', 'number'], 'description': 'Cheapest current price in the catalogue, in major units of currency; absent when no shop lists one.'}, 'product_id': {'type': 'integer'}}, 'additionalProperties': False}}, 'notes': {'type': ['null', 'array'], 'items': {'type': 'string'}}, 'title': {'type': 'string', 'description': "The list's name, written by whoever made it."}, 'market': {'type': 'string'}, 'removed': {'type': ['null', 'array'], 'items': {'type': 'integer'}, 'description': 'Product ids taken off the list.'}, 'currency': {'type': 'string', 'description': 'Currency of total_from.'}, 'share_url': {'type': 'string', 'description': "The list's page on Plendio, read-only."}, 'item_count': {'type': 'integer'}, 'not_stored': {'type': ['null', 'array'], 'items': {'type': 'object', 'required': ['product', 'reason'], 'properties': {'reason': {'type': 'string'}, 'product': {'type': 'string', 'description': 'What was given for the product (its id or slug).'}}, 'additionalProperties': False}, 'description': 'Products that could not be added, with the reason.'}, 'total_from': {'type': ['null', 'number'], 'description': 'Sum of price_from over the available items; absent when their currencies differ or none has a price.'}, 'not_on_list': {'type': ['null', 'array'], 'items': {'type': 'integer'}, 'description': 'Product ids that were not on the list.'}, 'already_on_list': {'type': ['null', 'array'], 'items': {'type': 'integer'}, 'description': 'Product ids that were already on the list (their note was updated).'}}, 'additionalProperties': False}
compare_prices
Compare prices
Returns the shops selling one product, one offer per shop (its best, with a count of its other offers), cheapest first by total price including shipping (price alone where a shop's shipping is unknown), with each amount also converted to the market's currency. Offers that are in stock come first. Out-of-stock offers are left out unless include_out_of_stock is true, and only shops that ship to the market are listed unless include_other_markets is true. The result includes the url of the product's Plendio page.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['product_id'], 'properties': {'market': {'enum': ['dk', 'se', 'de', 'no'], 'type': 'string', 'description': 'Market the shopper is in: dk, se, de or no. Default: the market of the site you connected to.'}, 'product_id': {'type': 'integer', 'minimum': 1, 'description': 'Plendio product id (the id field of a search result, or the number at the end of a Plendio product URL).'}, 'include_out_of_stock': {'type': 'boolean', 'description': 'Also list offers that are out of stock or discontinued. Default false: only offers a shopper can order now.'}, 'include_other_markets': {'type': 'boolean', 'description': 'Also list shops not known to ship to the market. Default false.'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', 'required': ['id', 'title', 'url', 'market', 'currency', 'offers', 'offers_omitted', 'out_of_stock_omitted'], 'properties': {'id': {'type': 'integer'}, 'url': {'type': 'string', 'description': "The product's page on Plendio, listing all its offers."}, 'notes': {'type': ['null', 'array'], 'items': {'type': 'string'}}, 'title': {'type': 'string'}, 'market': {'type': 'string'}, 'offers': {'type': ['null', 'array'], 'items': {'type': 'object', 'required': ['shop', 'shop_host', 'price', 'currency', 'availability', 'ships_to_market'], 'properties': {'shop': {'type': 'string', 'description': "The shop's name."}, 'price': {'type': 'number', 'description': 'Item price in major units of currency, including VAT.'}, 'total': {'type': ['null', 'number'], 'description': 'Price plus shipping; absent when shipping is unknown (then compare on price alone).'}, 'currency': {'type': 'string', 'description': 'ISO 4217 currency the shop prices in.'}, 'shipping': {'type': ['null', 'number'], 'description': 'Shipping cost to the market in major units; 0 is free shipping; absent when unknown.'}, 'condition': {'type': 'string', 'description': 'new, refurbished or used, when the shop says.'}, 'last_seen': {'type': 'string', 'description': 'When Plendio last saw this price (RFC 3339).'}, 'shop_host': {'type': 'string', 'description': "The shop's domain."}, 'more_offers': {'type': 'integer', 'description': "How many further offers this shop has for the product (other colours or variants, dearer or out of stock); only this shop's best one is listed."}, 'price_stale': {'type': 'boolean', 'description': 'True when the price was not confirmed recently; check it at the shop.'}, 'availability': {'type': 'string', 'description': 'in_stock, out_of_stock, preorder, backorder, discontinued or unknown.'}, 'price_market': {'type': ['null', 'number'], 'description': 'price converted to market_currency (equal to price when the shop prices in that currency); absent when no exchange rate is available.'}, 'shop_country': {'type': 'string', 'description': 'ISO 3166 country the shop is in.'}, 'total_market': {'type': ['null', 'number'], 'description': 'total converted to market_currency.'}, 'delivery_days': {'type': 'string', 'description': 'Estimated delivery, e.g. "1-3" days, when known.'}, 'market_currency': {'type': 'string', 'description': "The market's currency price_market and total_market are in."}, 'ships_to_market': {'type': 'string', 'description': 'Whether the shop delivers to the market: yes (the shop or its platform says so), probably, no, or unknown.'}}, 'additionalProperties': False}, 'description': 'Cheapest first, by total price including shipping (price alone where shipping is unknown).'}, 'currency': {'type': 'string', 'description': 'Currency of the market.'}, 'price_history': {'type': ['null', 'object'], 'required': ['currency', 'lowest', 'average', 'highest', 'since', 'days', 'scope'], 'properties': {'days': {'type': 'integer', 'description': 'Length of the recorded history in days (at most 365).'}, 'scope': {'type': 'string', 'description': 'What the history covers.'}, 'since': {'type': 'string', 'description': 'First day of the recorded history (YYYY-MM-DD).'}, 'lowest': {'type': 'number'}, 'average': {'type': 'number'}, 'current': {'type': ['null', 'number'], 'description': 'Cheapest price now; absent when nobody sells it.'}, 'highest': {'type': 'number'}, 'currency': {'type': 'string'}}, 'additionalProperties': False}, 'offers_omitted': {'type': 'integer', 'description': 'Offers left out because their shop does not ship to the market.'}, 'out_of_stock_omitted': {'type': 'integer', 'description': 'Offers left out because they are out of stock or discontinued (set include_out_of_stock to list them).'}}, 'additionalProperties': False}
create_wishlist
Create a shareable wishlist
Creates a shareable wishlist ("ønskeseddel") on Plendio from products a person has picked, for example gifts found with a search, once they want a list to send to family or friends. Takes a title (up to 80 characters), a market and 1 to 50 products by Plendio id, each with an optional note of up to 140 characters. Returns two links, a read-only share link to the list's page on Plendio and a private edit link for changing the list and saving it to a Plendio account, together with the list's items and their best current prices. No login is needed and no personal data is collected. Unknown or unavailable products are reported and not stored. The edit link is a secret: anyone who holds it can change the list. A list that is not viewed or edited for 90 days is deleted. Each request creates a new list.
Accès externe
Schéma d’entrée
{'type': 'object', 'required': ['title', 'items'], 'properties': {'items': {'type': ['null', 'array'], 'items': {'type': 'object', 'properties': {'note': {'type': 'string', 'maxLength': 140, 'description': 'Optional short note shown with the product, e.g. a size or colour. Up to 140 characters; markup and links are removed.'}, 'slug': {'type': 'string', 'maxLength': 300, 'description': "Alternative to product_id: the product's url, or the slug-and-id at its end (acme-book-15-42). The number after the last dash is the id."}, 'product_id': {'type': 'integer', 'minimum': 1, 'description': 'Plendio product id (the id field of a search result).'}}, 'additionalProperties': False}, 'maxItems': 50, 'minItems': 1, 'description': 'The products on the list: 1 to 50.'}, 'title': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': 'Name of the list, e.g. "Emmas fødselsdag". Up to 80 characters; markup and links are removed.'}, 'market': {'enum': ['dk', 'se', 'de', 'no'], 'type': 'string', 'description': 'Market the list is for: dk, se, de or no. Default: the market of the site you connected to.'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', 'required': ['title', 'market', 'share_url', 'item_count', 'items', 'edit_url', 'instruction'], 'properties': {'items': {'type': ['null', 'array'], 'items': {'type': 'object', 'required': ['product_id', 'title', 'available', 'url'], 'properties': {'url': {'type': 'string', 'description': "The product's page on Plendio, listing all its offers."}, 'note': {'type': 'string', 'description': 'Text written by whoever made the list.'}, 'title': {'type': 'string'}, 'currency': {'type': 'string', 'description': 'ISO 4217 currency of price_from.'}, 'available': {'type': 'boolean', 'description': 'False for a product that has left the catalogue or has no offer now.'}, 'price_from': {'type': ['null', 'number'], 'description': 'Cheapest current price in the catalogue, in major units of currency; absent when no shop lists one.'}, 'product_id': {'type': 'integer'}}, 'additionalProperties': False}}, 'notes': {'type': ['null', 'array'], 'items': {'type': 'string'}}, 'title': {'type': 'string', 'description': "The list's name, written by whoever made it."}, 'market': {'type': 'string'}, 'currency': {'type': 'string', 'description': 'Currency of total_from.'}, 'edit_url': {'type': 'string', 'description': 'Private link for changing the list on Plendio and saving it to an account. Shown once.'}, 'share_url': {'type': 'string', 'description': "The list's page on Plendio, read-only."}, 'item_count': {'type': 'integer'}, 'not_stored': {'type': ['null', 'array'], 'items': {'type': 'object', 'required': ['product', 'reason'], 'properties': {'reason': {'type': 'string'}, 'product': {'type': 'string', 'description': 'What was given for the product (its id or slug).'}}, 'additionalProperties': False}, 'description': 'Products that were not put on the list, with the reason.'}, 'total_from': {'type': ['null', 'number'], 'description': 'Sum of price_from over the available items; absent when their currencies differ or none has a price.'}, 'instruction': {'type': 'string', 'description': 'A line for the user about the two links.'}}, 'additionalProperties': False}
get_product
Get product details
Returns one product by its Plendio id: specifications, one offer per shop (its best) with price, shipping, total, the same amounts in the market's currency, availability, condition and whether the shop ships to the market, a summary of the product's price history over the last year, and the url of its Plendio page. A product that was merged into another resolves to the current one.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['product_id'], 'properties': {'market': {'enum': ['dk', 'se', 'de', 'no'], 'type': 'string', 'description': 'Market the shopper is in: dk, se, de or no. Default: the market of the site you connected to.'}, 'product_id': {'type': 'integer', 'minimum': 1, 'description': 'Plendio product id (the id field of a search result, or the number at the end of a Plendio product URL).'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', 'required': ['id', 'title', 'url', 'market', 'currency', 'in_stock', 'offer_count', 'offers'], 'properties': {'id': {'type': 'integer'}, 'url': {'type': 'string', 'description': "The product's page on Plendio, listing all its offers."}, 'brand': {'type': 'string'}, 'notes': {'type': ['null', 'array'], 'items': {'type': 'string'}}, 'specs': {'type': ['null', 'array'], 'items': {'type': 'object', 'required': ['key', 'label', 'value'], 'properties': {'key': {'type': 'string', 'description': 'Machine name, e.g. ram_gb.'}, 'label': {'type': 'string', 'description': 'Human label (Danish).'}, 'value': {'type': 'string', 'description': "Value worded in the market's language."}}, 'additionalProperties': False}}, 'title': {'type': 'string'}, 'images': {'type': ['null', 'array'], 'items': {'type': 'string'}}, 'market': {'type': 'string'}, 'offers': {'type': ['null', 'array'], 'items': {'type': 'object', 'required': ['shop', 'shop_host', 'price', 'currency', 'availability', 'ships_to_market'], 'properties': {'shop': {'type': 'string', 'description': "The shop's name."}, 'price': {'type': 'number', 'description': 'Item price in major units of currency, including VAT.'}, 'total': {'type': ['null', 'number'], 'description': 'Price plus shipping; absent when shipping is unknown (then compare on price alone).'}, 'currency': {'type': 'string', 'description': 'ISO 4217 currency the shop prices in.'}, 'shipping': {'type': ['null', 'number'], 'description': 'Shipping cost to the market in major units; 0 is free shipping; absent when unknown.'}, 'condition': {'type': 'string', 'description': 'new, refurbished or used, when the shop says.'}, 'last_seen': {'type': 'string', 'description': 'When Plendio last saw this price (RFC 3339).'}, 'shop_host': {'type': 'string', 'description': "The shop's domain."}, 'more_offers': {'type': 'integer', 'description': "How many further offers this shop has for the product (other colours or variants, dearer or out of stock); only this shop's best one is listed."}, 'price_stale': {'type': 'boolean', 'description': 'True when the price was not confirmed recently; check it at the shop.'}, 'availability': {'type': 'string', 'description': 'in_stock, out_of_stock, preorder, backorder, discontinued or unknown.'}, 'price_market': {'type': ['null', 'number'], 'description': 'price converted to market_currency (equal to price when the shop prices in that currency); absent when no exchange rate is available.'}, 'shop_country': {'type': 'string', 'description': 'ISO 3166 country the shop is in.'}, 'total_market': {'type': ['null', 'number'], 'description': 'total converted to market_currency.'}, 'delivery_days': {'type': 'string', 'description': 'Estimated delivery, e.g. "1-3" days, when known.'}, 'market_currency': {'type': 'string', 'description': "The market's currency price_market and total_market are in."}, 'ships_to_market': {'type': 'string', 'description': 'Whether the shop delivers to the market: yes (the shop or its platform says so), probably, no, or unknown.'}}, 'additionalProperties': False}, 'description': 'Cheapest first.'}, 'category': {'type': 'string'}, 'currency': {'type': 'string', 'description': 'Currency of the market.'}, 'in_stock': {'type': 'boolean'}, 'description': {'type': 'string'}, 'merged_from': {'type': 'integer', 'description': 'Set when product_id was merged into this product.'}, 'offer_count': {'type': 'integer', 'description': 'Number of offers listed (shops that ship to the market, unless the tool was asked otherwise).'}, 'price_history': {'type': ['null', 'object'], 'required': ['currency', 'lowest', 'average', 'highest', 'since', 'days', 'scope'], 'properties': {'days': {'type': 'integer', 'description': 'Length of the recorded history in days (at most 365).'}, 'scope': {'type': 'string', 'description': 'What the history covers.'}, 'since': {'type': 'string', 'description': 'First day of the recorded history (YYYY-MM-DD).'}, 'lowest': {'type': 'number'}, 'average': {'type': 'number'}, 'current': {'type': ['null', 'number'], 'description': 'Cheapest price now; absent when nobody sells it.'}, 'highest': {'type': 'number'}, 'currency': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}
get_wishlist
Get a wishlist
Returns a Plendio wishlist from its share link or share id: its title, its items with notes and best current prices, and the url of each product's Plendio page. Read-only; the edit link is not needed and not accepted. The title and the notes are text written by whoever made the list.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['share_url'], 'properties': {'market': {'enum': ['dk', 'se', 'de', 'no'], 'type': 'string', 'description': 'Market for the urls in the answer: dk, se, de or no. Default: the market the list was made for.'}, 'share_url': {'type': 'string', 'maxLength': 300, 'minLength': 16, 'description': "The wishlist's share link, or the share id at the end of it. The edit link is not accepted."}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', 'required': ['title', 'market', 'share_url', 'item_count', 'items'], 'properties': {'items': {'type': ['null', 'array'], 'items': {'type': 'object', 'required': ['product_id', 'title', 'available', 'url'], 'properties': {'url': {'type': 'string', 'description': "The product's page on Plendio, listing all its offers."}, 'note': {'type': 'string', 'description': 'Text written by whoever made the list.'}, 'title': {'type': 'string'}, 'currency': {'type': 'string', 'description': 'ISO 4217 currency of price_from.'}, 'available': {'type': 'boolean', 'description': 'False for a product that has left the catalogue or has no offer now.'}, 'price_from': {'type': ['null', 'number'], 'description': 'Cheapest current price in the catalogue, in major units of currency; absent when no shop lists one.'}, 'product_id': {'type': 'integer'}}, 'additionalProperties': False}}, 'notes': {'type': ['null', 'array'], 'items': {'type': 'string'}}, 'title': {'type': 'string', 'description': "The list's name, written by whoever made it."}, 'market': {'type': 'string'}, 'currency': {'type': 'string', 'description': 'Currency of total_from.'}, 'share_url': {'type': 'string', 'description': "The list's page on Plendio, read-only."}, 'item_count': {'type': 'integer'}, 'total_from': {'type': ['null', 'number'], 'description': 'Sum of price_from over the available items; absent when their currencies differ or none has a price.'}}, 'additionalProperties': False}
list_categories
List categories
Returns Plendio's product categories with localized names, slugs and product counts: the top level, or the subcategories of parent. The counts are products available in the market.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'properties': {'market': {'enum': ['dk', 'se', 'de', 'no'], 'type': 'string', 'description': 'Market: dk, se, de or no. Default: the market of the site you connected to.'}, 'parent': {'type': 'string', 'description': 'Category path or slug whose subcategories to return. Omit for the top level.'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', 'required': ['market', 'language', 'categories'], 'properties': {'notes': {'type': ['null', 'array'], 'items': {'type': 'string'}}, 'market': {'type': 'string'}, 'parent': {'type': 'string', 'description': 'Path of the category whose children these are; absent for the top level.'}, 'language': {'type': 'string', 'description': 'Language the names are in.'}, 'categories': {'type': ['null', 'array'], 'items': {'type': 'object', 'required': ['slug', 'path', 'name', 'products', 'has_children', 'url'], 'properties': {'url': {'type': 'string', 'description': "The category's Plendio page."}, 'name': {'type': 'string', 'description': "The category's name in the market's language."}, 'path': {'type': 'string', 'description': 'Category path, e.g. elektronik/computere.'}, 'slug': {'type': 'string', 'description': 'Category slug, e.g. computere.'}, 'products': {'type': 'integer', 'description': 'Products in it and below it that are available in the market.'}, 'has_children': {'type': 'boolean'}}, 'additionalProperties': False}}, 'parent_name': {'type': 'string'}}, 'additionalProperties': False}
remove_from_wishlist
Remove products from a wishlist
Removes products from a wishlist, given its edit link or the token at the end of it. A product that is not on the list is reported and ignored. Removing a product does not delete the list, even when it becomes empty, and a removed product can be added again. Returns the list's remaining items.
Destructif Accès externe Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['edit_token', 'items'], 'properties': {'items': {'type': ['null', 'array'], 'items': {'type': 'object', 'properties': {'slug': {'type': 'string', 'maxLength': 300, 'description': "Alternative to product_id: the product's url, or the slug-and-id at its end."}, 'product_id': {'type': 'integer', 'minimum': 1, 'description': 'Plendio product id.'}}, 'additionalProperties': False}, 'maxItems': 50, 'minItems': 1, 'description': 'The products to remove: 1 to 50.'}, 'market': {'enum': ['dk', 'se', 'de', 'no'], 'type': 'string', 'description': 'Market for the urls in the answer: dk, se, de or no. Default: the market the list was made for.'}, 'edit_token': {'type': 'string', 'maxLength': 300, 'minLength': 20, 'description': "The wishlist's edit link as returned when it was created, or just the token at the end of it."}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', 'required': ['title', 'market', 'share_url', 'item_count', 'items'], 'properties': {'added': {'type': ['null', 'array'], 'items': {'type': 'integer'}, 'description': 'Product ids put on the list.'}, 'items': {'type': ['null', 'array'], 'items': {'type': 'object', 'required': ['product_id', 'title', 'available', 'url'], 'properties': {'url': {'type': 'string', 'description': "The product's page on Plendio, listing all its offers."}, 'note': {'type': 'string', 'description': 'Text written by whoever made the list.'}, 'title': {'type': 'string'}, 'currency': {'type': 'string', 'description': 'ISO 4217 currency of price_from.'}, 'available': {'type': 'boolean', 'description': 'False for a product that has left the catalogue or has no offer now.'}, 'price_from': {'type': ['null', 'number'], 'description': 'Cheapest current price in the catalogue, in major units of currency; absent when no shop lists one.'}, 'product_id': {'type': 'integer'}}, 'additionalProperties': False}}, 'notes': {'type': ['null', 'array'], 'items': {'type': 'string'}}, 'title': {'type': 'string', 'description': "The list's name, written by whoever made it."}, 'market': {'type': 'string'}, 'removed': {'type': ['null', 'array'], 'items': {'type': 'integer'}, 'description': 'Product ids taken off the list.'}, 'currency': {'type': 'string', 'description': 'Currency of total_from.'}, 'share_url': {'type': 'string', 'description': "The list's page on Plendio, read-only."}, 'item_count': {'type': 'integer'}, 'not_stored': {'type': ['null', 'array'], 'items': {'type': 'object', 'required': ['product', 'reason'], 'properties': {'reason': {'type': 'string'}, 'product': {'type': 'string', 'description': 'What was given for the product (its id or slug).'}}, 'additionalProperties': False}, 'description': 'Products that could not be added, with the reason.'}, 'total_from': {'type': ['null', 'number'], 'description': 'Sum of price_from over the available items; absent when their currencies differ or none has a price.'}, 'not_on_list': {'type': ['null', 'array'], 'items': {'type': 'integer'}, 'description': 'Product ids that were not on the list.'}, 'already_on_list': {'type': ['null', 'array'], 'items': {'type': 'integer'}, 'description': 'Product ids that were already on the list (their note was updated).'}}, 'additionalProperties': False}
search_products
Search products
Search Plendio's product catalogue: free text in Danish, Swedish, German, Norwegian or English ("laptop 32 GB RAM under 12000", "Sony WH-1000XM5", "running shoes women") plus optional filters. Spec words in the query (RAM, storage, screen size, price limits, in stock) are understood the way the Plendio website understands them. Each result has the cheapest current price, the number of shops selling it and the url of its Plendio page. Results are limited to shops that ship to the market unless include_other_markets is true. 24 results per page.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['query'], 'properties': {'page': {'type': 'integer', 'minimum': 1, 'description': 'Result page, 24 products per page. Default 1.'}, 'sort': {'enum': ['relevance', 'price_asc', 'price_desc'], 'type': 'string', 'description': 'relevance (default), price_asc or price_desc.'}, 'query': {'type': 'string', 'maxLength': 200, 'description': 'What to look for, in any of the market languages or English: a product name, a type, or a description with specs and limits ("laptop 32 GB RAM under 12000"). Required unless category is given.'}, 'shops': {'type': ['null', 'array'], 'items': {'type': 'string'}, 'description': 'Only offers from these shops, by domain, e.g. ["elgiganten.dk"].'}, 'brands': {'type': ['null', 'array'], 'items': {'type': 'string'}, 'description': 'Only these brands (up to 25), e.g. ["Sony","Bose"].'}, 'market': {'enum': ['dk', 'se', 'de', 'no'], 'type': 'string', 'description': 'Market to search: dk, se, de or no. Default: the market of the site you connected to (plendio.dk is dk).'}, 'category': {'type': 'string', 'description': 'Category slug to narrow the search to, e.g. computere.'}, 'in_stock': {'type': 'boolean', 'description': 'Only products that at least one shop has in stock.'}, 'max_price': {'type': 'number', 'minimum': 0, 'description': "Highest price, in the market's currency (major units)."}, 'min_price': {'type': 'number', 'minimum': 0, 'description': "Lowest price, in the market's currency (major units, e.g. 500 means 500 kr.)."}, 'include_other_markets': {'type': 'boolean', 'description': "Also include products no shop ships to the market. Default false: only products the market's shoppers can have delivered."}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', 'required': ['query', 'market', 'currency', 'total', 'total_exact', 'page', 'page_size', 'total_pages', 'products', 'search_url'], 'properties': {'page': {'type': 'integer'}, 'notes': {'type': ['null', 'array'], 'items': {'type': 'string'}}, 'query': {'type': 'string'}, 'total': {'type': 'integer', 'description': 'Number of matching products.'}, 'market': {'type': 'string'}, 'applied': {'type': ['null', 'object'], 'properties': {'sort': {'type': 'string'}, 'specs': {'type': ['null', 'array'], 'items': {'type': 'string'}, 'description': 'Spec constraints read from the query, e.g. "ram_gb >= 32".'}, 'brands': {'type': ['null', 'array'], 'items': {'type': 'string'}}, 'category': {'type': 'string', 'description': 'Category slug applied.'}, 'in_stock': {'type': 'boolean'}, 'max_price': {'type': ['null', 'number']}, 'min_price': {'type': ['null', 'number']}}, 'description': 'Filters the search applied, including ones it read from the query text.', 'additionalProperties': False}, 'currency': {'type': 'string', 'description': 'Currency of the market.'}, 'products': {'type': ['null', 'array'], 'items': {'type': 'object', 'required': ['id', 'title', 'offer_count', 'in_stock', 'url'], 'properties': {'id': {'type': 'integer', 'description': 'Plendio product id.'}, 'url': {'type': 'string', 'description': "The product's page on Plendio, listing all its offers."}, 'brand': {'type': 'string'}, 'image': {'type': 'string', 'description': 'Product photo URL.'}, 'title': {'type': 'string'}, 'category': {'type': 'string', 'description': "The product's category, named in the market's language."}, 'currency': {'type': 'string', 'description': 'ISO 4217 currency of price_from.'}, 'in_stock': {'type': 'boolean'}, 'price_from': {'type': ['null', 'number'], 'description': 'Cheapest current price, in major units of currency; absent when no shop lists a price.'}, 'offer_count': {'type': 'integer', 'description': 'How many shops sell it (to the market, unless include_other_markets).'}}, 'additionalProperties': False}}, 'page_size': {'type': 'integer'}, 'search_url': {'type': 'string', 'description': 'The same search on the Plendio website.'}, 'total_exact': {'type': 'boolean', 'description': 'False when total is a lower bound ("at least").'}, 'total_pages': {'type': 'integer'}, 'did_you_mean': {'type': 'string', 'description': 'Set when the results answer a corrected spelling of the query.'}, 'understood_as': {'type': ['null', 'array'], 'items': {'type': 'string'}, 'description': 'Set when the query was a sentence: the product searches it was read as, which the results answer.'}}, 'additionalProperties': False}
Ajouté
remove_from_wishlist
3 October 2026 02:48
Ajouté
get_wishlist
3 October 2026 02:48
Ajouté
create_wishlist
3 October 2026 02:48
Ajouté
add_to_wishlist
3 October 2026 02:48
Ajouté
search_products
1 October 2026 02:40
Ajouté
list_categories
1 October 2026 02:40
Ajouté
get_product
1 October 2026 02:40
Ajouté
compare_prices
1 October 2026 02:40