Leafly Menu API

The Menu API from Leafly — 2 operation(s) for menu.

Business capability
Channel Syndication Management BC-2370.30

Operations 4

GET /{menu_integration_key}/menu Get Menu #
POST /{menu_integration_key}/menu/items Synchronize Menu #
PUT /{menu_integration_key}/menu/items Upsert Menu Items #
DELETE /{menu_integration_key}/menu/items Delete Menu Items #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/leafly-menu-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

leafly-menu-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Leafly Integration Menu API
  version: '2.0'
  description: Near-real-time menu integration API for keeping a dispensary's Leafly menu in sync with its system of record (POS).
  contact:
    name: Leafly API Support
    email: api-support@leafly.com
    url: https://docs.leafly.io/menu-integration-docs/v2.html
servers:
- url: https://api.leafly.com/v2/menu_integration
  description: Production
- url: https://api-sandbox.leafly.io/v2/menu_integration
  description: Sandbox
security:
- OAuth2ClientCredentials: []
tags:
- name: Menu
paths:
  /{menu_integration_key}/menu:
    get:
      summary: Get Menu
      description: Retrieve the current menu Leafly holds for the integration.
      operationId: getMenu
      parameters:
      - $ref: '#/components/parameters/MenuIntegrationKey'
      responses:
        '200':
          description: The current menu.
      tags:
      - Menu
  /{menu_integration_key}/menu/items:
    post:
      summary: Synchronize Menu
      description: Full menu synchronization by id - submit the complete set of items. Full syncs are recommended once per day (or, in an alternate profile, several times per hour).
      operationId: syncMenuItems
      parameters:
      - $ref: '#/components/parameters/MenuIntegrationKey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MenuItems'
      responses:
        '200':
          description: Menu accepted for synchronization.
      tags:
      - Menu
    put:
      summary: Upsert Menu Items
      description: Create or update individual items or batches of items.
      operationId: upsertMenuItems
      parameters:
      - $ref: '#/components/parameters/MenuIntegrationKey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MenuItems'
      responses:
        '200':
          description: Items upserted.
      tags:
      - Menu
    delete:
      summary: Delete Menu Items
      description: Remove items from the Leafly menu.
      operationId: deleteMenuItems
      parameters:
      - $ref: '#/components/parameters/MenuIntegrationKey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MenuItems'
      responses:
        '200':
          description: Items deleted.
      tags:
      - Menu
components:
  parameters:
    MenuIntegrationKey:
      name: menu_integration_key
      in: path
      required: true
      description: Leafly-issued key that scopes the request to a single dispensary integration.
      schema:
        type: string
  schemas:
    MenuItem:
      type: object
      description: A single menu item. Strain and cannabinoid values should be set to null when absent; variants carry the inventory and pricing.
      properties:
        id:
          type: string
          description: Stable identifier for the item in the system of record; must be used consistently.
        type:
          type: string
        name:
          type: string
        strain:
          type:
          - string
          - 'null'
        brand:
          type: string
        description:
          type: string
        availableForPickup:
          type: boolean
        imageUrl:
          type:
          - string
          - 'null'
    MenuItems:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/MenuItem'
  securitySchemes:
    OAuth2ClientCredentials:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://api.leafly.com/oauth/token
          scopes: {}