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

# List campaigns

> Returns your campaigns, newest first, one page at a time, with progress counts for each.

Each campaign comes with progress counts. See [Progress fields](https://docs.olimi.ai/api-reference/endpoint/campaigns/campaigns.md#progress-fields) and [Status values](https://docs.olimi.ai/api-reference/endpoint/campaigns/campaigns.md#status-values).

The list doesn't include the schedule and retry settings. Use [Get a campaign](https://docs.olimi.ai/api-reference/endpoint/campaigns/get-campaign.md) for those.

Use `meta.totalPages` to know when you've fetched every page.


## OpenAPI

````yaml get /api/v2/campaigns
openapi: 3.0.1
info:
  title: Customer Management API
  description: API for managing customer lists and customers within those lists
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api-eg.olimi.ai
security:
  - bearerAuth: []
paths:
  /api/v2/campaigns:
    get:
      tags:
        - Campaigns
      summary: List campaigns
      description: >-
        Returns your campaigns, newest first, one page at a time, with progress
        counts for each.
      parameters:
        - name: page
          in: query
          required: false
          description: Page number, starting at `1`.
          schema:
            type: integer
            minimum: 1
            default: 1
        - name: limit
          in: query
          required: false
          description: Campaigns per page.
          schema:
            type: integer
            minimum: 1
            default: 10
        - name: search
          in: query
          required: false
          description: Matches campaigns whose name contains the text. Not case-sensitive.
          schema:
            type: string
        - name: isActive
          in: query
          required: false
          description: Only running campaigns (`true`) or only paused ones (`false`).
          schema:
            type: boolean
        - name: agentId
          in: query
          required: false
          description: Only campaigns that use this agent.
          schema:
            type: string
            format: uuid
        - name: customerListId
          in: query
          required: false
          description: Only campaigns that call this customer list.
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: A page of campaigns.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CampaignListResponse'
        '401':
          description: The `X-API-KEY` header is missing or the key isn't valid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: A query parameter didn't pass validation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
      security:
        - apiKeyAuth: []
components:
  schemas:
    CampaignListResponse:
      type: object
      properties:
        message:
          type: string
          example: Campaigns fetched successfully
        meta:
          $ref: '#/components/schemas/PaginationMeta'
        data:
          type: array
          items:
            $ref: '#/components/schemas/CampaignListItem'
    ApiError:
      type: object
      properties:
        statusCode:
          type: integer
          example: 404
        errorCode:
          type: string
          description: Machine-readable error code.
          example: agent_not_found
        message:
          type: string
          description: Human-readable text. May change; don't match on it.
          example: Agent not found
    ValidationError:
      type: object
      properties:
        statusCode:
          type: integer
          example: 422
        message:
          type: array
          items:
            type: string
          description: What went wrong. Human-readable.
          example:
            - name must be shorter than or equal to 100 characters
        error:
          type: string
          example: Unprocessable Entity
    PaginationMeta:
      type: object
      properties:
        totalItems:
          type: integer
          description: Total items across all pages.
          example: 12
        itemCount:
          type: integer
          description: Items on this page.
          example: 10
        itemsPerPage:
          type: integer
          description: The `limit` used.
          example: 10
        totalPages:
          type: integer
          description: Number of pages.
          example: 2
        currentPage:
          type: integer
          description: The `page` returned.
          example: 1
    CampaignListItem:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: The campaign's ID.
          example: 3e8b5d21-7c4a-4f96-a1d0-6b2e9c7f4a58
        name:
          type: string
          example: September renewals
        callType:
          type: string
          example: outbound
        isActive:
          type: boolean
          example: true
        status:
          type: string
          enum:
            - in-progress
            - paused
            - completed
          description: >-
            See [Status
            values](/api-reference/endpoint/campaigns/campaigns#status-values).
          example: in-progress
        dials:
          type: integer
          description: Calls placed so far, retries included.
          example: 318
        answered:
          type: integer
          description: Contacts who answered at least once.
          example: 142
        minutesUsed:
          type: integer
          description: Call minutes used, each call rounded up to a whole minute.
          example: 407
        hasDidNumbers:
          type: boolean
          description: Whether any phone numbers are linked to the campaign.
          example: false
        agent:
          allOf:
            - $ref: '#/components/schemas/NamedRef'
          nullable: true
          example:
            id: 0d6a3f7e-5b8c-4b1e-9a51-2f1d7c9e4a10
            name: Renewals Agent
        customerLists:
          type: array
          items:
            $ref: '#/components/schemas/NamedRef'
          example:
            - id: 9c4e1b7a-2d5f-4a83-b6e0-3f7d9a1c5e24
              name: September renewals
        createdAt:
          type: string
          format: date-time
          description: When the campaign was created (UTC).
          example: '2026-09-28T10:15:02.418Z'
        updatedAt:
          type: string
          format: date-time
          description: When the campaign was last changed (UTC).
          example: '2026-09-28T10:15:02.418Z'
    NamedRef:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
    apiKeyAuth:
      type: apiKey
      in: header
      name: X-API-KEY

````

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