> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cardapioweb.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Consultar catálogo completo

> Retorna o catálogo completo do estabelecimento incluindo categorias, itens e complementos.

**Rate limit:** 5 requisições por minuto.



## OpenAPI

````yaml /reference/api-catalogo.json get /api/partner/v1/catalog
openapi: 3.1.0
info:
  title: API Catálogo
  version: '1.0'
  description: >-
    A API de catálogo é responsável por fornecer e gerenciar o catálogo completo
    do estabelecimento incluindo categorias, itens, grupos de complementos e
    opções.


    ## Autenticação


    Todas as requisições devem incluir obrigatoriamente os seguintes headers:


    - `X-API-KEY`: token do estabelecimento

    - `X-PARTNER-KEY`: token da integradora


    A ausência de qualquer um desses headers resultará na rejeição da
    requisição.


    ## Rate Limits


    Para o endpoint `GET /api/partner/v1/catalog`, o limite é de **5 requisições
    por minuto**.


    Para os demais endpoints do módulo de Catálogo, o limite é de **100
    requisições por minuto**.
  contact:
    email: integracao@cardapioweb.com
    url: https://cardapioweb.com
    name: Cardápio Web
servers:
  - url: https://integracao.sandbox.cardapioweb.com
    description: Sandbox
  - description: Produção
    url: https://integracao.cardapioweb.com
security:
  - partnerKey: []
    apiKey: []
tags:
  - name: Catálogo Completo
    description: Consulta do catálogo completo do estabelecimento.
  - name: Categorias
    description: Gerenciamento de categorias do cardápio.
  - name: Itens
    description: Gerenciamento de itens (produtos) do cardápio.
  - name: Grupos de Complementos
    description: Gerenciamento de grupos de complementos (option groups) do cardápio.
  - name: Opções
    description: Gerenciamento de opções (subitens/complementos individuais) do cardápio.
  - name: Imagens
    description: Upload e remoção de imagens de categorias, itens e opções.
paths:
  /api/partner/v1/catalog:
    parameters: []
    get:
      tags:
        - Catálogo Completo
      summary: Consultar catálogo completo
      description: >-
        Retorna o catálogo completo do estabelecimento incluindo categorias,
        itens e complementos.


        **Rate limit:** 5 requisições por minuto.
      operationId: catalog
      parameters: []
      requestBody:
        content: {}
      responses:
        '200':
          description: Retorna o catálogo completo do estabelecimento.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Catalog'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  schemas:
    Catalog:
      type: object
      title: Catálogo
      description: Catálogo completo do estabelecimento.
      x-internal: false
      properties:
        categories:
          type: array
          description: Lista de categorias.
          items:
            $ref: '#/components/schemas/Category'
      examples:
        - categories:
            - id: 658
              name: Pizzas salgadas
              description: ''
              index: null
              status: ACTIVE
              image:
                image_url: >-
                  https://storage.googleapis.com/dev-cardapio-web/uploads/category/image/658/image.jpg
                thumbnail_url: >-
                  https://storage.googleapis.com/dev-cardapio-web/uploads/category/image/658/thumb_image.jpg
              allowed_times: []
              items:
                - id: 2988
                  name: Margherita
                  description: >-
                    A clássica pizza italiana com ingredientes frescos e sabores
                    simples.
                  image:
                    image_url: >-
                      https://storage.googleapis.com/dev-cardapio-web/uploads/item/image/2988/image.jpg
                    thumbnail_url: >-
                      https://storage.googleapis.com/dev-cardapio-web/uploads/item/image/2988/thumb_image.jpg
                  highlighted: false
                  external_code: ''
                  price: 30
                  cost_price: 12.5
                  stock: 0
                  active_stock_control: false
                  index: null
                  available_for:
                    - delivery
                    - service_desk
                    - table
                    - view_only
                  hide_observation_field: false
                  adults_only: false
                  promotional_price_active: false
                  promotional_price: null
                  promotional_price_schedules: null
                  status: ACTIVE
                  unit_type: UN
                  badge: null
                  kind: regular_item
                  allowed_times: []
                  extra_images: []
                  option_groups:
                    - id: 1039
                      name: Tamanho
                      status: ACTIVE
                      choice_type: SINGLE
                      price_calculation_type: SUM
                      minimum_quantity: 1
                      maximum_quantity: 1
                      index: 1
                      options:
                        - id: 2883
                          name: Pequena
                          description: null
                          external_code: null
                          status: ACTIVE
                          image: null
                          cost_price: 0
                          active_stock_control: false
                          stock: 0
                          index: 1
                          max_quantity: null
                          price: 10
                        - id: 2884
                          name: Média
                          description: null
                          external_code: null
                          status: ACTIVE
                          image: null
                          cost_price: 0
                          active_stock_control: false
                          stock: 0
                          index: 2
                          max_quantity: null
                          price: 15
                        - id: 2885
                          name: Grande
                          description: null
                          external_code: null
                          status: ACTIVE
                          image: null
                          cost_price: 0
                          active_stock_control: false
                          stock: 0
                          index: 3
                          max_quantity: null
                          price: 20
                  combo_steps: []
                - id: 3010
                  name: Combo da promoção!
                  description: ''
                  image:
                    image_url: >-
                      https://storage.googleapis.com/dev-cardapio-web/uploads/item/image/3010/image.jpg
                    thumbnail_url: >-
                      https://storage.googleapis.com/dev-cardapio-web/uploads/item/image/3010/thumb_image.jpg
                  highlighted: false
                  external_code: ''
                  price: 16
                  cost_price: 0
                  stock: 0
                  active_stock_control: false
                  index: null
                  available_for:
                    - delivery
                    - service_desk
                  hide_observation_field: false
                  adults_only: false
                  promotional_price_active: false
                  promotional_price: null
                  promotional_price_schedules: null
                  status: ACTIVE
                  unit_type: UN
                  badge: null
                  kind: combo
                  allowed_times:
                    - weekday: wednesday
                      start_at: '17:00'
                      end_at: '23:59'
                    - weekday: tuesday
                      start_at: '17:00'
                      end_at: '23:59'
                    - weekday: monday
                      start_at: '00:00'
                      end_at: '23:59'
                  extra_images: []
                  option_groups: []
                  combo_steps:
                    - id: 123
                      name: Bebida
                      price: 5
                      remove_add_on_prices: false
                      index: 1
                      combo_step_items:
                        - item_id: 3006
                          index: 1
                          additional_price: 3
                        - item_id: 3005
                          index: 1
                          additional_price: 0
                    - id: 124
                      name: Pizza
                      price: 14
                      remove_add_on_prices: false
                      index: 0
                      combo_step_items:
                        - item_id: 2991
                          index: 1
                          additional_price: 0
                        - item_id: 2992
                          index: 1
                          additional_price: 0
            - id: 661
              name: Bebidas
              description: ''
              index: null
              status: ACTIVE
              image: null
              allowed_times: []
              items:
                - id: 3007
                  name: Cerveja Lata
                  description: ''
                  image:
                    image_url: >-
                      https://storage.googleapis.com/dev-cardapio-web/uploads/item/image/3007/image.jpg
                    thumbnail_url: >-
                      https://storage.googleapis.com/dev-cardapio-web/uploads/item/image/3007/thumb_image.jpg
                  highlighted: false
                  external_code: ''
                  price: 8
                  cost_price: 0
                  stock: 0
                  active_stock_control: false
                  index: null
                  available_for:
                    - delivery
                    - service_desk
                    - table
                    - view_only
                  hide_observation_field: false
                  adults_only: true
                  promotional_price_active: false
                  promotional_price: null
                  promotional_price_schedules: null
                  status: ACTIVE
                  unit_type: UN
                  badge: null
                  kind: regular_item
                  allowed_times: []
                  extra_images: []
                  option_groups:
                    - id: 1044
                      name: Escolha sua cerveja
                      status: ACTIVE
                      choice_type: SINGLE
                      price_calculation_type: SUM
                      minimum_quantity: 1
                      maximum_quantity: 1
                      index: 1
                      options:
                        - id: 2898
                          name: Heineken
                          description: null
                          external_code: null
                          status: ACTIVE
                          image: null
                          cost_price: 0
                          active_stock_control: false
                          stock: 0
                          index: 1
                          max_quantity: null
                          price: 0
                  combo_steps: []
    Category:
      type: object
      title: Categoria
      description: Categoria do cardápio que agrupa itens relacionados.
      properties:
        id:
          type: integer
          description: Identificador único da categoria.
        name:
          type: string
          description: Nome da categoria.
        description:
          type:
            - 'null'
            - string
          description: Descrição da categoria.
        index:
          type:
            - integer
            - 'null'
          description: Índice de exibição da categoria.
        status:
          type: string
          enum:
            - ACTIVE
            - INACTIVE
            - MISSING
          description: |-
            Status da categoria.
            - `ACTIVE`: categoria ativa e visível.
            - `INACTIVE`: categoria oculta.
            - `MISSING`: categoria em falta.
        image:
          $ref: '#/components/schemas/Image'
          description: Imagem da categoria.
        allowed_times:
          type: array
          description: >-
            Horários de disponibilidade da categoria. Array vazio significa
            sempre disponível.
          items:
            $ref: '#/components/schemas/AllowedTimes'
        items:
          type: array
          description: Lista de itens da categoria.
          items:
            $ref: '#/components/schemas/Item'
    Unauthorized:
      type: object
      title: Unauthorized
      description: >-
        Resposta de erro de autenticação. Retornado quando os headers
        `X-API-KEY` ou `X-PARTNER-KEY` estão ausentes ou são inválidos.
      examples:
        - code: 4010
          message: Token inválido.
      properties:
        code:
          type: integer
          description: Código interno de identificação do erro.
        message:
          type: string
          description: Mensagem de resumo do erro.
      required:
        - code
        - message
    Image:
      title: Image
      type:
        - object
        - 'null'
      description: Imagem associada a um recurso (categoria, item ou opção).
      properties:
        image_url:
          type: string
          format: uri
          description: URL da imagem versão padrão.
        thumbnail_url:
          type: string
          format: uri
          description: URL da imagem versão reduzida (thumbnail).
    AllowedTimes:
      title: AllowedTimes
      type: object
      description: Intervalo de horário de disponibilidade para um dia da semana.
      properties:
        weekday:
          type: string
          enum:
            - sunday
            - monday
            - tuesday
            - wednesday
            - thursday
            - friday
            - saturday
          description: Dia da semana.
        start_at:
          type: string
          example: '18:00'
          description: Horário de início `(HH:MM)` no fuso horário do estabelecimento.
        end_at:
          type: string
          example: '23:00'
          description: Horário de fim `(HH:MM)` no fuso horário do estabelecimento.
    Item:
      type: object
      title: Item
      description: Produto do cardápio que pode ser item regular ou combo.
      properties:
        id:
          type: integer
          description: Identificador único do item.
        name:
          type: string
          description: Nome do item.
        description:
          type:
            - string
            - 'null'
          description: >-
            Descrição do item. Suporta formatação: negrito (\*texto\*), itálico
            (\_texto\_) ou riscado (\~texto\~).
        image:
          $ref: '#/components/schemas/Image'
          description: Imagem principal do item.
        highlighted:
          type: boolean
          description: Indica se o item deve aparecer em destaque no site.
        external_code:
          type:
            - string
            - 'null'
          description: Código externo do item.
        price:
          type: number
          description: >-
            Preço base do item. Deve ser um número positivo com no máximo 2
            casas decimais.
          minimum: 0
        cost_price:
          type: number
          description: >-
            Preço de custo do item. Deve ser um número positivo com no máximo 2
            casas decimais.
          minimum: 0
        stock:
          type: number
          description: Quantidade disponível em estoque.
          minimum: 0
        active_stock_control:
          type: boolean
          description: Indica se o controle de estoque está ativo.
        index:
          type:
            - integer
            - 'null'
          description: Índice de exibição do item dentro da categoria.
        available_for:
          type: array
          description: |-
            Locais onde o item está disponível.
            - `delivery`: cardápio digital de delivery e retirada.
            - `internal_table`: pedido de mesa pelo portal.
            - `table`: pedido de mesa pelo cardápio digital.
            - `service_desk`: cardápio digital de balcão e portal.
            - `view_only`: cardápio digital de visualização.
          items:
            type: string
            enum:
              - delivery
              - table
              - service_desk
              - view_only
              - internal_table
        hide_observation_field:
          type: boolean
          description: Indica se o campo de observações deve ser escondido.
        adults_only:
          type: boolean
          description: Indica se o item é apenas para maiores de 18 anos.
        promotional_price_active:
          type: boolean
          description: Indica se o preço promocional está ativo.
        promotional_price:
          type:
            - number
            - 'null'
          description: >-
            Preço promocional do item. Deve ser menor que `price` quando ativo.
            É obrigatório se `promotional_price_active` for `true`.
          minimum: 0
        promotional_price_schedules:
          type:
            - array
            - 'null'
          description: >-
            Horários em que o preço promocional é aplicado. Se
            `promotional_price_active` for `true`, define os dias e horários da
            promoção.
          items:
            $ref: '#/components/schemas/PromotionalPriceSchedule'
        status:
          type: string
          enum:
            - ACTIVE
            - INACTIVE
            - MISSING
          description: |-
            Status do item.
            - `ACTIVE`: item ativo e visível.
            - `INACTIVE`: item oculto.
            - `MISSING`: item em falta.
        unit_type:
          type: string
          enum:
            - UN
            - KG
            - L
          default: UN
          description: |-
            Unidade de medida do item.
            - `UN`: unidade (padrão).
            - `KG`: quilograma.
            - `L`: litro.
        badge:
          type:
            - string
            - 'null'
          enum:
            - best_seller
            - new_item
            - recommended
            - limited_edition
          description: |-
            Badge de destaque do item.
            - `best_seller`: mais vendido.
            - `new_item`: novidade.
            - `recommended`: recomendado.
            - `limited_edition`: edição limitada.
        kind:
          type: string
          enum:
            - regular_item
            - combo
          description: |-
            Tipo do item.
            - `regular_item`: item normal.
            - `combo`: combo.
        allowed_times:
          type: array
          description: >-
            Horários de disponibilidade do item. Array vazio significa sempre
            disponível.
          items:
            $ref: '#/components/schemas/AllowedTimes'
        extra_images:
          type: array
          description: Imagens extras do item.
          items:
            $ref: '#/components/schemas/Image'
        option_groups:
          type: array
          description: >-
            Grupos de complementos associados ao item. Disponível quando `kind`
            é `regular_item`.
          items:
            $ref: '#/components/schemas/OptionGroupInItem'
        combo_steps:
          type: array
          description: Etapas do combo. Disponível quando `kind` é `combo`.
          items:
            $ref: '#/components/schemas/ComboStep'
    PromotionalPriceSchedule:
      title: PromotionalPriceSchedule
      type: object
      description: >-
        Dia da semana e intervalo de horário para aplicação de preço
        promocional.
      required:
        - day
      properties:
        day:
          type: string
          enum:
            - sunday
            - monday
            - tuesday
            - wednesday
            - thursday
            - friday
            - saturday
          description: Dia da semana.
        start:
          type:
            - string
            - 'null'
          description: >-
            Horário de início `(HH:MM)` da promoção no fuso horário do
            estabelecimento. Se omitido juntamente com `end`, a promoção será
            válida durante todo o dia. É obrigatório caso `end` seja informado.
          example: '18:00'
        end:
          type:
            - string
            - 'null'
          description: >-
            Horário de fim `(HH:MM)` da promoção no fuso horário do
            estabelecimento. Se omitido juntamente com `start`, a promoção será
            válida durante todo o dia. É obrigatório caso `start` seja
            informado. Deve ser maior que o `start`.
          example: '23:00'
    OptionGroupInItem:
      type: object
      title: Grupo de complementos (no item)
      description: Grupo de complementos associado a um item.
      properties:
        id:
          type: integer
          description: Identificador único do grupo de complementos.
        name:
          type: string
          description: Nome do grupo de complementos.
        status:
          type: string
          enum:
            - ACTIVE
            - INACTIVE
            - MISSING
          description: |-
            Status do grupo de complementos.
            - `ACTIVE`: grupo ativo e visível.
            - `INACTIVE`: grupo oculto.
            - `MISSING`: grupo em falta.
        choice_type:
          type: string
          enum:
            - SINGLE
            - MULTIPLE
            - SUMMABLE
          description: >-
            Regra de escolha das opções no grupo.

            - `SINGLE`: apenas uma opção pode ser escolhida.

            - `MULTIPLE`: mais de uma opção pode ser escolhida, sem repetição.

            - `SUMMABLE`: mais de uma opção pode ser escolhida, com repetição
            permitida.
        price_calculation_type:
          type: string
          enum:
            - SUM
            - MEAN
            - MAX
            - MIN
          description: |-
            Regra de cálculo do preço quando múltiplas opções são selecionadas.
            - `SUM`: soma dos preços das opções selecionadas.
            - `MEAN`: média dos preços das opções selecionadas.
            - `MAX`: preço da opção mais cara entre as selecionadas.
            - `MIN`: preço da opção mais barata entre as selecionadas.
        minimum_quantity:
          type: integer
          description: Quantidade mínima de opções.
          minimum: 0
        maximum_quantity:
          type: integer
          description: Quantidade máxima de opções.
          minimum: 1
        index:
          type:
            - integer
            - 'null'
          description: Índice de exibição do grupo dentro do item.
        options:
          type: array
          description: Lista das opções do grupo.
          items:
            $ref: '#/components/schemas/OptionInGroup'
    ComboStep:
      title: ComboStep
      type: object
      description: Etapa de seleção de um combo.
      properties:
        id:
          type: integer
          description: Identificador único da etapa.
        name:
          type: string
          description: Nome da etapa.
        price:
          type: number
          description: Preço base da etapa, independente do item escolhido.
          minimum: 0
        remove_add_on_prices:
          type: boolean
          description: >-
            Se `true`, preços de complementos escolhidos são ignorados no
            cálculo.
        index:
          type:
            - integer
            - 'null'
          description: Índice de exibição da etapa dentro do combo.
        combo_step_items:
          type: array
          description: Itens disponíveis nesta etapa.
          items:
            $ref: '#/components/schemas/ComboStepItem'
    OptionInGroup:
      type: object
      title: Opção (no grupo de complemento)
      description: Opção dentro de um grupo de complementos.
      properties:
        id:
          type: integer
          description: Identificador único da opção (subitem).
        name:
          type: string
          description: Nome da opção.
        description:
          type:
            - 'null'
            - string
          description: Descrição da opção.
        external_code:
          type:
            - 'null'
            - string
          description: Código externo da opção.
        status:
          type: string
          enum:
            - ACTIVE
            - INACTIVE
            - MISSING
          description: |-
            Status da opção.
            - `ACTIVE`: opção ativa e visível.
            - `INACTIVE`: opção oculta.
            - `MISSING`: opção em falta.
        image:
          $ref: '#/components/schemas/Image'
          description: Imagem da opção.
        cost_price:
          type: number
          description: Preço de custo da opção.
          minimum: 0
        active_stock_control:
          type: boolean
          description: Indica se o controle de estoque está ativo.
        stock:
          type:
            - number
            - 'null'
          description: Quantidade disponível em estoque.
        index:
          type:
            - integer
            - 'null'
          description: Índice de exibição da opção dentro do grupo.
        max_quantity:
          type:
            - integer
            - 'null'
          description: >-
            Quantidade máxima desta opção que pode ser selecionada dentro do
            grupo de complementos. Relevante quando `choice_type` do grupo é
            `SUMMABLE`.
        price:
          type: number
          description: >-
            Preço da opção dentro deste grupo. Deve ser um número positivo com
            no máximo 2 casas decimais. Uma mesma opção pode ter preços
            diferentes em grupos diferentes.
          minimum: 0
        badge:
          x-stoplight:
            id: l0rqsi0rwrrzs
          description: |-
            Badge de destaque da opção dentro do grupo.
            - `best_seller`: mais vendido.
            - `new_item`: novidade.
            - `recommended`: recomendado.
            - `limited_edition`: edição limitada.
          enum:
            - best_seller
            - new_item
            - recommended
            - limited_edition
    ComboStepItem:
      title: ComboStepItem
      type: object
      description: Item disponível para seleção em uma etapa de combo.
      properties:
        item_id:
          type: integer
          description: ID do item disponível nesta etapa.
        index:
          type:
            - integer
            - 'null'
          description: Índice de exibição do item dentro da etapa.
        additional_price:
          type: number
          description: >-
            Preço adicional cobrado pela escolha deste item, somado ao preço
            base da etapa.
          minimum: 0
  responses:
    Unauthorized:
      description: >-
        Não autorizado. O token no header `X-API-KEY` não foi enviado ou é
        inválido.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Unauthorized'
          example:
            code: 4010
            message: Token inválido.
    TooManyRequests:
      description: >-
        Muitas requisições foram feitas em um curto período. Verifique as regras
        de rate limit na descrição da API.
      content: {}
  securitySchemes:
    partnerKey:
      name: X-PARTNER-KEY
      type: apiKey
      in: header
      description: >-
        Token de autenticação da integradora. Para ter esse token, a integradora
        precisa estar previamente cadastrada em nosso sistema. Deve ser enviado
        no header `X-PARTNER-KEY`.
    apiKey:
      name: X-API-KEY
      type: apiKey
      in: header
      description: Token de autenticação da API. Deve ser enviado no header `X-API-KEY`.

````