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

> Retrieves aggregated reports and statistics for one or multiple campaigns.

# Get Campaign Reports

export const SnippetObjectReference = ({objectName, objectPath = null}) => {
  const lowerCaseObjectName = objectName.toLowerCase();
  if (lowerCaseObjectName === 'lead' || lowerCaseObjectName === 'leads') {
    return <Note>
        This endpoint uses the <a href={`/api-reference/objects-definitions/${objectPath}`}>{objectName} object</a>. Make sure to also check the <a href={`/api-reference/objects-definitions/${lowerCaseObjectName === 'lead' ? 'contact' : 'lead'}`}>{lowerCaseObjectName === 'lead' ? 'Contact' : 'Lead'} object</a> to understand the distinction between the two.
      </Note>;
  }
  return <Note>
      This endpoint uses the <a href={`/api-reference/objects-definitions/${objectPath}`}>{objectName} object</a>.
    </Note>;
};

<SnippetObjectReference objectName="Report" objectPath="report" />

It provides a convenient way to get export status and statistics across multiple campaigns in a single request.

## Multiple campaigns

Pass multiple campaign IDs as a comma-separated list in the `campaignIds` parameter:

```bash theme={"theme":"dracula"}
https://api.lemlist.com/api/campaigns/reports?campaignIds=cam_123,cam_456,cam_789
```

## Response structure

The response includes export status information similar to the [Get Campaign Export Status](/api-reference/endpoints/campaigns/get-campaign-export-status) endpoint, but can aggregate data across multiple campaigns.

## Use cases

This endpoint is particularly useful for:

* **Dashboard views**: Get stats for multiple campaigns at once
* **Portfolio reporting**: Monitor performance across several outreach campaigns
* **Batch processing**: Check export status for multiple campaigns initiated earlier

<Tip>
  This is more efficient than calling individual campaign endpoints when you need data from multiple campaigns.
</Tip>

## Example

<CodeGroup>
  ```bash Single campaign theme={"theme":"dracula"}
  curl --request GET \
    --url 'https://api.lemlist.com/api/campaigns/reports?campaignIds=cam_A1B2C3D4E5F6G7H8I9' \
      --header 'Authorization: Basic <encoded-value>'
  ```

  ```bash Multiple campaigns theme={"theme":"dracula"}
  curl --request GET \
    --url 'https://api.lemlist.com/api/campaigns/reports?campaignIds=cam_123,cam_456,cam_789' \
      --header 'Authorization: Basic <encoded-value>'
  ```
</CodeGroup>


## OpenAPI

````yaml get /campaigns/reports
openapi: 3.0.0
info:
  title: lemlist API
  version: 1.0.0
  description: >-
    Welcome to the lemlist Developer Documentation.


    lemlist is very customizable and open. You'll find on this page all the API
    and integration you can do with lemlist.


    # Rate Limit


    lemlist's API rate limits requests in order to prevent abuse and overload of
    our services.  

    Rate limits are applied on all routes and per API key performing the
    request.  

    The rate limits are **20** requests per **2** seconds.  

    The response provides any information you may need about it:


    | Header | Description |

    | --- | --- |

    | Retry-After | The number of seconds in which you can retry |

    | X-RateLimit-Limit | The maximum requests in that time |

    | X-RateLimit-Remaining | The number of remaining requests you can make |

    | X-RateLimit-Reset | The date when the rate limit will reset |


    _Example of values for the rate limit headers_


    ``` json

    {
        "Retry-After": 2,
        "X-RateLimit-Limit": 20,
        "X-RateLimit-Remaining": 7,
        "X-RateLimit-Reset" : "Tue Feb 16 2021 09:02:42 GMT+0100 (Central European Standard Time)"
    }

     ```

    # Definitions


    ## Team


    A team is the entity of lemlist that can handle users and billing.


    ## Credits


    Credits are the coins a team uses to enrich emails, LinkedIn URLs, etc. via
    the enrich route. Each enrichment feature needs a certain amount of credits
    to run.


    ## User


    You use a user account to connect to lemlist and send messages via the
    connected emails or LinkedIn account.


    ## Campaign


    A campaign is the entity to automate outreach. A campaign has multiple
    sequences composed of steps.


    ## Lead


    A lead is a person that you try to contact via a campaign.


    ## Activity


    An activity is the history of all the steps.


    ## Unsubscribe


    An unsubscribe occurs when a person decides they don't want to receive
    emails from you anymore.


    # Authentication


    All API routes use the dedicated subdomain `api.lemlist.com`.


    lemlist uses API keys to allow access to the API. You can get your lemlist
    API key at our [integration
    page](https://app.lemlist.com/settings/integrations).


    You need to add the `Authorization` header using the `Basic` authentication
    type. `login:password` **where the login is always empty and the password is
    the API key**.


    ⚠️ **Don't forget to add the semicolon (**`:`**) before your API key in curl
    command.**


    > To authorize, use this code: 
      

    ``` shell

    curl https://api.lemlist.com/api/team \
      --user ":YourApiKey"

     ```

    **Make sure to replace** **`YourApiKey`** **with your API key.**


    # Give feedback


    If you want to report a bug, ask for data, or share with us a use case,
    please fill this [form](https://lemlist.typeform.com/to/mfVlkyGf). It will
    help us centralize your needs!
servers:
  - url: https://api.lemlist.com/api
security:
  - basicAuth: []
paths:
  /campaigns/reports:
    get:
      tags:
        - Campaigns
      summary: Get Campaign Reports
      description: >-
        Retrieve reports for one or multiple campaigns. Returns aggregated
        statistics and export status for the specified campaigns.
      parameters:
        - name: campaignIds
          in: query
          required: true
          description: Comma-separated list of campaign IDs to retrieve reports for
          example: cam_A1B2C3D4E5F6G7H8I9,cam_B2C3D4E5F6G7H8I9J0
          schema:
            type: string
      responses:
        '200':
          description: Campaign reports retrieved successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    _id:
                      type: string
                      description: Campaign ID
                    name:
                      type: string
                      description: Campaign name
                    creator:
                      type: string
                      description: Creator user ID and email in format 'userId|email'
                    createdAt:
                      type: string
                      format: date-time
                      description: Campaign creation date
                    createdBy:
                      type: string
                      description: Name of the user who created the campaign
                    labels:
                      type: string
                      description: Campaign labels
                    totalCount:
                      type: integer
                      description: Total number of leads
                    reviewedCount:
                      type: integer
                      description: Number of reviewed leads
                    inSequenceLeadCount:
                      type: integer
                      description: Number of leads in sequence
                    state:
                      type: string
                      description: Campaign state (running, paused, etc.)
                    status:
                      type: string
                      description: Campaign status (draft, ended, etc.)
                    senderNames:
                      type: string
                      description: Comma-separated list of sender email addresses
                    sendersUsers:
                      type: string
                      description: Comma-separated list of sender names and emails
                    reviewed:
                      type: integer
                      description: Number of reviewed leads
                    emailsSent:
                      type: integer
                      description: Number of emails sent
                    emailsOpened:
                      type: integer
                      description: Number of emails opened
                    emailsClicked:
                      type: integer
                      description: Number of emails with links clicked
                    emailsReplied:
                      type: integer
                      description: Number of email replies received
                    emailsUnsubscribed:
                      type: integer
                      description: Number of unsubscribes via email
                    emailsInterested:
                      type: integer
                      description: Number of interested responses via email
                    linkedinSent:
                      type: integer
                      description: Number of LinkedIn messages sent
                    linkedinOpened:
                      type: integer
                      description: Number of LinkedIn messages opened
                    linkedinReplied:
                      type: integer
                      description: Number of LinkedIn replies received
                    interested:
                      type: integer
                      description: Total number of interested leads
                    notInterested:
                      type: integer
                      description: Total number of not interested leads
              example:
                - _id: cam_bSn8EORHQxbWPjHvu
                  name: Product Launch Campaign
                  creator: usr_ahfFktBBHUIxbVG5P|user@example.com
                  createdAt: '2025-10-27T07:01:04.058Z'
                  createdBy: John Smith
                  labels: ''
                  totalCount: 0
                  reviewedCount: 0
                  inSequenceLeadCount: 0
                  state: running
                  status: draft
                  senderNames: sender@example.com
                  sendersUsers: Jane Doe:sender@example.com
                  reviewed: 0
                  emailsSent: 0
                  emailsOpened: 0
                  emailsClicked: 0
                  emailsReplied: 0
                  emailsInterested: 0
                  linkedinSent: 0
                  linkedinReplied: 0
                  interested: 0
                  notInterested: 0
                - _id: cam_lBCWmqEWI399hJZOd
                  name: Event Outreach Campaign
                  creator: usr_QHeXD2DttUIlvWT9V|admin@example.co
                  createdAt: '2022-11-09T16:41:03.538Z'
                  createdBy: Sarah Johnson
                  labels: ''
                  totalCount: 0
                  reviewedCount: 32
                  inSequenceLeadCount: 32
                  state: paused
                  status: ended
                  senderNames: ''
                  sendersUsers: ''
                  reviewed: 0
                  emailsSent: 20
                  emailsOpened: 18
                  emailsClicked: 4
                  emailsReplied: 1
                  emailsUnsubscribed: 1
                  emailsInterested: 1
                  linkedinSent: 32
                  linkedinOpened: 15
                  linkedinReplied: 15
                  interested: 0
                  notInterested: 0
        '400':
          description: Bad team
          content:
            text/plain:
              example: Bad team
        '401':
          description: Unauthorized
components:
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic

````