Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

PushEngage

NPM · @PUSHENGAGE/MCP · SCANNED AUG 16

Send push notifications, build audiences, and view campaign analytics from PushEngage.

Available components

+5 this week 72 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 33 of 106 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 23 days ago).Pass
  • Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability70
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 5936 tokens (~219/item across 27 items; 27 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management33
  • Stability observed for 10 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · @pushengage/mcp

# add to Claude Code
claude mcp add awesomemotive-pushengage-mcp -- npx -y @pushengage/mcp
# add to Codex CLI
codex mcp add awesomemotive-pushengage-mcp -- npx -y @pushengage/mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "awesomemotive-pushengage-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@pushengage/mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add awesomemotive-pushengage-mcp --command npx --arg -y --arg @pushengage/mcp
# ~/.hermes/config.yaml
mcp_servers:
  awesomemotive-pushengage-mcp:
    command: "npx"
    args: ["-y", "@pushengage/mcp"]
// mcp.json
{
  "mcpServers": {
    "awesomemotive-pushengage-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@pushengage/mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 16 Aug 26 −1
    • Security disclosure: pass → unverified functional
  • 15 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

  • 14 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 13 Aug 26 +3
    • Stability: unverified → 0.23 functional
  • 11 Aug 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 10 Aug 26 0
    • Security disclosure: unverified → pass functional
  • 9 Aug 26 0
    • Security disclosure: pass → unverified functional
  • 7 Aug 26 +4
    • Known CVEs: partial → pass security
    • Security disclosure: fail → pass functional
    • Dependency health: partial → 0.85 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 16 Aug 2026 · Analysed npm/@pushengage/mcp@1.0.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm
Dependencies 106 packages
Packages resolved 106
Stale 33
Tree resolution Complete
MCP tools · 27 exposed · ~5,936 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
pushengage_auth_login ~77

Opens a browser window to the PushEngage dashboard. After you click Authorize, an access token is stored locally and used for subsequent calls; the expiry is shown in the result. Requires a browser on the local machine. In headless or SSH environments the authorization URL is printed to the terminal so it can be opened manually.

Input schema present but exposes no named parameters.

NameTypeReqDescription
authorizedboolean
expires_atstring

No examples provided.

pushengage_auth_logout ~51

Revokes the current PushEngage session on the server and deletes the locally stored token. After this call, all site-scoped tools require pushengage_auth_login before they can be used again.

Input schema present but exposes no named parameters.

NameTypeReqDescription
server_session_revokedboolean|null
statusstring

No examples provided.

pushengage_auth_status ~60

Returns the current login state: authenticated (bool), expires_at (token expiry ISO string), current_site_id, api_url, dashboard_url, and client_name. Use this to check whether pushengage_auth_login is needed before making other calls.

Input schema present but exposes no named parameters.

NameTypeReqDescription
api_urlstring
authenticatedboolean
client_namestring
current_site_idnumber
dashboard_urlstring
expires_atstring

No examples provided.

pushengage_create_attribute ~251

Creates a new subscriber attribute on the current site. Required: `name` (human-readable label, e.g. "Customer Plan") and `key` (machine identifier, e.g. "plan"). The `key` must start with a letter and contain only letters, numbers, hyphens, and underscores. The created `key` becomes a usable value for audience-group rules with field="attributes" (the rule's `key` property). PushEngage caps each site at 50 attributes; the API returns 422 if the limit is exceeded.

NameTypeReqDescription
keystringyesThe machine identifier used in the JavaScript SDK and in audience-group rules. Must start with a letter and only contain letters, numbers, hyphens, and underscores. Max 64 chars. e.g. "plan", "signup…
namestringyesHuman-readable attribute name shown in the dashboard. 1–128 chars. e.g. "Customer Plan", "Sign-up Source".
site_idintegerOverride the currently selected site.
NameTypeReqDescription
idnumber
keystring
namestring
status
use_with_audience_group_ruleobject
view_urlstring

No examples provided.

pushengage_create_audience_group ~477

Creates a new audience group on the current site. Required: `name` and `filter`. The `filter` is a subscriber-filter expression — { op: "or" | "and" (default "or"), value: 2-D array of rule groups }. Each rule is { field, op, value?, key? }. Rules WITHIN a group are AND-ed; groups in `value` are combined with the top-level `op`. See the inputSchema field descriptions for the supported `field` and `op` enums. Common patterns: "Mobile subscribers" → filter={ op: "or", value: [[{ field: "device", op: "in", value: ["mobile"] }]] }. "Subscribed in the last 7 days" → filter={ op: "or", value: [[{ field: "ts_created", op: "ts_elapsed_lt", value: 604800 }]] }. "Highly engaged" (≥20 sent AND ≥2 clicks) → filter={ op: "or", value: [[{ field: "sent_count", op: "gt", value: 20 }, { field: "click_count", op: "gt", value: 2 }]] }. Only set description and complex filters when the user explicitly describes them.

NameTypeReqDescription
descriptionstringOptional human-readable description, up to 256 chars.
filterobjectyesRequired. The subscriber-filter expression that decides which subscribers belong to this group. Use SubscriberFilterSchema: an outer op ("or"/"and") + a 2-D `value` array (groups of AND-ed rules). Ea…
namestringyesAudience-group display name. 1–150 chars.
site_idintegerOverride the currently selected site.
NameTypeReqDescription
descriptionstring
filter
idnumber
namestring
use_with_send_notificationobject
view_urlstring

No examples provided.

pushengage_create_segment ~301

Creates a new segment on the current site. Required: segment_name. Optionally pass segment_criteria with URL `include` and/or `exclude` rules to define what subscribers belong to the segment — each rule is `{ rule: "start" | "exact" | "contains", value: "<url>" }`. By default, segment criteria are evaluated only when a visitor subscribes to push notifications. Set add_segment_on_page_load=true (Segment on Page Visit) to evaluate those criteria on every page visit instead, so segment membership can change as subscribers browse the site. Only include segment_criteria and add_segment_on_page_load when the user explicitly describes the matching rules.

NameTypeReqDescription
add_segment_on_page_loadbooleanSegment on Page Visit. By default (false), segment criteria (such as URL rules) are evaluated only when a visitor subscribes to push notifications. Set to true to evaluate those criteria on every pag…
segment_criteriaobjectURL-based include/exclude rules that decide which subscribers belong to this segment. Omit to create a name-only segment that the user populates later via the dashboard or workflows. When provided, a…
segment_namestringyesSegment display name. 1–150 characters.
site_idintegerOverride the currently selected site.
NameTypeReqDescription
add_segment_on_page_loadboolean
segment_criteria
segment_idnumber
segment_namestring
view_urlstring

No examples provided.

pushengage_get_analytics_summary ~78

Returns the current site's all-time, site-wide totals: subscribers (current active count), notifications sent, views, clicks, and goal conversions/value. Not bounded by any date range — for trends over a period use pushengage_get_analytics_timeseries instead.

NameTypeReqDescription
site_idintegerOverride the currently selected site.
NameTypeReqDescription
total_clicksnumber
total_goal_countnumber
total_goal_valuenumber
total_notifications_sentnumber
total_subscribersnumber
total_viewsnumber

No examples provided.

pushengage_get_analytics_timeseries ~167

Returns a time series of the current site's analytics between start_date and end_date, bucketed by group_by. Each point has subscribers gained, notifications sent, views, clicks, ctr, and unsubscribes for that bucket. Use this for trends or metrics over a period; for all-time totals use pushengage_get_analytics_summary instead.

NameTypeReqDescription
end_datestringyesEnd of the range (inclusive). Format: YYYY-MM-DD. Must be on or after start_date.
group_bystringHow to bucket the series: one point per day, week, or month.
site_idintegerOverride the currently selected site.
start_datestringyesStart of the range (inclusive). Format: YYYY-MM-DD.
NameTypeReqDescription
countnumber
end_datestring
group_bystring
pointsarray
start_datestring

No examples provided.

pushengage_get_campaign_defaults ~95

Returns the current site's campaign default settings: utm_parameters (enabled + source/medium/campaign/term/content), fallback_notification (title/message/url), fallback_attributes (city/country), and default_expiry (broken into total_seconds + days/hours/minutes). These are the defaults applied to push campaigns, matching the dashboard's Campaign Defaults page.

NameTypeReqDescription
site_idintegerOverride the currently selected site.
NameTypeReqDescription
default_expiryobject
fallback_attributesobject
fallback_notificationobject
utm_parametersobject

No examples provided.

pushengage_get_service_worker_settings ~89

Returns the current site's Service Worker Settings (from the Advanced Settings page), using the dashboard labels: enable_service_worker_registration ("Enable the service worker registration from PushEngage"), enable_service_worker_in_subfolder ("Enable addition of service worker in another sub-folder"), and service_worker_file_path ("Path for service worker file").

NameTypeReqDescription
site_idintegerOverride the currently selected site.
NameTypeReqDescription
enable_service_worker_in_subfolderboolean
enable_service_worker_registrationboolean
service_worker_file_pathstring

No examples provided.

pushengage_get_site_details ~63

Returns the current site's details, matching the dashboard's Site Details page: name, URL, image, timezone, geolocation toggle, and the "Powered By PushEngage" branding toggle.

NameTypeReqDescription
site_idintegerOverride the currently selected site.
NameTypeReqDescription
enable_geolocationboolean
remove_powered_by_pushengageboolean
site_idnumber
site_imagestring
site_namestring
site_urlstring
timezonestring

No examples provided.

pushengage_list_attributes ~191

Lists subscriber attributes (custom keys set on subscribers via the JS SDK) on the current site, paginated (response includes `has_more`). Use this to discover attribute `key` values before constructing an audience-group filter rule with field="attributes".

NameTypeReqDescription
key_containsstringOptional substring filter on the attribute `key`. Maps to API `key_like`. Use this when looking up an attribute by name (e.g. searching for "plan" to find the "plan" attribute key).
limitintegerHow many attributes to return in this page. Min 1, max 100, default 10. To browse past the first 100, increase `page` instead of asking for a larger limit.
pageintegerPage number (1-indexed) for paginating beyond the first batch.
site_idintegerOverride the currently selected site.
NameTypeReqDescription
attributesarray
has_moreboolean
last_pagenumber
limitnumber
pagenumber
totalnumber

No examples provided.

pushengage_list_audience_groups ~198

Lists audience groups on the current site, paginated (response includes `has_more`). Use this to look up audience-group IDs when the user references a group by name; those IDs are what pushengage_send_notification / pushengage_send_ab_notification accept in their `audience_groups` field.

NameTypeReqDescription
limitintegerHow many audience groups to return in this page. Min 1, max 100, default 10. To browse past the first 100, increase `page` instead of asking for a larger limit.
name_containsstringOptional substring filter on the audience-group name. Maps to API `name_like`.
pageintegerPage number (1-indexed) for paginating beyond the first batch. e.g. with limit=100 the second page (101–200) is page=2.
site_idintegerOverride the currently selected site.
NameTypeReqDescription
audience_groupsarray
has_moreboolean
last_pagenumber
limitnumber
pagenumber
totalnumber

No examples provided.

pushengage_list_chat_widgets ~196

Lists the chat widgets on the current site, paginated (response includes `has_more`). A chat widget is the floating button that surfaces support channels (WhatsApp, Messenger, Email, etc.) on the site. Each item carries the configured channels, target devices, business-hours restriction, and a country/page targeting summary.

NameTypeReqDescription
limitintegerHow many chat widgets to return in this page. Min 1, max 100, default 10. To browse past the first 100, increase `page` instead of asking for a larger limit.
name_containsstringOptional case-insensitive substring filter on the widget name.
pageintegerPage number (1-indexed) for paginating beyond the first batch.
site_idintegerOverride the currently selected site.
statusstringFilter by status. "all" (default) returns every status.
NameTypeReqDescription
chat_widgetsarray
has_moreboolean
last_pagenumber
limitnumber
pagenumber
totalnumber

No examples provided.

pushengage_list_drip_campaigns ~222

Lists the drip autoresponder campaigns on the current site, paginated (response includes `has_more`). Optionally filter by status (default "all" = every status), mirroring the dashboard filter tabs. Set include_analytics=true only when the user asks for stats/performance (it costs an extra analytics lookup per page). Each item then also carries an analytics object: sent, seen, clicked, ctr, goal_count, goal_value.

NameTypeReqDescription
include_analyticsbooleanWhen true, include per-campaign analytics (sent/seen/clicked/CTR and goal count/value). Costs an extra analytics lookup, so only set it when the user asks for stats/performance.
limitintegerHow many to return per page. Min 1, max 100, default 10.
pageintegerPage number (1-indexed).
site_idintegerOverride the currently selected site.
statusstringFilter by status. "all" (default) returns every status.
NameTypeReqDescription
campaignsarray
has_moreboolean
last_pagenumber
limitnumber
pagenumber
totalnumber

No examples provided.

pushengage_list_notifications ~432

Lists push notifications on the current site, newest first, paginated (response includes `has_more`). Use this to discover notification IDs and review past or upcoming sends. Set include_analytics=true only when the user asks for stats — it costs an extra lookup and adds rolled-up counts and goal conversions to each row. Each item carries content, status, targeting criteria, and delivery stats; the criteria.audience_groups ids are reusable as the send tools' audience_groups input, and absent criteria means the notification went to all subscribers.

NameTypeReqDescription
exclude_tagsarrayExclude notifications carrying any of these tags (up to 5).
include_analyticsbooleanWhen true, merge in full delivery analytics (A/B variant totals and subscriber-timezone child sends roll up into the parent row) and goal conversions (goal_count/goal_value per row). Costs extra look…
limitintegerHow many notifications to return in this page. Min 1, max 100, default 10. To browse past the first 100, increase `page` instead of asking for a larger limit.
pageintegerPage number (1-indexed) for paginating beyond the first batch.
sent_afterstringOnly notifications sent on or after this date (YYYY-MM-DD, site timezone). Must be 2017-07-01 or later, and must be paired with sent_before.
sent_beforestringOnly notifications sent on or before this date (YYYY-MM-DD, site timezone). Must be paired with sent_after and be on or after it.
site_idintegerOverride the currently selected site
statusstringFilter by status, matching the dashboard tabs: "sent" (includes currently sending), "scheduled" (includes active and paused recurring notifications), "draft" (includes archived). "all" (default) retu…
tagsarrayOnly notifications carrying at least one of these tags (up to 5).
NameTypeReqDescription
has_moreboolean
last_pagenumber
limitnumber
notificationsarray
pagenumber
totalnumber

No examples provided.

pushengage_list_rss_campaigns ~133

Lists the RSS auto push campaigns on the current site, paginated (response includes `has_more`). Each item includes the feed_url. Optionally filter by status (default "all" = every status), mirroring the dashboard filter tabs.

NameTypeReqDescription
limitintegerHow many to return per page. Min 1, max 100, default 10.
pageintegerPage number (1-indexed).
site_idintegerOverride the currently selected site.
statusstringFilter by status. "all" (default) returns every status.
NameTypeReqDescription
campaignsarray
has_moreboolean
last_pagenumber
limitnumber
pagenumber
totalnumber

No examples provided.

pushengage_list_segments ~167

Lists segments on the current site, paginated (response includes `has_more`). Each item carries segment_id, name, current subscriber count, status, and any URL matching criteria.

NameTypeReqDescription
limitintegerHow many segments to return in this page. Min 1, max 100, default 10. To browse past the first 100, increase `page` instead of asking for a larger limit.
name_containsstringOptional case-insensitive substring filter on segment_name.
pageintegerPage number (1-indexed) for paginating beyond the first batch. e.g. with limit=100 the second page (segments 101–200) is page=2.
site_idintegerOverride the currently selected site.
NameTypeReqDescription
has_moreboolean
last_pagenumber
limitnumber
pagenumber
segmentsarray
totalnumber

No examples provided.

pushengage_list_sites ~83

Lists PushEngage sites the authenticated user can access. Returns site_id, site_name, site_url, and site_status. Also returns current_site_id so the assistant can see which site is already active without calling pushengage_auth_status. When the user asks to send a notification linking to their site's homepage, use site_url as the notification's url field.

Input schema present but exposes no named parameters.

NameTypeReqDescription
current_site_idnumber
sitesarray

No examples provided.

pushengage_list_triggered_campaigns ~234

Lists the triggered campaigns (Price Drop / Inventory Alert / Cart Abandonment / etc.) on the current site, paginated (response includes `has_more`). Optionally filter by status (default "all" = every status), mirroring the dashboard filter tabs. Set include_analytics=true only when the user asks for stats/performance (it costs an extra analytics lookup per page). Each item then also carries an analytics object: sent, seen, clicked, ctr, goal_count, goal_value.

NameTypeReqDescription
include_analyticsbooleanWhen true, include per-campaign analytics (sent/seen/clicked/CTR and goal count/value). Costs an extra analytics lookup, so only set it when the user asks for stats/performance.
limitintegerHow many to return per page. Min 1, max 100, default 10.
pageintegerPage number (1-indexed).
site_idintegerOverride the currently selected site.
statusstringFilter by status. "all" (default) returns every status.
NameTypeReqDescription
campaignsarray
has_moreboolean
last_pagenumber
limitnumber
pagenumber
totalnumber

No examples provided.

pushengage_list_workflows ~219

Lists the workflow automations on the current site, paginated (response includes `has_more`). Optionally filter by status (default "all" = every status), mirroring the dashboard filter tabs. Set include_analytics=true only when the user asks for stats/performance (it costs an extra analytics lookup per page). Each item then also carries an analytics object: entered, active, completed, failed (user counts), goal_count, goal_value.

NameTypeReqDescription
include_analyticsbooleanWhen true, include per-workflow analytics (entered/active/completed/failed users and goal count/value). Costs an extra analytics lookup; only set it when the user asks for stats.
limitintegerHow many to return per page. Min 1, max 100, default 10.
pageintegerPage number (1-indexed).
site_idintegerOverride the currently selected site.
statusstringFilter by status. "all" (default) returns every status.
NameTypeReqDescription
has_moreboolean
last_pagenumber
limitnumber
pagenumber
totalnumber
workflowsarray

No examples provided.

pushengage_select_site ~101

Sets the current site used by all site-scoped tools (pushengage_send_notification, pushengage_list_segments, pushengage_get_analytics_summary, pushengage_list_drip_campaigns, etc.) when no site_id is provided. Persists across MCP restarts. Call pushengage_list_sites first to get a valid site_id.

NameTypeReqDescription
site_idintegeryesPushEngage site_id from pushengage_list_sites
NameTypeReqDescription
current_site_idnumber
site_namestring
site_urlstring

No examples provided.

pushengage_send_ab_notification ~527

Creates an A/B notification on the current site with two variants (variant_a and variant_b). Required: variant_a (title, message, url) and variant_b (title, message, url). By default (intelligent_ab_test omitted) both variants ship as-is to the audience — no automatic winner picking. Pass intelligent_ab_test to enable intelligent / auto-winner mode: each variant is sent to sent_limit_percentage% of subscribers, and after winner_delay_minutes the higher-CTR variant is automatically delivered to the remaining audience (up to sent_limit total). Only include intelligent_ab_test when the user explicitly asks for an intelligent / auto-winner test. Do not add other optional fields (tags, audience_groups, per-variant image_url, utm_params, actions, etc.) unless the user explicitly asks. Audience: by default sends to all subscribers. Pass `audience_groups` (1-20 predefined audience-group IDs) only when the user mentions a saved/predefined audience group. Use status="schedule" with schedule_date to schedule for later, or status="draft" to save without sending.

NameTypeReqDescription
audience_groupsarraySend to one or more predefined audience groups (1-20 group IDs). Applies to both variants. Omit to send to all subscribers. Only set when the user mentions a saved/predefined audience group.
intelligent_ab_testobjectOPTIONAL. Enables intelligent A/B testing: each variant is delivered to sent_limit_percentage% of subscribers, then after winner_delay_minutes the variant with the higher click-through rate is automa…
schedule_datestringRequired when status is "schedule". Format: YYYY-MM-DD HH:mm:ss in the site timezone.
site_idintegerOverride the currently selected site
statusstringSend now (sent), schedule for later (schedule), or save without sending (draft). The API only accepts sent and scheduled in the body; draft is conveyed via the action query param while the body still…
tagsarrayUp to 5 tags, 36 chars each. Only when the user explicitly asks for tags.
variant_aobjectyesA/B variant A. Required.
variant_bobjectyesA/B variant B. Required.
NameTypeReqDescription
ab_notification_id
notification_id
status
view_urlstring

No examples provided.

pushengage_send_notification ~798

Creates and sends a push notification on the current site. Required fields: title, message, url. Do not add optional fields (tags, image_url, utm_params, audience_groups, actions, etc.) unless the user explicitly asks for them — for example, do not infer tags from the notification topic. Delivery modes (mutually exclusive — pick AT MOST one): (a) status="schedule" + schedule_date for a one-shot scheduled send; (b) pass recurring_schedule { days, times, start_date, end_date } for a recurring/repeating notification — leave status at "sent" (default) to activate the recurrence, or use "draft" to save without activating; (c) when scheduling one-shot, optionally pass send_in_subscribers_timezone=true to deliver at the scheduled wall-clock time in each subscriber's local timezone (only when the user explicitly asks, e.g. "send at 9am in their timezone"). Otherwise the notification is sent immediately. Use status="draft" to save without sending or activating. Audience: by default sends to all subscribers. Pass `audience_groups` (array of 1-20 predefined audience-group IDs) only when the user mentions a saved/predefined audience group. When the user asks to use the site URL, call pushengage_list_sites and use the current site's site_url.

NameTypeReqDescription
actionsarrayAction buttons. Only when the user explicitly asks.
android_pushobjectAndroid-specific options. Requires channel_id when set. Only when the user explicitly asks.
audience_groupsarraySend to one or more predefined audience groups (1-20 group IDs). Each ID refers to an audience group already configured in PushEngage. Omit this field to send to all subscribers. Only set this when t…
big_image_urlstringLarge hero image. Only when the user explicitly asks for a big image.
expire_inintegerExpiry in seconds (60–2419200). Only when the user explicitly asks.
image_urlstringSmall notification icon. Only when the user explicitly asks for an image.
ios_pushobjectiOS-specific options. Only when the user explicitly asks.
messagestringyesNotification message body
recurring_scheduleobjectOPTIONAL. Turns this into a recurring notification that fires on the chosen days/times between start_date and end_date. Mutually exclusive with status="schedule", schedule_date, and send_in_subscribe…
schedule_datestringRequired when status is "schedule". Format: YYYY-MM-DD HH:mm:ss in the site timezone.
send_in_subscribers_timezonebooleanOnly valid when status="schedule" (and not combined with recurring_schedule). When true, schedule_date is interpreted in each subscriber's local timezone instead of the site timezone — one delivery i…
site_idintegerOverride the currently selected site
statusstringSend now (sent), schedule for later (schedule), or save without sending (draft)
tagsarrayUp to 5 tags, 36 chars each. Only when the user explicitly asks for tags.
titlestringyesNotification title
urlstringyesDestination URL when the subscriber clicks the notification
utm_paramsobjectUTM tracking params. Only when the user explicitly asks.
NameTypeReqDescription
messagestring
notification_id
status
titlestring
urlstring
view_urlstring

No examples provided.

pushengage_update_campaign_defaults ~293

Updates one or more of the current site's campaign default settings. Pass only the groups and fields you want to change: utm_parameters, fallback_notification, fallback_attributes, and/or default_expiry. The tool reads the current values and merges your changes, so partial edits are fine (e.g. change just utm_parameters.source, or set default_expiry to {days:7}). default_expiry is given as days/hours/minutes (omitted components count as 0; total must be between 1 minute and 28 days). When utm_parameters.enabled is true, source/medium/campaign must be non-empty after the merge. Provide at least one group. Returns the updated settings.

NameTypeReqDescription
default_expiryobjectDefault notification expiry. Set as days/hours/minutes; omitted components count as 0. Total must be between 1 minute and 28 days.
fallback_attributesobjectFallback subscriber city/country used when the browser can't resolve them.
fallback_notificationobjectNotification shown if the browser cannot fetch the sent notification. Title, message, and URL are all required by the API, so any you omit are kept from the current values.
site_idintegerOverride the currently selected site.
utm_parametersobjectUTM defaults appended to campaign URLs. Provide only the fields you want to change.
NameTypeReqDescription
default_expiryobject
fallback_attributesobject
fallback_notificationobject
utm_parametersobject

No examples provided.

pushengage_update_service_worker_settings ~191

Updates the current site's Service Worker Settings. Pass only the fields you want to change: enable_service_worker_registration, enable_service_worker_in_subfolder, and/or service_worker_file_path. The tool reads the current values and merges your changes. When enable_service_worker_registration is true, service_worker_file_path must be non-empty after the merge. Provide at least one field. Returns the updated settings.

NameTypeReqDescription
enable_service_worker_in_subfolderbooleanEnable addition of service worker in another sub-folder.
enable_service_worker_registrationbooleanEnable the service worker registration from PushEngage. Disable it only if your site already registers its own service worker. When true, service_worker_file_path is required.
service_worker_file_pathstringPath for service worker file. Required when the service worker registration is enabled.
site_idintegerOverride the currently selected site.
NameTypeReqDescription
enable_service_worker_in_subfolderboolean
enable_service_worker_registrationboolean
service_worker_file_pathstring

No examples provided.

pushengage_update_site_details ~242

Updates the current site's details. Pass only the fields you want to change: site_name (Site Name), site_url (Site URL), timezone (Website Time Zone, an IANA name), enable_geolocation (Enable Geolocation), and/or remove_powered_by_pushengage (Remove "Powered By PushEngage", which needs a paid plan). Provide at least one field. Returns the updated site details.

NameTypeReqDescription
enable_geolocationbooleanEnable Geolocation. Personalizes notifications based on the subscriber's location and timezone.
remove_powered_by_pushengagebooleanRemove "Powered By PushEngage" branding from notifications. Requires a paid (white-label) plan; the API rejects it otherwise.
site_idintegerOverride the currently selected site.
site_namestringSite Name. 3-150 characters.
site_urlstringSite URL. A full http(s) URL, e.g. https://example.com.
timezonestringWebsite Time Zone as an IANA name, e.g. "America/New_York" or "Asia/Kolkata".
NameTypeReqDescription
enable_geolocationboolean
remove_powered_by_pushengageboolean
site_idnumber
site_imagestring
site_namestring
site_urlstring
timezonestring

No examples provided.