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

# List campaign folders

> List campaign folders. By default this returns only root folders. Use `includeChildren=true` to return nested folders too.

Responses include direct Enginy app URLs when available. Each folder response includes an `appUrl` that opens the folder in Enginy. MCP agents should return those URLs to users whenever they are present in the response.

    > **Required scope:** `CAMPAIGNS_READ`
    >
    > **Rate limit:** 100 requests per minute



## OpenAPI

````yaml https://openapi.enginy.ai/definitions.json get /v1/campaigns/folders
openapi: 3.1.0
info:
  title: Enginy API
  version: 1.0.0
  description: Public API for Enginy platform
servers:
  - url: https://openapi.enginy.ai
    description: Configured server
security: []
tags:
  - name: AI Variables
    description: >-
      Manage AI variables and discover the entity fields you can reference in
      prompts and entity requests.
  - name: Inbox
    description: >-
      Inbox endpoints for listing contact threads, reading thread messages,
      managing tags, and sending manual replies.
  - name: Workflows
    description: >-
      Build, validate, publish, run, and inspect advanced (graph) workflows,
      plus the block/condition catalog needed to author a workflow plan.
paths:
  /v1/campaigns/folders:
    get:
      tags:
        - Campaigns
      summary: List campaign folders
      description: >-
        List campaign folders. By default this returns only root folders. Use
        `includeChildren=true` to return nested folders too.


        Responses include direct Enginy app URLs when available. Each folder
        response includes an `appUrl` that opens the folder in Enginy. MCP
        agents should return those URLs to users whenever they are present in
        the response.

            > **Required scope:** `CAMPAIGNS_READ`
            >
            > **Rate limit:** 100 requests per minute
      parameters:
        - schema:
            type: string
            enum:
              - 'true'
              - 'false'
            description: >-
              When `true`, includes nested folders instead of returning only
              root folders.
          required: false
          description: >-
            When `true`, includes nested folders instead of returning only root
            folders.
          name: includeChildren
          in: query
        - schema:
            type: string
            enum:
              - 'true'
              - 'false'
            description: When `true`, includes recursive subfolder and campaign counts.
          required: false
          description: When `true`, includes recursive subfolder and campaign counts.
          name: includeRecursiveCounts
          in: query
      responses:
        '200':
          description: Campaign folders retrieved successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                      - success
                  message:
                    type: string
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: number
                        appUrl:
                          type: string
                          format: uri
                        name:
                          type: string
                        parentId:
                          type:
                            - number
                            - 'null'
                        createdAt:
                          type: string
                          format: date-time
                        updatedAt:
                          type: string
                          format: date-time
                        campaignsCount:
                          type: number
                        subfoldersCount:
                          type: number
                        totalSubfoldersCount:
                          type: number
                        totalCampaignsCount:
                          type: number
                      required:
                        - id
                        - appUrl
                        - name
                        - parentId
                        - createdAt
                        - updatedAt
                        - campaignsCount
                        - subfoldersCount
                required:
                  - status
                  - message
                  - data
      security:
        - apiKey: []
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key

````