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

# List Categories

> Lista as categorias principais da loja, ordenadas por `position`.
<Note>A resposta é um array, sem paginação. Categorias marcadas como ocultas não aparecem.</Note>



## OpenAPI

````yaml /openapi/storefront-catalog.yaml get /webstore/category
openapi: 3.1.0
info:
  title: CentralCart Storefront API (Catálogo)
  version: 1.0.0
  description: >-
    Produtos, categorias e posts do blog da loja. Nenhum destes endpoints exige
    autenticação. A loja é resolvida pelo header `x-store-domain`.
servers:
  - url: https://api.centralcart.io/v1
    description: Produção
security: []
paths:
  /webstore/category:
    get:
      tags:
        - Catalogo
      summary: List Categories
      description: >-
        Lista as categorias principais da loja, ordenadas por `position`.

        <Note>A resposta é um array, sem paginação. Categorias marcadas como
        ocultas não aparecem.</Note>
      operationId: listWebstoreCategories
      parameters:
        - $ref: '#/components/parameters/StoreDomain'
        - name: include_prices
          in: query
          required: false
          description: >-
            Quando `true`, inclui `min_price` e `max_price` por categoria, já
            considerando as variações de cada produto. Deixa a resposta mais
            lenta, então só peça quando for exibir faixa de preço.
          schema:
            type: boolean
        - name: include_sub_categories
          in: query
          required: false
          description: >-
            Quando `true`, inclui as subcategorias em `sub_categories` (padrão:
            `true`).
          schema:
            type: boolean
      responses:
        '200':
          description: Lista de categorias principais
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Category'
              example:
                - id: 1
                  store_id: 1
                  parent_id: null
                  position: 1
                  name: VIPs
                  slug: vips
                  image: https://cdn.centralcart.io/stores/1/categories/vips.png
                  banner: null
                  hide_category: false
                  hide_subcategory: false
                  packages_count: 8
                  min_price: 10
                  max_price: 250
                  sub_categories:
                    - id: 1
                      store_id: 1
                      parent_id: null
                      position: 1
                      name: VIPs
                      slug: vips
                      image: https://cdn.centralcart.io/stores/1/categories/vips.png
                      banner: null
                      hide_category: false
                      hide_subcategory: false
                      packages_count: 3
                    - id: 4
                      store_id: 1
                      parent_id: 1
                      position: 2
                      name: VIPs Sazonais
                      slug: vips-sazonais
                      image: null
                      banner: null
                      hide_category: false
                      hide_subcategory: false
                      packages_count: 5
                  created_at: '2024-03-03T23:43:12.000-03:00'
                  updated_at: '2024-03-03T23:43:12.000-03:00'
        '404':
          $ref: '#/components/responses/StoreNotFound'
      security: []
components:
  parameters:
    StoreDomain:
      name: x-store-domain
      in: header
      required: true
      description: 'Domínio da sua loja (ex: sualoja.centralcart.ai)'
      schema:
        type: string
  schemas:
    Category:
      type: object
      properties:
        id:
          type: number
        store_id:
          type: number
        parent_id:
          type: number
          nullable: true
        position:
          type: number
        name:
          type: string
        slug:
          type: string
        image:
          type: string
          nullable: true
        banner:
          type: string
          nullable: true
        hide_category:
          type: boolean
        hide_subcategory:
          type: boolean
        packages_count:
          type: number
          description: Quantidade de produtos disponíveis e habilitados nesta categoria.
        min_price:
          type: number
          description: >-
            Só presente com `include_prices=true`, e omitido quando a categoria
            não tem produtos.
        max_price:
          type: number
          description: >-
            Só presente com `include_prices=true`, e omitido quando a categoria
            não tem produtos.
        sub_categories:
          type: array
          description: >-
            Subcategorias visíveis, ordenadas por `position`.

            A própria categoria é incluída como **primeiro elemento** desta
            lista, para que a navegação por abas mostre "todos" antes das
            subdivisões. Filtre por `parent_id` se quiser apenas as filhas de
            verdade.
          items:
            $ref: '#/components/schemas/Category'
        created_at:
          type: string
        updated_at:
          type: string
    Error:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
              code:
                type: string
              ref:
                type: string
  responses:
    StoreNotFound:
      description: Loja não encontrada para o `x-store-domain` informado
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            errors:
              - message: Store not found.

````