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

# List campaigns

> Returns your campaigns, newest first, with how many are in each status.



## OpenAPI

````yaml /openapi.json get /campaigns
openapi: 3.1.0
info:
  title: ReachHunt API
  version: 1.0.0
  description: >-
    The ReachHunt API gives your own apps and scripts programmatic access to
    your workspace: accounts, campaigns, lead lists, conversations, messages,
    tags and statuses.


    Send your API key in the `Authorization` header: `Authorization: Bearer
    YOUR_API_KEY`. The key decides the workspace, so no path or parameter names
    one.


    Every response has the same envelope: `{ "status": true, "data": ...,
    "error": null }`.
servers:
  - url: https://api.reachhunt.ai/api/v1
    description: Production
security: []
tags:
  - name: Workspaces
    description: Your workspace and the people in it.
  - name: Accounts
    description: The X and LinkedIn accounts you connected.
  - name: Analytics
    description: Activity over time.
  - name: Credits
    description: AI credits and how they were used.
  - name: Campaigns
    description: Outreach that messages your leads step by step.
  - name: Agents
    description: AI agents that reply to your leads.
  - name: Tags
    description: Labels you put on conversations.
  - name: Statuses
    description: Pipeline stages you put conversations in.
  - name: Leads
    description: The people in your lead lists.
  - name: Lead lists
    description: Lists of people you collect to message.
  - name: Conversations
    description: The conversations in your inbox.
  - name: Messages
    description: The messages in a conversation.
  - name: Conversation details
    description: Your team's record of the person in a conversation.
  - name: Internal notes
    description: Notes only your team sees.
  - name: Scheduled messages
    description: Messages set to send later.
  - name: Templates
    description: Saved messages you can reuse.
  - name: Webhook events
    description: What each event sends.
paths:
  /campaigns:
    get:
      tags:
        - Campaigns
      summary: List campaigns
      description: Returns your campaigns, newest first, with how many are in each status.
      operationId: campaigns.list
      parameters:
        - name: search
          in: query
          required: false
          description: Text to look for in the name.
          schema:
            type: string
        - name: status
          in: query
          required: false
          description: Only campaigns in this status.
          schema:
            type: string
            enum:
              - draft
              - scheduled
              - running
              - paused
              - completed
              - stopped
              - failed
        - name: platform
          in: query
          required: false
          description: Only campaigns on this network.
          schema:
            type: string
            enum:
              - x
              - linkedin
        - name: page
          in: query
          required: false
          description: The page to return, starting at 1.
          schema:
            type: integer
            minimum: 1
        - name: limit
          in: query
          required: false
          description: How many items to return, from 1 to 100. Defaults to 50.
          schema:
            type: integer
            minimum: 1
            maximum: 100
      responses:
        '200':
          description: 'OK. Check `status`: errors the API handles itself also return 200.'
          content:
            application/json:
              schema:
                type: object
                required:
                  - status
                  - data
                  - error
                properties:
                  status:
                    type: boolean
                    description: '`true` when the request succeeded.'
                  data:
                    type: object
                    properties:
                      items:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              description: The ID.
                            name:
                              type: string
                              description: The name.
                            platform:
                              type: string
                              description: 'The network: `x` or `linkedin`.'
                            status:
                              type: string
                              enum:
                                - draft
                                - scheduled
                                - running
                                - paused
                                - completed
                                - stopped
                                - failed
                              description: Where the campaign stands.
                            audienceCount:
                              type: integer
                              description: How many people the campaign targets.
                            accountIds:
                              type: array
                              items:
                                type: string
                                description: The accounts that send for it.
                              description: The accounts that send for it.
                            replyAgentId:
                              type:
                                - string
                                - 'null'
                              description: >-
                                The AI agent that replies to its leads. `null`
                                when none.
                            hasInvites:
                              type: boolean
                              description: Whether its sequence sends connection requests.
                            metrics:
                              type: object
                              properties:
                                targets:
                                  type: integer
                                  description: People the campaign targets.
                                contacted:
                                  type: integer
                                  description: People messaged at least once.
                                replies:
                                  type: integer
                                  description: People who replied.
                                invitesSent:
                                  type: integer
                                  description: Connection requests sent.
                                accepted:
                                  type: integer
                                  description: Connection requests accepted.
                              required:
                                - targets
                                - contacted
                                - replies
                                - invitesSent
                                - accepted
                              description: Counters for the campaign.
                            progressPercent:
                              type: integer
                              description: How far it is, from 0 to 100.
                            createdAt:
                              type: string
                              format: date-time
                              description: When it was created, in ISO 8601 UTC.
                            startedAt:
                              type:
                                - string
                                - 'null'
                              format: date-time
                              description: When it started, in ISO 8601 UTC.
                            completedAt:
                              type:
                                - string
                                - 'null'
                              format: date-time
                              description: When it finished, in ISO 8601 UTC.
                            pauseReason:
                              type:
                                - string
                                - 'null'
                              description: Why it is paused. `null` when it is not.
                          required:
                            - id
                            - name
                            - platform
                            - status
                            - audienceCount
                            - accountIds
                            - replyAgentId
                            - hasInvites
                            - metrics
                            - progressPercent
                            - createdAt
                            - startedAt
                            - completedAt
                            - pauseReason
                      page:
                        type: integer
                        description: The page returned.
                      limit:
                        type: integer
                        description: The page size used.
                      total:
                        type: integer
                        description: How many match, across all pages.
                      totalPages:
                        type: integer
                        description: How many pages there are.
                      statusCounts:
                        type: object
                        properties:
                          all:
                            type: integer
                          draft:
                            type: integer
                          scheduled:
                            type: integer
                          running:
                            type: integer
                          paused:
                            type: integer
                          completed:
                            type: integer
                          stopped:
                            type: integer
                          failed:
                            type: integer
                            description: People the campaign could not reach.
                        required:
                          - all
                          - draft
                          - scheduled
                          - running
                          - paused
                          - completed
                          - stopped
                          - failed
                        description: How many campaigns are in each status.
                    required:
                      - items
                      - page
                      - limit
                      - total
                      - totalPages
                      - statusCounts
                  error:
                    type: 'null'
                    description: Always `null` on success.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PlanRequired'
        '500':
          $ref: '#/components/responses/ServerError'
      security:
        - bearerAuth: []
components:
  responses:
    Unauthorized:
      description: The API key is missing or not valid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Failure'
          example:
            status: false
            data: null
            error: Not authenticated
    PlanRequired:
      description: The workspace has no active plan, or its trial has ended.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Failure'
          example:
            status: false
            data: null
            error: Your free trial has ended. Pick a plan to continue.
    ServerError:
      description: Something failed on our side. Try again.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Failure'
          example:
            status: false
            data: null
            error: Something went wrong. Please try again.
  schemas:
    Failure:
      type: object
      required:
        - status
        - data
        - error
      properties:
        status:
          type: boolean
          description: Always `false` for an error.
        data:
          type: 'null'
          description: Always `null` for an error.
        error:
          type: string
          description: What went wrong, in plain words.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: Bearer
      description: >-
        Your API key, sent as `Authorization: Bearer YOUR_API_KEY`. Create one
        in **Settings → API**.
      x-default: Bearer YOUR_API_KEY

````

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