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

# Get campaigns

> Returns campaigns belonging to the authenticated API-key user with pagination, search, and status filters.



## OpenAPI

````yaml /openapi.json get /v1/campaigns
openapi: 3.1.0
info:
  title: LeadVector API
  version: '1'
  description: >-
    Find and verify business emails and mobile numbers, enrich people and
    companies, and run your email campaigns, mailboxes and inbox. Send your API
    key in the `x-api-key` header.
servers:
  - url: https://prod.leadvector.app
    description: Production
security:
  - access-key: []
tags:
  - name: Authentication
    description: Check that an API key works.
  - name: Lookups
    description: >-
      Find business emails and mobile numbers, verify emails, and find the
      person behind an email.
  - name: Enrichment
    description: The full profile of a person or a company.
  - name: Campaigns
    description: Email campaigns and their sequences.
  - name: Leads
    description: A campaign's leads.
  - name: Email accounts
    description: The mailboxes campaigns send from, and their warmup.
  - name: Inbox
    description: Replies to your campaigns, in one inbox.
  - name: Webhooks
    description: Subscribe URLs to events, and read the events sent.
  - name: Campaign events
    description: >-
      A campaign's lifecycle: created, launched, paused, resumed, stopped,
      completed, deleted.
  - name: Lead events
    description: A lead joining a campaign, replying, being labelled, finishing or failing.
  - name: Email events
    description: Each step's email to a lead, sent or failed.
  - name: Inbox events
    description: Mail the inbox receives, and the replies and forwards sent from it.
  - name: Email account events
    description: A mailbox's connection, pause, cooldown, warmup health and deletion.
  - name: Lookup events
    description: >-
      A single lookup’s result, in the app, the extension or the API: an email
      or a mobile found, an email verified, a person or a company enriched.
  - name: Bulk job events
    description: A bulk job (a file of lookups) completing or failing.
  - name: List events
    description: A contact saved to one of the team’s lists.
  - name: Credit events
    description: The team’s credits running low, or out.
  - name: Test event
    description: The event an endpoint gets when you send it a test.
paths:
  /v1/campaigns:
    get:
      tags:
        - Campaigns
      summary: Get campaigns
      description: >-
        Returns campaigns belonging to the authenticated API-key user with
        pagination, search, and status filters.
      operationId: ApiV1CampaignController_getCampaigns
      parameters:
        - name: page
          required: false
          in: query
          description: Page number
          schema:
            minimum: 1
            default: 1
            example: 1
            type: number
        - name: limit
          required: false
          in: query
          description: Number of records per page
          schema:
            minimum: 1
            default: 10
            example: 10
            type: number
        - name: search
          required: false
          in: query
          description: Search campaign by name
          schema:
            example: My Campaign
            type: string
        - name: campaignStatus
          required: false
          in: query
          description: Filter campaigns by status
          schema:
            type: string
            enum:
              - DRAFT
              - ACTIVE
              - PAUSED
              - STOPPED
              - COMPLETED
            example: ACTIVE
      responses:
        '200':
          description: Campaign list fetched successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CampaignListResponseDto'
        '400':
          description: Invalid pagination, search, or campaign status filter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponseDto'
        '401':
          description: API_KEY_REQUIRED / INVALID_API_KEY
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponseDto'
        '403':
          description: ACCOUNT_DEACTIVATED / TEAM_DEACTIVATED
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponseDto'
        '429':
          description: RATE_LIMIT_EXCEEDED, with a Retry-After header
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitErrorResponseDto'
      security:
        - access-key: []
components:
  schemas:
    CampaignListResponseDto:
      type: object
      properties:
        message:
          type: string
          example: Campaigns fetched successfully
        data:
          type: array
          items:
            $ref: '#/components/schemas/CampaignWithCountsDto'
        pagination:
          $ref: '#/components/schemas/CampaignPageMetaDto'
      required:
        - message
        - data
        - pagination
    ApiErrorResponseDto:
      type: object
      properties:
        statusCode:
          type: number
          example: 401
        message:
          description: >-
            A code in capitals; the list of messages when the body fails
            validation; `Internal server error` for a 500.
          oneOf:
            - type: string
            - type: array
              items:
                type: string
          example: INVALID_API_KEY
        error:
          type: string
          description: The status's name.
          example: Unauthorized
        traceId:
          type: string
          description: Quote it when you contact support.
          example: 4f1c2b7e9a0d4c3b8e6f5a2d1c0b9e8f
        timestamp:
          type: string
          example: '2026-11-03T09:41:12.000Z'
        path:
          type: string
          example: /v1/find-email
      required:
        - statusCode
        - message
        - traceId
        - timestamp
        - path
    RateLimitErrorResponseDto:
      type: object
      properties:
        statusCode:
          type: number
          example: 401
        message:
          description: The error's code.
          oneOf:
            - type: string
            - type: array
              items:
                type: string
          example: RATE_LIMIT_EXCEEDED
        error:
          type: string
          description: The status's name.
          example: Unauthorized
        traceId:
          type: string
          description: Quote it when you contact support.
          example: 4f1c2b7e9a0d4c3b8e6f5a2d1c0b9e8f
        timestamp:
          type: string
          example: '2026-11-03T09:41:12.000Z'
        path:
          type: string
          example: /v1/find-email
        limit:
          type: number
          description: Calls allowed per window.
          example: 10
        windowSeconds:
          type: number
          example: 60
        retryAfterSeconds:
          type: number
          description: Seconds until the next call is allowed.
          example: 6
      required:
        - statusCode
        - message
        - traceId
        - timestamp
        - path
        - limit
        - windowSeconds
        - retryAfterSeconds
    CampaignWithCountsDto:
      type: object
      properties:
        uuid:
          type: string
          example: 019f2504-58b8-77ec-9c3f-54f5d6df733e
        name:
          type: string
          example: Q4 founders
        dailyLimit:
          type: number
          description: Emails sent per day at most.
          example: 50
        campaignType:
          type: string
          enum:
            - EMAIL
            - LINKEDIN
          example: EMAIL
        campaignStatus:
          type: string
          enum:
            - DRAFT
            - ACTIVE
            - PAUSED
            - STOPPED
            - COMPLETED
          example: DRAFT
        timezone:
          type: string
          example: UTC
        startDate:
          example: null
          format: date-time
          type:
            - string
            - 'null'
        endDate:
          example: null
          format: date-time
          type:
            - string
            - 'null'
        activeDays:
          example:
            - Monday
            - Tuesday
          items:
            type: string
            enum:
              - Monday
              - Tuesday
              - Wednesday
              - Thursday
              - Friday
              - Saturday
              - Sunday
          type:
            - array
            - 'null'
        fromTime:
          example: '09:00:00'
          type:
            - string
            - 'null'
        toTime:
          example: '17:00:00'
          type:
            - string
            - 'null'
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        leadsCount:
          type: number
          example: 120
        stepsCount:
          type: number
          description: Steps of the main sequence.
          example: 3
        mailboxesCount:
          type: number
          example: 2
      required:
        - uuid
        - name
        - dailyLimit
        - campaignType
        - campaignStatus
        - timezone
        - startDate
        - endDate
        - activeDays
        - fromTime
        - toTime
        - createdAt
        - updatedAt
        - leadsCount
        - stepsCount
        - mailboxesCount
    CampaignPageMetaDto:
      type: object
      properties:
        total:
          type: number
          example: 42
        page:
          type: number
          example: 1
        limit:
          type: number
          example: 10
        totalPages:
          type: number
          example: 5
        hasNextPage:
          type: boolean
          example: true
        hasPreviousPage:
          type: boolean
          example: false
      required:
        - total
        - page
        - limit
        - totalPages
        - hasNextPage
        - hasPreviousPage
  securitySchemes:
    access-key:
      type: apiKey
      in: header
      name: x-api-key
      description: Your API key, from the API keys page of the app.

````

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