> ## 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.

# Change Campaign Status

> This API updates the status of campaigns to stop, pause, or resume them. You can only change the status of campaigns created via the [Create Campaign API](https://www.moengage.com/docs/api/create-campaigns/create-campaign) (not dashboard-created campaigns).


<Note>
  **Differences in V5**

  `PATCH /v5/campaigns/{campaign_id}/status` accepts one campaign ID as a path parameter per request. V1 accepts a `campaign_ids` array of up to 10 IDs per request. To perform bulk status changes in V5, call the endpoint once per campaign ID.

  See [Update Campaign Status (V5)](/api/update-campaigns/update-campaign-status-v5).
</Note>

<Note>
  Currently, you can use this API to change the status of Email and Push campaigns. You can update the following statuses of the campaigns:

  * Stop a scheduled One-time campaign (Email and Push)
  * Pause and resume a running Periodic or Event-triggered Email campaign.
  * Pause and resume the following running Push campaigns:
    * Periodic
    * Event-triggered
    * Device-triggered
    * Location-triggered
</Note>

#### Rate Limits

| Rate Limit Name                   | Rate Limit                                                                                |
| :-------------------------------- | :---------------------------------------------------------------------------------------- |
| change campaign status per second | The total number of change campaign status requests per second per client is 10.          |
| change campaign status per minute | The total number of change campaign status requests per minute per client allowed is 100. |
| change campaign statusper hour    | The total number of change campaign status 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/status
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/status:
    post:
      tags:
        - Update Campaigns
      summary: Change Campaign Status
      description: >
        This API updates the status of campaigns to stop, pause, or resume them.
        You can only change the status of campaigns created via the [Create
        Campaign
        API](https://www.moengage.com/docs/api/create-campaigns/create-campaign)
        (not dashboard-created campaigns).
      operationId: change_campaign_status
      parameters:
        - $ref: '#/components/parameters/MOE-APPKEY'
      requestBody:
        description: Send campaign status change request with action and campaign IDs.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CampaignStatusChangeRequest'
            examples:
              pause_campaign:
                summary: Pause Campaign
                value:
                  request_id: status_change_pause
                  action: PAUSE
                  campaign_ids:
                    - camp_periodic_123
              resume_campaign:
                summary: Resume Campaign
                value:
                  request_id: status_change_resume
                  action: RESUME
                  campaign_ids:
                    - camp_periodic_123
              stop_campaign:
                summary: Stop Scheduled Campaign
                value:
                  request_id: status_change_stop
                  action: STOP
                  campaign_ids:
                    - camp_onetime_456
              batch_pause:
                summary: Pause Multiple Campaigns
                value:
                  request_id: status_batch_pause
                  action: PAUSE
                  campaign_ids:
                    - camp_periodic_001
                    - camp_periodic_002
                    - camp_event_003
      responses:
        '200':
          description: |
            Campaign status changed successfully. No content returned.

            For a successful 200 response, the API does not return any content.
        '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:
    CampaignStatusChangeRequest:
      type: object
      description: You can request to change the status of one or more campaigns.
      required:
        - request_id
        - action
        - campaign_ids
      properties:
        request_id:
          type: string
          description: A unique identifier for this status change request.
          example: status_change_12345
        action:
          type: string
          enum:
            - STOP
            - PAUSE
            - RESUME
          description: >
            The action to perform on the campaign(s).


            - **STOP**: Stop a scheduled One-time campaign (cannot be used for
            Periodic campaigns). After a One-time campaign moves to Active
            state, it cannot be stopped.

            - **PAUSE**: Pause a running Periodic or Event-triggered campaign.

            - **RESUME**: Resume a paused Periodic or Event-triggered campaign.
        campaign_ids:
          type: array
          items:
            type: string
          description: |
            Array of campaign IDs whose status you want to change.

            **Maximum:** 10 campaign IDs per request
          minItems: 1
          maxItems: 10
          example:
            - camp_abc123
            - camp_def456
    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).

````