Skip to main content

Push - Message Toggle

Endpoint

/i/push/message/toggle

Overview

Starts or stops a toggleable push message.

Authentication

Pass api_key or auth_token as a query parameter, or send countly-token as a header. See Authentication.

Permissions

Requires push Update permission.

Request Parameters

ParameterTypeRequiredDescription
api_keyStringConditionalRequired if auth_token is not provided.
auth_tokenStringConditionalRequired if api_key is not provided.
app_idStringYesApp ID used by permission validation.
_idString (ObjectID)YesMessage ID to toggle.
activeBoolean StringYestrue to activate, false to stop.

Examples

Activate a message

/i/push/message/toggle?
api_key=YOUR_API_KEY&
app_id=6991c75b024cb89cdc04efd2&
_id=67a3d2f5c1a23b0f4d6c0101&
active=true

Response

Success Response

{
"_id": "67a3d2f5c1a23b0f4d6c0101",
"status": "active",
"result": {
"updated": "2026-03-07T09:22:11.320Z"
}
}

Response Fields

FieldTypeDescription
(root)ObjectFull updated message object (msg.json) after toggle operation.
statusStringNew runtime status after toggle.
resultObjectMessage result metadata maintained by push engine.

Error Responses

  • 400
{
"errors": [
"_id is required"
]
}
  • 404
{
"errors": [
"Message not found"
]
}
  • 400
{
"kind": "ValidationError",
"errors": [
"The message doesn't have Cohort or Event trigger"
]
}
  • 400
{
"kind": "ValidationError",
"errors": [
"The message is already active"
]
}
  • 400
{
"kind": "ValidationError",
"errors": [
"The message is already stopped"
]
}

Standard authentication/authorization errors from update validation can also be returned.

Behavior

  • Validates _id and active (BooleanString).
  • Loads message by ID.
  • Allows toggle only for API/automated message types (triggerAutoOrApi).
  • If currently streamable (State.Streamable) and active=false: stops message and logs push_message_deactivated.
  • If currently stopped and active=true: schedules message and logs push_message_activated.
  • Returns full updated message JSON.

Impact on Other Data

  • Updates message scheduling/runtime state in countly.messages.
  • Adds one audit entry in countly.systemlogs for activation/deactivation.

Limitations

  • One-time/plain messages are not toggleable.
Implementation details

Database Collections

CollectionUsed forData touched by this endpoint
countly.messagesPush message storageReads target message and updates runtime state through message model operations.
countly.systemlogsAudit trailReceives activation/deactivation actions.