> ## 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 Promos

> Lista as promoções da loja.



## OpenAPI

````yaml /openapi/promos.yaml get /app/promo
openapi: 3.1.0
info:
  title: CentralCart API
  version: 1.0.0
servers:
  - url: https://api.centralcart.io/v1
    description: Produção
security:
  - bearerAuth: []
paths:
  /app/promo:
    get:
      tags:
        - Promos
      summary: List Promos
      description: Lista as promoções da loja.
      operationId: listPromos
      parameters:
        - name: page
          in: query
          required: false
          description: Número da página.
          schema:
            type: number
        - name: all
          in: query
          required: false
          description: Retorna todas as promoções de uma vez, sem paginação.
          schema:
            type: boolean
        - name: name
          in: query
          required: false
          description: Filtra pelo nome da promoção.
          schema:
            type: string
        - name: type
          in: query
          required: false
          description: Filtra pelo tipo da promoção.
          schema:
            type: string
            enum:
              - PROGRESSIVE
              - BUY_X_PAY_Y
        - name: status
          in: query
          required: false
          description: Filtra promoções ativadas ou desativadas.
          schema:
            type: string
            enum:
              - ENABLED
              - DISABLED
      responses:
        '200':
          description: Lista de promoções.
          content:
            application/json:
              schema:
                type: object
                properties:
                  meta:
                    type: object
                    properties:
                      total:
                        type: number
                      per_page:
                        type: number
                      current_page:
                        type: number
                      last_page:
                        type: number
                      first_page:
                        type: number
                      first_page_url:
                        type: string
                      last_page_url:
                        type: string
                      next_page_url:
                        type: string
                        nullable: true
                      previous_page_url:
                        type: string
                        nullable: true
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Promo'
              example:
                meta:
                  total: 1
                  per_page: 15
                  current_page: 1
                  last_page: 1
                  first_page: 1
                  first_page_url: /?page=1
                  last_page_url: /?page=1
                  next_page_url: null
                  previous_page_url: null
                data:
                  - id: 7
                    store_id: 2
                    name: Leve mais, pague menos
                    type: PROGRESSIVE
                    condition_mode: QUANTITY
                    enabled: true
                    starts_at: '2026-10-01T00:00:00.000-03:00'
                    ends_at: null
                    created_at: '2026-09-28T14:02:11.000-03:00'
                    updated_at: '2026-09-28T14:02:11.000-03:00'
                    targets:
                      - type: CATEGORY
                        id: 40
                    tiers:
                      - id: 21
                        store_id: 2
                        promo_id: 7
                        min_amount: 2
                        reward_type: PERCENTAGE
                        reward_value: 10
                        reward_quantity: null
                        created_at: '2026-09-28T14:02:11.000-03:00'
                        updated_at: '2026-09-28T14:02:11.000-03:00'
                        targets: []
                      - id: 22
                        store_id: 2
                        promo_id: 7
                        min_amount: 3
                        reward_type: PERCENTAGE
                        reward_value: 15
                        reward_quantity: null
                        created_at: '2026-09-28T14:02:11.000-03:00'
                        updated_at: '2026-09-28T14:02:11.000-03:00'
                        targets: []
components:
  schemas:
    Promo:
      type: object
      properties:
        id:
          type: number
          description: ID da promoção
        store_id:
          type: number
          description: ID da loja
        name:
          type: string
          description: Nome da promoção
        type:
          type: string
          enum:
            - PROGRESSIVE
            - BUY_X_PAY_Y
          description: Tipo da promoção
        condition_mode:
          type: string
          enum:
            - QUANTITY
            - VALUE
          description: Se o mínimo das faixas é em unidades ou em valor (R$)
        enabled:
          type: boolean
          description: Indica se a promoção está ativada
        starts_at:
          type: string
          description: Início da promoção
        ends_at:
          type: string
          nullable: true
          description: Fim da promoção. `null` não expira
        created_at:
          type: string
          description: Data de criação
        updated_at:
          type: string
          description: Data da última atualização
        targets:
          type: array
          description: Produtos que contam para atingir o mínimo
          items:
            $ref: '#/components/schemas/Target'
        tiers:
          type: array
          description: Faixas, do menor para o maior mínimo
          items:
            $ref: '#/components/schemas/PromoTier'
    Target:
      type: object
      description: Onde a regra vale. `STORE` é a loja inteira e não leva `id`.
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - STORE
            - CATEGORY
            - PRODUCT
          description: Tipo do alvo. Variação de produto é `PRODUCT` com o ID da variação
        id:
          type: number
          description: ID da categoria ou do produto. Obrigatório fora do `STORE`
    PromoTier:
      type: object
      properties:
        id:
          type: number
          description: ID da faixa
        store_id:
          type: number
          description: ID da loja
        promo_id:
          type: number
          description: ID da promoção
        min_amount:
          type: number
          description: >-
            Mínimo para liberar a faixa, em unidades ou em R$ conforme o
            `condition_mode`
        reward_type:
          type: string
          enum:
            - PERCENTAGE
            - VALUE
            - FREE
          description: Tipo de recompensa
        reward_value:
          type: number
          nullable: true
          description: >-
            Percentual ou valor em R$ do desconto. `null` quando a recompensa é
            `FREE`
        reward_quantity:
          type: number
          nullable: true
          description: >-
            Quantas unidades de cada produto da recompensa saem com desconto. Só
            no `BUY_X_PAY_Y`
        created_at:
          type: string
          description: Data de criação
        updated_at:
          type: string
          description: Data da última atualização
        targets:
          type: array
          description: Produtos que o cliente leva com desconto. Só no `BUY_X_PAY_Y`
          items:
            $ref: '#/components/schemas/Target'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Token de API gerado no painel da CentralCart.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.