Plendio price comparison

Price comparison, product search and wishlists for Denmark, Sweden, Germany and Norway. No login.

我该使用它吗

质量与安全性

A
描述质量
100%
模式完整度
99%
命名质量
98%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

基于对工具定义和协议合规性的自动分析。

上下文开销

~6,921token 数(工具定义)
~9.3 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 5.41%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

{
  "mcpServers": {
    "plendio": {
      "url": "https://plendio.com/mcp"
    }
  }
}

远程端点

https://plendio.com/mcpstreamable-http

它能做什么

工具清单

工具(8)

🟢 只读🟡 写入🔴 删除⚪ 未知
🔴add_to_wishlist(edit_token, items, market)

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.

输入模式

{
  "type": "object",
  "properties": {
    "edit_token": {
      "type": "string",
      "description": "The wishlist's edit link as returned when it was created, or just the token at the end of it.",
      "minLength": 20,
      "maxLength": 300
    },
    "items": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "properties": {
          "product_id": {
            "type": "integer",
            "description": "Plendio product id (the id field of a search result).",
            "minimum": 1
          },
          "slug": {
            "type": "string",
            "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.",
            "maxLength": 300
          },
          "note": {
            "type": "string",
            "description": "Optional short note shown with the product, e.g. a size or colour. Up to 140 characters; markup and links are removed.",
            "maxLength": 140
          }
        },
        "additionalProperties": false
      },
      "description": "The products to add: 1 to 50. A product already on the list keeps its place and takes the new note.",
      "minItems": 1,
      "maxItems": 50
    },
    "market": {
      "type": "string",
      "description": "Market for the urls in the answer: dk, se, de or no. Default: the market the list was made for.",
      "enum": [
        "dk",
        "se",
        "de",
        "no"
      ]
    }
  },
  "required": [
    "edit_token",
    "items"
  ],
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "The list's name, written by whoever made it."
    },
    "market": {
      "type": "string"
    },
    "share_url": {
      "type": "string",
      "description": "The list's page on Plendio, read-only."
    },
    "item_count": {
      "type": "integer"
    },
    "items": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "properties": {
          "product_id": {
            "type": "integer"
          },
          "title": {
            "type": "string"
          },
          "note": {
            "type": "string",
            "description": "Text written by whoever made the list."
          },
          "price_from": {
            "type": [
              "null",
              "number"
            ],
            "description": "Cheapest current price in the catalogue, in major units of currency; absent when no shop lists one."
          },
          "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."
          },
          "url": {
            "type": "string",
            "description": "The product's page on Plendio, listing all its offers."
          }
        },
        "required": [
          "product_id",
          "title",
          "available",
          "url"
        ],
        "additionalProperties": false
      }
    },
    "total_from": {
      "type": [
        "null",
        "number"
      ],
      "description": "Sum of price_from over the available items; absent when their currencies differ or none has a price."
    },
    "currency": {
      "type": "string",
      "description": "Currency of total_from."
    },
    "notes": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      }
    },
    "added": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "integer"
      },
      "description": "Product ids put 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)."
    },
    "removed": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "integer"
      },
      "description": "Product ids taken off the list."
    },
    "not_on_list": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "integer"
      },
      "description": "Product ids that were not on the list."
    },
    "not_stored": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "properties": {
          "product": {
            "type": "string",
            "description": "What was given for the product (its id or slug)."
          },
          "reason": {
            "type": "string"
          }
        },
        "required": [
          "product",
          "reason"
        ],
        "additionalProperties": false
      },
      "description": "Products that could not be added, with the reason."
    }
  },
  "required": [
    "title",
    "market",
    "share_url",
    "item_count",
    "items"
  ],
  "additionalProperties": false
}
🟢compare_prices(product_id, market, include_other_markets, include_out_of_stock)

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.

输入模式

{
  "type": "object",
  "properties": {
    "product_id": {
      "type": "integer",
      "description": "Plendio product id (the id field of a search result, or the number at the end of a Plendio product URL).",
      "minimum": 1
    },
    "market": {
      "type": "string",
      "description": "Market the shopper is in: dk, se, de or no. Default: the market of the site you connected to.",
      "enum": [
        "dk",
        "se",
        "de",
        "no"
      ]
    },
    "include_other_markets": {
      "type": "boolean",
      "description": "Also list shops not known to ship to the market. Default false."
    },
    "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."
    }
  },
  "required": [
    "product_id"
  ],
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer"
    },
    "title": {
      "type": "string"
    },
    "url": {
      "type": "string",
      "description": "The product's page on Plendio, listing all its offers."
    },
    "market": {
      "type": "string"
    },
    "currency": {
      "type": "string",
      "description": "Currency of the market."
    },
    "offers": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "properties": {
          "shop": {
            "type": "string",
            "description": "The shop's name."
          },
          "shop_host": {
            "type": "string",
            "description": "The shop's domain."
          },
          "shop_country": {
            "type": "string",
            "description": "ISO 3166 country the shop is in."
          },
          "price": {
            "type": "number",
            "description": "Item price in major units of currency, including VAT."
          },
          "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."
          },
          "total": {
            "type": [
              "null",
              "number"
            ],
            "description": "Price plus shipping; absent when shipping is unknown (then compare on price alone)."
          },
          "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."
          },
          "total_market": {
            "type": [
              "null",
              "number"
            ],
            "description": "total converted to market_currency."
          },
          "market_currency": {
            "type": "string",
            "description": "The market's currency price_market and total_market are in."
          },
          "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."
          },
          "availability": {
            "type": "string",
            "description": "in_stock, out_of_stock, preorder, backorder, discontinued or unknown."
          },
          "condition": {
            "type": "string",
            "description": "new, refurbished or used, when the shop says."
          },
          "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."
          },
          "delivery_days": {
            "type": "string",
            "description": "Estimated delivery, e.g. \"1-3\" days, when known."
          },
          "last_seen": {
            "type": "string",
            "description": "When Plendio last saw this price (RFC 3339)."
          },
          "price_stale": {
            "type": "boolean",
            "description": "True when the price was not confirmed recently; check it at the shop."
          }
        },
        "required": [
          "shop",
          "shop_host",
          "price",
          "currency",
          "availability",
          "ships_to_market"
        ],
        "additionalProperties": false
      },
      "description": "Cheapest first, by total price including shipping (price alone where shipping is unknown)."
    },
    "price_history": {
      "type": [
        "null",
        "object"
      ],
      "properties": {
        "currency": {
          "type": "string"
        },
        "lowest": {
          "type": "number"
        },
        "average": {
          "type": "number"
        },
        "highest": {
          "type": "number"
        },
        "current": {
          "type": [
            "null",
            "number"
          ],
          "description": "Cheapest price now; absent when nobody sells it."
        },
        "since": {
          "type": "string",
          "description": "First day of the recorded history (YYYY-MM-DD)."
        },
        "days": {
          "type": "integer",
          "description": "Length of the recorded history in days (at most 365)."
        },
        "scope": {
          "type": "string",
          "description": "What the history covers."
        }
      },
      "required": [
        "currency",
        "lowest",
        "average",
        "highest",
        "since",
        "days",
        "scope"
      ],
      "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)."
    },
    "notes": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "id",
    "title",
    "url",
    "market",
    "currency",
    "offers",
    "offers_omitted",
    "out_of_stock_omitted"
  ],
  "additionalProperties": false
}
🟡create_wishlist(title, market, items)

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.

输入模式

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "Name of the list, e.g. \"Emmas fødselsdag\". Up to 80 characters; markup and links are removed.",
      "minLength": 1,
      "maxLength": 80
    },
    "market": {
      "type": "string",
      "description": "Market the list is for: dk, se, de or no. Default: the market of the site you connected to.",
      "enum": [
        "dk",
        "se",
        "de",
        "no"
      ]
    },
    "items": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "properties": {
          "product_id": {
            "type": "integer",
            "description": "Plendio product id (the id field of a search result).",
            "minimum": 1
          },
          "slug": {
            "type": "string",
            "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.",
            "maxLength": 300
          },
          "note": {
            "type": "string",
            "description": "Optional short note shown with the product, e.g. a size or colour. Up to 140 characters; markup and links are removed.",
            "maxLength": 140
          }
        },
        "additionalProperties": false
      },
      "description": "The products on the list: 1 to 50.",
      "minItems": 1,
      "maxItems": 50
    }
  },
  "required": [
    "title",
    "items"
  ],
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "The list's name, written by whoever made it."
    },
    "market": {
      "type": "string"
    },
    "share_url": {
      "type": "string",
      "description": "The list's page on Plendio, read-only."
    },
    "item_count": {
      "type": "integer"
    },
    "items": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "properties": {
          "product_id": {
            "type": "integer"
          },
          "title": {
            "type": "string"
          },
          "note": {
            "type": "string",
            "description": "Text written by whoever made the list."
          },
          "price_from": {
            "type": [
              "null",
              "number"
            ],
            "description": "Cheapest current price in the catalogue, in major units of currency; absent when no shop lists one."
          },
          "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."
          },
          "url": {
            "type": "string",
            "description": "The product's page on Plendio, listing all its offers."
          }
        },
        "required": [
          "product_id",
          "title",
          "available",
          "url"
        ],
        "additionalProperties": false
      }
    },
    "total_from": {
      "type": [
        "null",
        "number"
      ],
      "description": "Sum of price_from over the available items; absent when their currencies differ or none has a price."
    },
    "currency": {
      "type": "string",
      "description": "Currency of total_from."
    },
    "notes": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      }
    },
    "edit_url": {
      "type": "string",
      "description": "Private link for changing the list on Plendio and saving it to an account. Shown once."
    },
    "instruction": {
      "type": "string",
      "description": "A line for the user about the two links."
    },
    "not_stored": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "properties": {
          "product": {
            "type": "string",
            "description": "What was given for the product (its id or slug)."
          },
          "reason": {
            "type": "string"
          }
        },
        "required": [
          "product",
          "reason"
        ],
        "additionalProperties": false
      },
      "description": "Products that were not put on the list, with the reason."
    }
  },
  "required": [
    "title",
    "market",
    "share_url",
    "item_count",
    "items",
    "edit_url",
    "instruction"
  ],
  "additionalProperties": false
}
🟢get_product(product_id, market)

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.

输入模式

{
  "type": "object",
  "properties": {
    "product_id": {
      "type": "integer",
      "description": "Plendio product id (the id field of a search result, or the number at the end of a Plendio product URL).",
      "minimum": 1
    },
    "market": {
      "type": "string",
      "description": "Market the shopper is in: dk, se, de or no. Default: the market of the site you connected to.",
      "enum": [
        "dk",
        "se",
        "de",
        "no"
      ]
    }
  },
  "required": [
    "product_id"
  ],
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer"
    },
    "title": {
      "type": "string"
    },
    "brand": {
      "type": "string"
    },
    "category": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "url": {
      "type": "string",
      "description": "The product's page on Plendio, listing all its offers."
    },
    "market": {
      "type": "string"
    },
    "currency": {
      "type": "string",
      "description": "Currency of the market."
    },
    "in_stock": {
      "type": "boolean"
    },
    "images": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      }
    },
    "specs": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "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."
          }
        },
        "required": [
          "key",
          "label",
          "value"
        ],
        "additionalProperties": false
      }
    },
    "offer_count": {
      "type": "integer",
      "description": "Number of offers listed (shops that ship to the market, unless the tool was asked otherwise)."
    },
    "offers": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "properties": {
          "shop": {
            "type": "string",
            "description": "The shop's name."
          },
          "shop_host": {
            "type": "string",
            "description": "The shop's domain."
          },
          "shop_country": {
            "type": "string",
            "description": "ISO 3166 country the shop is in."
          },
          "price": {
            "type": "number",
            "description": "Item price in major units of currency, including VAT."
          },
          "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."
          },
          "total": {
            "type": [
              "null",
              "number"
            ],
            "description": "Price plus shipping; absent when shipping is unknown (then compare on price alone)."
          },
          "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."
          },
          "total_market": {
            "type": [
              "null",
              "number"
            ],
            "description": "total converted to market_currency."
          },
          "market_currency": {
            "type": "string",
            "description": "The market's currency price_market and total_market are in."
          },
          "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."
          },
          "availability": {
            "type": "string",
            "description": "in_stock, out_of_stock, preorder, backorder, discontinued or unknown."
          },
          "condition": {
            "type": "string",
            "description": "new, refurbished or used, when the shop says."
          },
          "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."
          },
          "delivery_days": {
            "type": "string",
            "description": "Estimated delivery, e.g. \"1-3\" days, when known."
          },
          "last_seen": {
            "type": "string",
            "description": "When Plendio last saw this price (RFC 3339)."
          },
          "price_stale": {
            "type": "boolean",
            "description": "True when the price was not confirmed recently; check it at the shop."
          }
        },
        "required": [
          "shop",
          "shop_host",
          "price",
          "currency",
          "availability",
          "ships_to_market"
        ],
        "additionalProperties": false
      },
      "description": "Cheapest first."
    },
    "price_history": {
      "type": [
        "null",
        "object"
      ],
      "properties": {
        "currency": {
          "type": "string"
        },
        "lowest": {
          "type": "number"
        },
        "average": {
          "type": "number"
        },
        "highest": {
          "type": "number"
        },
        "current": {
          "type": [
            "null",
            "number"
          ],
          "description": "Cheapest price now; absent when nobody sells it."
        },
        "since": {
          "type": "string",
          "description": "First day of the recorded history (YYYY-MM-DD)."
        },
        "days": {
          "type": "integer",
          "description": "Length of the recorded history in days (at most 365)."
        },
        "scope": {
          "type": "string",
          "description": "What the history covers."
        }
      },
      "required": [
        "currency",
        "lowest",
        "average",
        "highest",
        "since",
        "days",
        "scope"
      ],
      "additionalProperties": false
    },
    "merged_from": {
      "type": "integer",
      "description": "Set when product_id was merged into this product."
    },
    "notes": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "id",
    "title",
    "url",
    "market",
    "currency",
    "in_stock",
    "offer_count",
    "offers"
  ],
  "additionalProperties": false
}
🟢get_wishlist(share_url, market)

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.

输入模式

{
  "type": "object",
  "properties": {
    "share_url": {
      "type": "string",
      "description": "The wishlist's share link, or the share id at the end of it. The edit link is not accepted.",
      "minLength": 16,
      "maxLength": 300
    },
    "market": {
      "type": "string",
      "description": "Market for the urls in the answer: dk, se, de or no. Default: the market the list was made for.",
      "enum": [
        "dk",
        "se",
        "de",
        "no"
      ]
    }
  },
  "required": [
    "share_url"
  ],
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "The list's name, written by whoever made it."
    },
    "market": {
      "type": "string"
    },
    "share_url": {
      "type": "string",
      "description": "The list's page on Plendio, read-only."
    },
    "item_count": {
      "type": "integer"
    },
    "items": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "properties": {
          "product_id": {
            "type": "integer"
          },
          "title": {
            "type": "string"
          },
          "note": {
            "type": "string",
            "description": "Text written by whoever made the list."
          },
          "price_from": {
            "type": [
              "null",
              "number"
            ],
            "description": "Cheapest current price in the catalogue, in major units of currency; absent when no shop lists one."
          },
          "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."
          },
          "url": {
            "type": "string",
            "description": "The product's page on Plendio, listing all its offers."
          }
        },
        "required": [
          "product_id",
          "title",
          "available",
          "url"
        ],
        "additionalProperties": false
      }
    },
    "total_from": {
      "type": [
        "null",
        "number"
      ],
      "description": "Sum of price_from over the available items; absent when their currencies differ or none has a price."
    },
    "currency": {
      "type": "string",
      "description": "Currency of total_from."
    },
    "notes": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "title",
    "market",
    "share_url",
    "item_count",
    "items"
  ],
  "additionalProperties": false
}
🟢list_categories(market, parent)

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.

输入模式

{
  "type": "object",
  "properties": {
    "market": {
      "type": "string",
      "description": "Market: dk, se, de or no. Default: the market of the site you connected to.",
      "enum": [
        "dk",
        "se",
        "de",
        "no"
      ]
    },
    "parent": {
      "type": "string",
      "description": "Category path or slug whose subcategories to return. Omit for the top level."
    }
  },
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "market": {
      "type": "string"
    },
    "language": {
      "type": "string",
      "description": "Language the names are in."
    },
    "parent": {
      "type": "string",
      "description": "Path of the category whose children these are; absent for the top level."
    },
    "parent_name": {
      "type": "string"
    },
    "categories": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string",
            "description": "Category slug, e.g. computere."
          },
          "path": {
            "type": "string",
            "description": "Category path, e.g. elektronik/computere."
          },
          "name": {
            "type": "string",
            "description": "The category's name in the market's language."
          },
          "products": {
            "type": "integer",
            "description": "Products in it and below it that are available in the market."
          },
          "has_children": {
            "type": "boolean"
          },
          "url": {
            "type": "string",
            "description": "The category's Plendio page."
          }
        },
        "required": [
          "slug",
          "path",
          "name",
          "products",
          "has_children",
          "url"
        ],
        "additionalProperties": false
      }
    },
    "notes": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "market",
    "language",
    "categories"
  ],
  "additionalProperties": false
}
🔴remove_from_wishlist(edit_token, items, market)

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.

输入模式

{
  "type": "object",
  "properties": {
    "edit_token": {
      "type": "string",
      "description": "The wishlist's edit link as returned when it was created, or just the token at the end of it.",
      "minLength": 20,
      "maxLength": 300
    },
    "items": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "properties": {
          "product_id": {
            "type": "integer",
            "description": "Plendio product id.",
            "minimum": 1
          },
          "slug": {
            "type": "string",
            "description": "Alternative to product_id: the product's url, or the slug-and-id at its end.",
            "maxLength": 300
          }
        },
        "additionalProperties": false
      },
      "description": "The products to remove: 1 to 50.",
      "minItems": 1,
      "maxItems": 50
    },
    "market": {
      "type": "string",
      "description": "Market for the urls in the answer: dk, se, de or no. Default: the market the list was made for.",
      "enum": [
        "dk",
        "se",
        "de",
        "no"
      ]
    }
  },
  "required": [
    "edit_token",
    "items"
  ],
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "The list's name, written by whoever made it."
    },
    "market": {
      "type": "string"
    },
    "share_url": {
      "type": "string",
      "description": "The list's page on Plendio, read-only."
    },
    "item_count": {
      "type": "integer"
    },
    "items": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "properties": {
          "product_id": {
            "type": "integer"
          },
          "title": {
            "type": "string"
          },
          "note": {
            "type": "string",
            "description": "Text written by whoever made the list."
          },
          "price_from": {
            "type": [
              "null",
              "number"
            ],
            "description": "Cheapest current price in the catalogue, in major units of currency; absent when no shop lists one."
          },
          "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."
          },
          "url": {
            "type": "string",
            "description": "The product's page on Plendio, listing all its offers."
          }
        },
        "required": [
          "product_id",
          "title",
          "available",
          "url"
        ],
        "additionalProperties": false
      }
    },
    "total_from": {
      "type": [
        "null",
        "number"
      ],
      "description": "Sum of price_from over the available items; absent when their currencies differ or none has a price."
    },
    "currency": {
      "type": "string",
      "description": "Currency of total_from."
    },
    "notes": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      }
    },
    "added": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "integer"
      },
      "description": "Product ids put 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)."
    },
    "removed": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "integer"
      },
      "description": "Product ids taken off the list."
    },
    "not_on_list": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "integer"
      },
      "description": "Product ids that were not on the list."
    },
    "not_stored": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "properties": {
          "product": {
            "type": "string",
            "description": "What was given for the product (its id or slug)."
          },
          "reason": {
            "type": "string"
          }
        },
        "required": [
          "product",
          "reason"
        ],
        "additionalProperties": false
      },
      "description": "Products that could not be added, with the reason."
    }
  },
  "required": [
    "title",
    "market",
    "share_url",
    "item_count",
    "items"
  ],
  "additionalProperties": false
}
🟢search_products(query, market, category, brands, shops, ...)

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.

输入模式

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "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.",
      "maxLength": 200
    },
    "market": {
      "type": "string",
      "description": "Market to search: dk, se, de or no. Default: the market of the site you connected to (plendio.dk is dk).",
      "enum": [
        "dk",
        "se",
        "de",
        "no"
      ]
    },
    "category": {
      "type": "string",
      "description": "Category slug to narrow the search to, e.g. computere."
    },
    "brands": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      },
      "description": "Only these brands (up to 25), e.g. [\"Sony\",\"Bose\"]."
    },
    "shops": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      },
      "description": "Only offers from these shops, by domain, e.g. [\"elgiganten.dk\"]."
    },
    "min_price": {
      "type": "number",
      "description": "Lowest price, in the market's currency (major units, e.g. 500 means 500 kr.).",
      "minimum": 0
    },
    "max_price": {
      "type": "number",
      "description": "Highest price, in the market's currency (major units).",
      "minimum": 0
    },
    "in_stock": {
      "type": "boolean",
      "description": "Only products that at least one shop has in stock."
    },
    "sort": {
      "type": "string",
      "description": "relevance (default), price_asc or price_desc.",
      "enum": [
        "relevance",
        "price_asc",
        "price_desc"
      ]
    },
    "page": {
      "type": "integer",
      "description": "Result page, 24 products per page. Default 1.",
      "minimum": 1
    },
    "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."
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    },
    "market": {
      "type": "string"
    },
    "currency": {
      "type": "string",
      "description": "Currency of the market."
    },
    "total": {
      "type": "integer",
      "description": "Number of matching products."
    },
    "total_exact": {
      "type": "boolean",
      "description": "False when total is a lower bound (\"at least\")."
    },
    "page": {
      "type": "integer"
    },
    "page_size": {
      "type": "integer"
    },
    "total_pages": {
      "type": "integer"
    },
    "products": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Plendio product id."
          },
          "title": {
            "type": "string"
          },
          "brand": {
            "type": "string"
          },
          "category": {
            "type": "string",
            "description": "The product's category, named in the market's language."
          },
          "price_from": {
            "type": [
              "null",
              "number"
            ],
            "description": "Cheapest current price, in major units of currency; absent when no shop lists a price."
          },
          "currency": {
            "type": "string",
            "description": "ISO 4217 currency of price_from."
          },
          "offer_count": {
            "type": "integer",
            "description": "How many shops sell it (to the market, unless include_other_markets)."
          },
          "in_stock": {
            "type": "boolean"
          },
          "image": {
            "type": "string",
            "description": "Product photo URL."
          },
          "url": {
            "type": "string",
            "description": "The product's page on Plendio, listing all its offers."
          }
        },
        "required": [
          "id",
          "title",
          "offer_count",
          "in_stock",
          "url"
        ],
        "additionalProperties": false
      }
    },
    "applied": {
      "type": [
        "null",
        "object"
      ],
      "properties": {
        "category": {
          "type": "string",
          "description": "Category slug applied."
        },
        "brands": {
          "type": [
            "null",
            "array"
          ],
          "items": {
            "type": "string"
          }
        },
        "min_price": {
          "type": [
            "null",
            "number"
          ]
        },
        "max_price": {
          "type": [
            "null",
            "number"
          ]
        },
        "in_stock": {
          "type": "boolean"
        },
        "sort": {
          "type": "string"
        },
        "specs": {
          "type": [
            "null",
            "array"
          ],
          "items": {
            "type": "string"
          },
          "description": "Spec constraints read from the query, e.g. \"ram_gb >= 32\"."
        }
      },
      "description": "Filters the search applied, including ones it read from the query text.",
      "additionalProperties": false
    },
    "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."
    },
    "search_url": {
      "type": "string",
      "description": "The same search on the Plendio website."
    },
    "notes": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "query",
    "market",
    "currency",
    "total",
    "total_exact",
    "page",
    "page_size",
    "total_pages",
    "products",
    "search_url"
  ],
  "additionalProperties": false
}

社区

评价此服务器

证据

最近观测

已验证未记录版本8 个工具