External IDs (preventing duplicates)

When creating a menu item, you can optionally provide an external_id. These can be on the menu item itself and/or all of its variants. This value should represent the identifier in your system that's unique to this menu.


Unique By Menu

If you try to create two menu items on the same menu with the same external_id value, the second request will return a 422. An external_id can only be used once on a menu. This then means sending this value will help prevent resending duplicates. These attributes can, however, be shared between variants.


Used By Orders Integrations

If you're planning on having an orders integration with Weedmaps, it's recommended you provide an external_id value to your menu item and its variants. Please see our Orders Requirements Guide for more information.

curl \
  --request POST \
  --url 'https://api-g.weedmaps.com/wm/v1/menu_items' \
  --header 'accept: application/json' \
  --header 'authorization: Bearer [ACCESS TOKEN HERE]' \
  --header 'content-type: application/json' \
  --data '{
    "type": "menu_item",
    "attributes": {
      "name": "Pineapple Express",
      "body": "The dopest dope you will ever smoke.",
      "published": true,
      "online_orderable": true,
      "external_id": "12345",
      "variants" [
          "external_id: "1234-12",
          "price": {
            "amount": "17.06",
            "currency": "USD"
          "weight": {
            "value": 1,
            "unit": "g"
    "relationships": {
      "menu": {
        "data": {
          "type": "menu",
          "id": WMID_HERE
      "categories": {
        "data": [
            "type": "category",
            "id": "a780af3d-bdfe-41ce-a782-20f2519fd7be"