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

# Get Campaign Meta

> This API retrieves campaign details and reachability information for scheduled campaigns.


#### Supported Channels

* EMAIL: Email campaigns
* PUSH: Push notification campaigns
* SMS: SMS campaigns
* WHATSAPP: WhatsApp campaigns
* FACEBOOK: Facebook campaigns
* GOOGLE ADS: Google Ads campaigns
* CONNECTORS: Connector-based campaigns

#### Reachability Information

* Available only for **scheduled** campaigns (one-time, business event-triggered, and event-triggered).
* Provides estimated user count that will receive the campaign.
* Calculated once daily and cached for 24 hours.
* May vary due to app installations/uninstalls or subscription changes.
* Reachability is an estimated value and may vary over time. It is calculated once per day and cached for 24 hours. Multiple API calls within the same day will return the cached value.

#### Rate Limits

| Rate Limit Name              | Rate Limit                                                                           |
| :--------------------------- | :----------------------------------------------------------------------------------- |
| get campaign meta per second | The total number of get campaign meta requests per Second per client allowed is 10.  |
| get campaign meta per minute | The total number of get campaign meta requests per minute per client allowed is 100. |
| get campaign meta per hour   | The total number of get campaign meta requests per hour per client allowed is 6000.  |

<Note>
  **Notes**

  * Breaching the limits will reject the request.
  * Per hour and per day limits will consider the calculation based on the last hour and last 24 hrs respectively.
</Note>


## OpenAPI

````yaml /api/campaigns/campaigns.yaml post /campaigns/meta
openapi: 3.0.3
info:
  title: MoEngage Campaigns API
  version: '2025-11-20'
  description: >
    The MoEngage Campaigns API allows you to create and manage Push and Email
    campaigns programmatically.


    **Supported Channels:**

    - Push (Android, iOS, Web)

    - Email


    **Supported Delivery Types:**

    - ONE_TIME

    - PERIODIC

    - EVENT_TRIGGERED

    - BUSINESS_EVENT_TRIGGERED

    - DEVICE_TRIGGERED (Push only)

    - LOCATION_TRIGGERED (Push only)

    - BROADCAST_LIVE_ACTIVITY (Push iOS only)

     | Rate Limit Name | Rate Limit |
     | :--- | :--- |
     | Create campaign per second | The total number of create campaign operations per second per client allowed is 5. |
     | Create campaign per minute | The total number of create campaign operations per minute per client allowed is 25. |
     | Create campaign per hour | The total number of create campaign operations per hour per client allowed is 100. |

     You can create 5 campaigns per minute, 25 campaigns per hour, and 100 campaigns per day.

     <Note>
       * Breaching the limits will reject the request.
        * Per hour and per day limits will consider the calculation based on the last hour and last 24 hrs respectively.
     </Note>

    For more details, visit [MoEngage Developer
    Documentation](https://developers.moengage.com).
  contact:
    name: MoEngage Developer Team
    email: support@moengage.com
    url: https://developers.moengage.com
servers:
  - url: https://api-{dc}.moengage.com/core-services/v1
    description: MoEngage Campaigns API Server
    variables:
      dc:
        default: '01'
        description: >-
          The ‘dc’ in the API Endpoint URL refers to the MoEngage Data Center
          (DC). MoEngage hosts each customer in a different DC. You can find
          your DC number and replace the value of ‘dc’ in the URL by referring
          to the DC and API endpoint mapping
          [here](/api/introduction#data-centers). Your MoEngage Data Center (DC)
          can be 01, 02, 03, 04, 05, 06, or 101.
security:
  - BasicAuth: []
paths:
  /campaigns/meta:
    post:
      tags:
        - Get Campaign Details
      summary: Get Campaign Meta
      description: >
        This API retrieves campaign details and reachability information for
        scheduled campaigns.
      operationId: get_campaign_meta
      parameters:
        - $ref: '#/components/parameters/MOE-APPKEY'
      requestBody:
        description: >
          Provide the search criteria for retrieving campaign metadata and
          reachability information.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CampaignMetaRequest'
            examples:
              meta_by_channel:
                summary: Get Meta by Channel
                value:
                  request_id: meta_req_12345
                  campaign_fields:
                    channels:
                      - EMAIL
                  limit: 15
                  page: 1
              meta_by_campaign_id:
                summary: Get Meta by Campaign ID
                value:
                  request_id: meta_req_67890
                  campaign_fields:
                    id: camp_abc123xyz
                  limit: 1
                  page: 1
              meta_scheduled_with_reachability:
                summary: Get Scheduled Campaign with Reachability
                value:
                  request_id: meta_req_scheduled
                  campaign_fields:
                    channels:
                      - SMS
                    status:
                      - SCHEDULED
                  limit: 10
                  page: 1
              meta_with_child_campaigns:
                summary: Get Meta with Child Campaigns
                value:
                  request_id: meta_req_children
                  campaign_fields:
                    delivery_type:
                      - PERIODIC
                  include_child_campaigns: true
                  limit: 15
                  page: 1
      responses:
        '200':
          description: Successfully retrieved campaign metadata
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CampaignMetaResponse'
              examples:
                email_campaign_meta:
                  summary: Email Campaign Meta
                  value:
                    - campaign_id: camp_email_123
                      channel: EMAIL
                      platform: []
                      created_by: john.doe@example.com
                      campaign_delivery_type: ONE_TIME
                      campaign_name: Weekly Newsletter
                      campaign_team: Marketing
                      campaign_tags:
                        - newsletter
                        - weekly
                      campaign_status: Active
                      campaign_start_time: '2024-11-18T05:50:00'
                sms_scheduled_with_reachability:
                  summary: SMS Scheduled with Reachability
                  value:
                    - campaign_id: camp_sms_456
                      channel: SMS
                      platform: []
                      created_by: admin@example.com
                      campaign_delivery_type: ONE_TIME
                      campaign_name: Promo Code SMS
                      campaign_team: Sales
                      campaign_tags:
                        - promo
                      campaign_status: Scheduled
                      campaign_start_time: '2024-11-28T12:18:00'
                      reachability_details:
                        count: 18182
                        last_updated_time: '2024-11-27T09:05:42.661000'
                push_campaign_meta:
                  summary: Push Campaign Meta
                  value:
                    - campaign_id: camp_push_789
                      channel: PUSH
                      platform:
                        - ANDROID
                        - IOS
                      created_by: jane.smith@example.com
                      campaign_delivery_type: EVENT_TRIGGERED
                      campaign_name: Cart Abandonment
                      campaign_team: Retention
                      campaign_tags:
                        - cart
                        - abandonment
                      campaign_status: Active
                      campaign_start_time: '2024-11-20T10:00:00'
                periodic_with_children:
                  summary: Periodic Campaign with Children
                  value:
                    - campaign_id: camp_periodic_101
                      channel: EMAIL
                      platform: []
                      created_by: marketing@example.com
                      campaign_delivery_type: PERIODIC
                      campaign_name: Monthly Newsletter
                      campaign_team: Content
                      campaign_tags:
                        - newsletter
                      campaign_status: Active
                      campaign_start_time: '2024-01-01T09:00:00'
                      total_child_campaigns: 12
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  parameters:
    MOE-APPKEY:
      name: MOE-APPKEY
      in: header
      required: true
      description: >
        This is the Workspace ID of your MoEngage account that must be passed
        with the request. You can find it in the MoEngage dashboard at
        **Settings** > **Account** > **APIs** > **Workspace ID (earlier app
        id)**.
      schema:
        type: string
      example: YOUR_WORKSPACE_ID
  schemas:
    CampaignMetaRequest:
      type: object
      required:
        - request_id
        - limit
        - page
      properties:
        request_id:
          type: string
          description: A unique identifier for this metadata retrieval request.
          example: meta_req_12345
        campaign_fields:
          $ref: '#/components/schemas/CampaignMetaSearchFields'
        include_child_campaigns:
          type: boolean
          description: >
            Whether to include child campaign information.


            Set to `true` to fetch details of child campaigns (flow nodes and
            periodic children). Use `flow_id`, `flow_name`, or
            `parent_campaign_id` in the response to identify relationships.
          default: false
        limit:
          type: integer
          description: |
            The number of campaigns to display per page.

            **Maximum:** 15
          minimum: 1
          maximum: 15
          example: 15
        page:
          type: integer
          description: >
            The page number to retrieve.


            For example, if there are 200 campaigns and limit is 10, there will
            be 20 pages.
          minimum: 1
          example: 1
    CampaignMetaResponse:
      type: object
      description: Campaign metadata including basic information and reachability details.
      properties:
        campaign_id:
          type: string
          description: The unique ID of the campaign.
          example: camp_abc123xyz
        channel:
          type: string
          enum:
            - EMAIL
            - PUSH
            - SMS
            - WHATSAPP
            - FACEBOOK
            - GOOGLE ADS
            - CONNECTORS
          description: The communication channel.
        platform:
          type: array
          items:
            type: string
            enum:
              - ANDROID
              - IOS
              - WEB
          description: The platform types supported for the campaign (applicable for Push).
        created_by:
          type: string
          format: email
          description: The email ID of the user who created the campaign.
        campaign_delivery_type:
          type: string
          enum:
            - ONE_TIME
            - PERIODIC
            - EVENT_TRIGGERED
            - BUSINESS_TRIGGERED
            - DEVICE_TRIGGERED
            - LOCATION_TRIGGERED
            - BROADCAST_LIVE_ACTIVITY
          description: The delivery type of the campaign.
        campaign_name:
          type: string
          description: The name of the campaign.
          example: Summer Sale Campaign
        campaign_team:
          type: string
          description: The team name associated with the campaign.
        campaign_tags:
          type: array
          items:
            type: string
          description: Tags associated with the campaign.
        campaign_status:
          type: string
          enum:
            - SCHEDULED
            - ACTIVE
            - PAUSED
            - SENT
            - STOPPED
            - RETIRED
            - ARCHIVED
          description: The current status of the campaign.
        campaign_start_time:
          type: string
          format: date-time
          description: >-
            The start time of the campaign in ISO 8601 format. This value is
            returned in UTC.
          example: '2024-11-28T12:18:00'
        parent_campaign_id:
          type: string
          description: >
            The campaign ID of the parent campaign.


            Only shown if the requested campaign_id belongs to a child campaign
            and `include_child_campaigns` is true.
        total_child_campaigns:
          type: integer
          description: >
            The number of child campaigns.


            Only shown if the campaign_id belongs to a parent campaign. Only
            applicable for periodic campaigns.
        reachability_details:
          type: object
          description: >
            Reachability information for the campaign.


            **Important:** Only populated for **scheduled** campaigns (one-time,
            business event-triggered, and event-triggered).

            Reachability is calculated once daily and cached for 24 hours.
          properties:
            count:
              type: integer
              description: The estimated number of users the scheduled campaign will reach.
              example: 18182
            last_updated_time:
              type: string
              format: date-time
              description: >-
                The timestamp when reachability was last calculated, in ISO 8601
                format. This value is returned in UTC.
              example: '2024-11-27T09:05:42.661000'
    CampaignMetaSearchFields:
      type: object
      description: Filter criteria for retrieving campaign metadata.
      properties:
        id:
          type: string
          description: The unique identifier to identify the campaign.
          example: camp_abc123xyz
        channels:
          type: array
          items:
            type: string
            enum:
              - EMAIL
              - PUSH
              - SMS
              - WHATSAPP
              - FACEBOOK
              - GOOGLE ADS
              - CONNECTORS
          description: Filter campaigns by channel type.
          example:
            - EMAIL
            - PUSH
        created_by:
          type: array
          items:
            type: string
            format: email
          description: |
            Filter by email ID of the user who created the campaign.

            **Note:** Only email IDs are supported.
          example:
            - john.doe@example.com
        created_date:
          type: object
          description: Filter campaigns by creation date range.
          required:
            - from_date
            - to_date
          properties:
            from_date:
              type: string
              description: >
                The starting point of the date range in which campaigns were
                created.


                **Recommended format:** YYYY-MM-DD or DD-MM-YYYY
              example: '2024-01-01'
            to_date:
              type: string
              description: >
                The ending point of the date range in which campaigns were
                created.


                **Recommended format:** YYYY-MM-DD or DD-MM-YYYY
              example: '2024-12-31'
        delivery_type:
          type: array
          items:
            type: string
            enum:
              - ONE_TIME
              - PERIODIC
              - EVENT_TRIGGERED
              - BUSINESS_TRIGGERED
          description: Filter campaigns by delivery type.
          example:
            - ONE_TIME
        name:
          type: string
          description: Filter by campaign name.
          example: Summer Sale Campaign
        status:
          type: array
          items:
            type: string
            enum:
              - SCHEDULED
              - ACTIVE
              - PAUSED
              - SENT
              - STOPPED
              - RETIRED
              - ARCHIVED
          description: Filter campaigns by status.
          example:
            - SCHEDULED
            - ACTIVE
        tags:
          type: array
          items:
            type: string
          description: >-
            Filter campaigns by tags that describe the campaign's nature or
            theme.
          example:
            - promotion
            - sale
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              description: The error code (e.g., "400 Bad Request").
            message:
              type: string
              description: Description of why the request failed.
            target:
              type: string
              description: The target of the error.
            details:
              type: array
              items:
                type: object
                properties:
                  target:
                    type: string
                  message:
                    type: string
            request_id:
              type: string
              description: The request ID associated with this error.
  responses:
    BadRequest:
      description: Bad Request - Missing or invalid parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: 400 Bad Request
              message: request_id key is mandatory field
              target: request_id
              details:
                - target: request_id
                  message: request_id key is mandatory field
              request_id: '11'
    Unauthorized:
      description: Authentication Failure - Invalid or missing authentication credentials
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: 401 Authentication error
              message: Authentication required
              details:
                - code: InvalidValue
                  target: APP_SECRET_KEY
                  message:
                    - code: InvalidValue
                      target: APP_SECRET_KEY
                      message: Invalid APP_SECRET_KEY is provided.
              request_id: ''
    InternalServerError:
      description: Internal Server Error - Unexpected system error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: 500 Internal Server Error
              message: Something went wrong. Please contact Moengage team
              target: string
              details:
                - message: 'Expecting value: line 1 column 1 (char 0)'
                  target: ''
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic
      description: >
        Authentication is done via Basic Auth. This requires a base64-encoded
        string of your credentials in the format 'username:password'.


        - **Username**: Use your MoEngage workspace ID (also known as the App
        ID). You can find it in the MoEngage dashboard at **Settings** >
        **Account** > **APIs** > **Workspace ID (earlier app id)**.

        - **Password**: Use your API Key, which you can find within the
        **Campaign report/Business events/Custom templates/Catalog API/Inform
        Report** tile.


        For more information on authentication and getting your credentials,
        refer
        [here](https://www.moengage.com/docs/api/introduction#getting-your-credentials).

````