Flipdish Catalog API

Manage catalog groups, items, products, images, changes, and metafield definitions.

OpenAPI Specification

flipdish-catalog-openapi.json Raw ↑
{
  "openapi": "3.0.3",
  "info": {
    "title": "Flipdish API - Catalog",
    "version": "v1.0",
    "description": "Flipdish Open API v1.0 \u2014 Catalog operations. Flipdish is an online ordering and branded-app platform for restaurants and takeaways. This specification was derived from the official Flipdish Swagger document and grouped by resource domain.",
    "contact": {
      "name": "Flipdish Support",
      "email": "[email protected]",
      "url": "https://help.flipdish.com"
    },
    "x-generated-from": "https://api.flipdish.co/swagger/docs/v1.0",
    "x-last-validated": "2026-06-02"
  },
  "servers": [
    {
      "url": "https://api.flipdish.co",
      "description": "Flipdish production API"
    }
  ],
  "security": [
    {
      "oauth2": [
        "api"
      ]
    }
  ],
  "tags": [
    {
      "name": "CatalogChanges",
      "description": "Operations for Catalog Changes."
    },
    {
      "name": "CatalogGroups",
      "description": "Operations for Catalog Groups."
    },
    {
      "name": "CatalogImages",
      "description": "Operations for Catalog Images."
    },
    {
      "name": "CatalogItems",
      "description": "Operations for Catalog Items."
    },
    {
      "name": "CatalogProducts",
      "description": "Operations for Catalog Products."
    },
    {
      "name": "MetafieldDefinitions",
      "description": "Operations for Metafield Definitions."
    }
  ],
  "paths": {
    "/api/v1.0/{appId}/menus/catalog-changes/summaries": {
      "get": {
        "tags": [
          "CatalogChanges"
        ],
        "summary": "Flipdish Get Pending Menu Changes Summaries",
        "operationId": "GetPendingMenuChangesSummaries",
        "parameters": [
          {
            "name": "appId",
            "in": "path",
            "description": "The app id path parameter.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "500123"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RestApiArrayResult_PendingMenuChangesSummaries_"
                },
                "examples": {
                  "GetPendingMenuChangesSummaries200Example": {
                    "summary": "Default GetPendingMenuChangesSummaries 200 response",
                    "x-microcks-default": true,
                    "value": {
                      "Data": []
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "BadRequest",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlipdishError"
                },
                "examples": {
                  "GetPendingMenuChangesSummaries400Example": {
                    "summary": "Default GetPendingMenuChangesSummaries 400 response",
                    "x-microcks-default": true,
                    "value": {
                      "error": {
                        "errorMessage": "Invalid or missing parameters.",
                        "errorCode": "BadRequest",
                        "details": "Validation failed for field 'storeId'."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Authentication has been denied for this request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlipdishError"
                },
                "examples": {
                  "GetPendingMenuChangesSummaries401Example": {
                    "summary": "Default GetPendingMenuChangesSummaries 401 response",
                    "x-microcks-default": true,
                    "value": {
                      "error": {
                        "errorMessage": "Invalid or missing parameters.",
                        "errorCode": "BadRequest",
                        "details": "Validation failed for field 'storeId'."
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Successful authentication, but authorization has been denied for this request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlipdishError"
                },
                "examples": {
                  "GetPendingMenuChangesSummaries403Example": {
                    "summary": "Default GetPendingMenuChangesSummaries 403 response",
                    "x-microcks-default": true,
                    "value": {
                      "error": {
                        "errorMessage": "Invalid or missing parameters.",
                        "errorCode": "BadRequest",
                        "details": "Validation failed for field 'storeId'."
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlipdishError"
                },
                "examples": {
                  "GetPendingMenuChangesSummaries500Example": {
                    "summary": "Default GetPendingMenuChangesSummaries 500 response",
                    "x-microcks-default": true,
                    "value": {
                      "error": {
                        "errorMessage": "Invalid or missing parameters.",
                        "errorCode": "BadRequest",
                        "details": "Validation failed for field 'storeId'."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "api"
            ]
          }
        ],
        "description": "Get Pending Menu Changes Summaries via the Flipdish Open API v1.0 (GET /api/v1.0/{appId}/menus/catalog-changes/summaries).",
        "x-microcks-operation": {
          "delay": 0,
          "dispatcher": "FALLBACK"
        }
      }
    },
    "/api/v1.0/{appId}/menus/catalog-changes": {
      "get": {
        "tags": [
          "CatalogChanges"
        ],
        "summary": "Flipdish Get Pending Menu Changes",
        "description": "Get Pending Menu Changes via the Flipdish Open API v1.0 (GET /api/v1.0/{appId}/menus/catalog-changes).",
        "operationId": "GetPendingMenuChanges",
        "parameters": [
          {
            "name": "appId",
            "in": "path",
            "description": "The app id path parameter.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "500123"
          },
          {
            "name": "menuId",
            "in": "query",
            "description": "The menu id query parameter.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 500123
          },
          {
            "name": "catalogItemId",
            "in": "query",
            "description": "The catalog item id query parameter.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "500123"
          },
          {
            "name": "page",
            "in": "query",
            "description": "The page query parameter.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 1
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The limit query parameter.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 1
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RestApiPaginationResult_PendingMenuChanges_"
                },
                "examples": {
                  "GetPendingMenuChanges200Example": {
                    "summary": "Default GetPendingMenuChanges 200 response",
                    "x-microcks-default": true,
                    "value": {
                      "Page": 1,
                      "Limit": 1,
                      "TotalRecordCount": 12.5,
                      "Data": []
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "BadRequest",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlipdishError"
                },
                "examples": {
                  "GetPendingMenuChanges400Example": {
                    "summary": "Default GetPendingMenuChanges 400 response",
                    "x-microcks-default": true,
                    "value": {
                      "error": {
                        "errorMessage": "Invalid or missing parameters.",
                        "errorCode": "BadRequest",
                        "details": "Validation failed for field 'storeId'."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Authentication has been denied for this request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlipdishError"
                },
                "examples": {
                  "GetPendingMenuChanges401Example": {
                    "summary": "Default GetPendingMenuChanges 401 response",
                    "x-microcks-default": true,
                    "value": {
                      "error": {
                        "errorMessage": "Invalid or missing parameters.",
                        "errorCode": "BadRequest",
                        "details": "Validation failed for field 'storeId'."
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Successful authentication, but authorization has been denied for this request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlipdishError"
                },
                "examples": {
                  "GetPendingMenuChanges403Example": {
                    "summary": "Default GetPendingMenuChanges 403 response",
                    "x-microcks-default": true,
                    "value": {
                      "error": {
                        "errorMessage": "Invalid or missing parameters.",
                        "errorCode": "BadRequest",
                        "details": "Validation failed for field 'storeId'."
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlipdishError"
                },
                "examples": {
                  "GetPendingMenuChanges500Example": {
                    "summary": "Default GetPendingMenuChanges 500 response",
                    "x-microcks-default": true,
                    "value": {
                      "error": {
                        "errorMessage": "Invalid or missing parameters.",
                        "errorCode": "BadRequest",
                        "details": "Validation failed for field 'storeId'."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "api"
            ]
          }
        ],
        "x-microcks-operation": {
          "delay": 0,
          "dispatcher": "FALLBACK"
        }
      }
    },
    "/api/v1.0/{appId}/menus/catalog-changes/publish": {
      "post": {
        "tags": [
          "CatalogChanges"
        ],
        "summary": "Flipdish Publish Pending Menu Changes",
        "description": "Publish Pending Menu Changes via the Flipdish Open API v1.0 (POST /api/v1.0/{appId}/menus/catalog-changes/publish).",
        "operationId": "PublishPendingMenuChanges",
        "parameters": [
          {
            "name": "appId",
            "in": "path",
            "description": "The app id path parameter.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "500123"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublishMenuChanges"
              },
              "examples": {
                "PublishPendingMenuChangesRequestExample": {
                  "summary": "Default PublishPendingMenuChanges request",
                  "x-microcks-default": true,
                  "value": {
                    "CatalogItemId": "500123",
                    "MenuIds": [
                      1
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "BadRequest",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlipdishError"
                },
                "examples": {
                  "PublishPendingMenuChanges400Example": {
                    "summary": "Default PublishPendingMenuChanges 400 response",
                    "x-microcks-default": true,
                    "value": {
                      "error": {
                        "errorMessage": "Invalid or missing parameters.",
                        "errorCode": "BadRequest",
                        "details": "Validation failed for field 'storeId'."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Authentication has been denied for this request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlipdishError"
                },
                "examples": {
                  "PublishPendingMenuChanges401Example": {
                    "summary": "Default PublishPendingMenuChanges 401 response",
                    "x-microcks-default": true,
                    "value": {
                      "error": {
                        "errorMessage": "Invalid or missing parameters.",
                        "errorCode": "BadRequest",
                        "details": "Validation failed for field 'storeId'."
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Successful authentication, but authorization has been denied for this request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlipdishError"
                },
                "examples": {
                  "PublishPendingMenuChanges403Example": {
                    "summary": "Default PublishPendingMenuChanges 403 response",
                    "x-microcks-default": true,
                    "value": {
                      "error": {
                        "errorMessage": "Invalid or missing parameters.",
                        "errorCode": "BadRequest",
                        "details": "Validation failed for field 'storeId'."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "NotFound",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlipdishError"
                },
                "examples": {
                  "PublishPendingMenuChanges404Example": {
                    "summary": "Default PublishPendingMenuChanges 404 response",
                    "x-microcks-default": true,
                    "value": {
                      "error": {
                        "errorMessage": "Invalid or missing parameters.",
                        "errorCode": "BadRequest",
                        "details": "Validation failed for field 'storeId'."
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlipdishError"
                },
                "examples": {
                  "PublishPendingMenuChanges500Example": {
                    "summary": "Default PublishPendingMenuChanges 500 response",
                    "x-microcks-default": true,
                    "value": {
                      "error": {
                        "errorMessage": "Invalid or missing parameters.",
                        "errorCode": "BadRequest",
                        "details": "Validation failed for field 'storeId'."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "api"
            ]
          }
        ],
        "x-microcks-operation": {
          "delay": 0,
          "dispatcher": "FALLBACK"
        }
      }
    },
    "/api/v1.0/{appId}/catalog/groups/{catalogItemId}": {
      "get": {
        "tags": [
          "CatalogGroups"
        ],
        "summary": "Flipdish Get Group by Id",
        "description": "Get Group by Id via the Flipdish Open API v1.0 (GET /api/v1.0/{appId}/catalog/groups/{catalogItemId}).",
        "operationId": "GetGroupById",
        "parameters": [
          {
            "name": "appId",
            "in": "path",
            "description": "The app id path parameter.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "500123"
          },
          {
            "name": "catalogItemId",
            "in": "path",
            "description": "The catalog item id path parameter.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "500123"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Group"
                },
                "examples": {
                  "GetGroupById200Example": {
                    "summary": "Default GetGroupById 200 response",
                    "x-microcks-default": true,
                    "value": {
                      "CatalogGroupId": "500123",
                      "CatalogItemId": "500123",
                      "IsArchived": true,
                      "MinSelectCount": 3,
                      "MaxSelectCount": 3,
                      "Products": [],
                      "Metafields": [],
                      "GroupType": "ModifierGroup",
                      "Sku": "string",
                      "Name": "Example Name",
                      "AutogenerateDisplayText": true,
                      "ImageFileName": "Example Name"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "BadRequest",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlipdishError"
                },
                "examples": {
                  "GetGroupById400Example": {
                    "summary": "Default GetGroupById 400 response",
                    "x-microcks-default": true,
                    "value": {
                      "error": {
                        "errorMessage": "Invalid or missing parameters.",
                        "errorCode": "BadRequest",
                        "details": "Validation failed for field 'storeId'."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Authentication has been denied for this request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlipdishError"
                },
                "examples": {
                  "GetGroupById401Example": {
                    "summary": "Default GetGroupById 401 response",
                    "x-microcks-default": true,
                    "value": {
                      "error": {
                        "errorMessage": "Invalid or missing parameters.",
                        "errorCode": "BadRequest",
                        "details": "Validation failed for field 'storeId'."
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Successful authentication, but authorization has been denied for this request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlipdishError"
                },
                "examples": {
                  "GetGroupById403Example": {
                    "summary": "Default GetGroupById 403 response",
                    "x-microcks-default": true,
                    "value": {
                      "error": {
                        "errorMessage": "Invalid or missing parameters.",
                        "errorCode": "BadRequest",
                        "details": "Validation failed for field 'storeId'."
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlipdishError"
                },
                "examples": {
                  "GetGroupById500Example": {
                    "summary": "Default GetGroupById 500 response",
                    "x-microcks-default": true,
                    "value": {
                      "error": {
                        "errorMessage": "Invalid or missing parameters.",
                        "errorCode": "BadRequest",
                        "details": "Validation failed for field 'storeId'."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "api"
            ]
          }
        ],
        "x-microcks-operation": {
          "delay": 0,
          "dispatcher": "FALLBACK"
        }
      },
      "post": {
        "tags": [
          "CatalogGroups"
        ],
        "summary": "Flipdish Update Group",
        "description": "Update Group via the Flipdish Open API v1.0 (POST /api/v1.0/{appId}/catalog/groups/{catalogItemId}).",
        "operationId": "UpdateGroup",
        "parameters": [
          {
            "name": "appId",
            "in": "path",
            "description": "The app id path parameter.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "500123"
          },
          {
            "name": "catalogItemId",
            "in": "path",
            "description": "The catalog item id path parameter.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "500123"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateGroup"
              },
              "examples": {
                "UpdateGroupRequestExample": {
                  "summary": "Default UpdateGroup request",
                  "x-microcks-default": true,
                  "value": {
                    "Sku": "string",
                    "Name": "Example Name",
                    "AutogenerateDisplayText": true,
                    "ImageFileName": "Example Name",
                    "MinSelectCount": 3,
                    "MaxSelectCount": 3,
                    "Products": [],
                    "Metafields": []
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "BadRequest",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlipdishError"
                },
                "examples": {
                  "UpdateGroup400Example": {
                    "summary": "Default UpdateGroup 400 response",
                    "x-microcks-default": true,
                    "value": {
                      "error": {
                        "errorMessage": "Invalid or missing parameters.",
                        "errorCode": "BadRequest",
                        "details": "Validation failed for field 'storeId'."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Authentication has been denied for this request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlipdishError"
                },
                "examples": {
                  "UpdateGroup401Example": {
                    "summary": "Default UpdateGroup 401 response",
                    "x-microcks-default": true,
                    "value": {
                      "error": {
                        "errorMessage": "Invalid or missing parameters.",
                        "errorCode": "BadRequest",
                        "details": "Validation failed for field 'storeId'."
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Successful authentication, but authorization has been denied for this request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlipdishError"
                },
                "examples": {
                  "UpdateGroup403Example": {
                    "summary": "Default UpdateGroup 403 response",
                    "x-microcks-default": true,
                    "value": {
                      "error": {
                        "errorMessage": "Invalid or missing parameters.",
                        "errorCode": "BadRequest",
                        "details": "Validation failed for field 'storeId'."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "NotFound",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlipdishError"
                },
                "examples": {
                  "UpdateGroup404Example": {
                    "summary": "Default UpdateGroup 404 response",
                    "x-microcks-default": true,
                    "value": {
                      "error": {
                        "errorMessage": "Invalid or missing parameters.",
                        "errorCode": "BadRequest",
                        "details": "Validation failed for field 'storeId'."
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlipdishError"
                },
                "examples": {
                  "UpdateGroup500Example": {
                    "summary": "Default UpdateGroup 500 response",
                    "x-microcks-default": true,
                    "value": {
                      "error": {
                        "errorMessage": "Invalid or missing parameters.",
                        "errorCode": "BadRequest",
                        "details": "Validation failed for field 'storeId'."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "api"
            ]
          }
        ],
        "x-microcks-operation": {
          "delay": 0,
          "dispatcher": "FALLBACK"
        }
      }
    },
    "/api/v1.0/{appId}/catalog/groups": {
      "get": {
        "tags": [
          "CatalogGroups"
        ],
        "summary": "Flipdish Get Groups",
        "description": "Get Groups via the Flipdish Open API v1.0 (GET /api/v1.0/{appId}/catalog/groups).",
        "operationId": "GetGroups",
        "parameters": [
          {
            "name": "appId",
            "in": "path",
            "description": "The app id path parameter.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "500123"
          },
          {
            "name": "groupTypes",
            "in": "query",
            "description": "The group types query parameter.",
            "required": true,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "ModifierGroup"
                ]
              }
            },
            "example": [
              "ModifierGroup"
            ]
          },
          {
            "name": "searchTerm",
            "in": "query",
            "description": "The search term query parameter.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "string"
          },
          {
            "name": "page",
            "in": "query",
            "description": "The page query parameter.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 1
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The limit query parameter.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 1
          }
        ],
        "r

# --- truncated at 32 KB (214 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/flipdish/refs/heads/main/openapi/flipdish-catalog-openapi.json