Skip to content

Autoresponders API Documentation

Automated email sequence endpoints for creating, managing, and configuring autoresponder campaigns that trigger based on subscriber actions.

Create Autoresponder

POST /api.php

API Usage Notes

  • Authentication is done by User API Key
  • Required permissions: AutoResponder.Create
  • Legacy endpoint access via /api.php only (no v1 REST alias configured)

Creates a new autoresponder that sends an email based on subscriber triggers such as subscription, link clicks, campaign opens, conversions, forward-to-friend actions, or specific dates. Supports delayed sending with various time intervals, optional recurring sequences (hours/days/weeks/months), an Enabled/Disabled status flag for soft-pause, and optional segment scoping.

Request Body Parameters:

ParameterTypeRequiredDescription
CommandStringYesAPI command: autoresponder.create
SessionIDStringNoSession ID obtained from login
APIKeyStringNoAPI key for authentication
SubscriberListIDIntegerYesSubscriber list ID to attach the autoresponder to
AutoResponderNameStringYesName of the autoresponder
AutoResponderTriggerTypeStringYesTrigger type. Possible values: OnSubscription, OnSubscriberLinkClick, OnSubscriberCampaignOpen, OnSubscriberCampaignConversion, OnSubscriberForwardToFriend, OnSubscriberDate
AutoResponderTriggerValueStringConditionalTrigger value (required for: OnSubscriberLinkClick, OnSubscriberCampaignOpen, OnSubscriberCampaignConversion, OnSubscriberDate)
AutoResponderTriggerValue2StringNoAdditional trigger value for certain trigger types
EmailIDIntegerYesEmail template ID to send
TriggerTimeTypeStringYesTime delay type. Possible values: Immediately, Seconds later, Minutes later, Hours later, Days later, Weeks later, Months later
TriggerTimeIntegerConditionalTime delay value (required when TriggerTimeType is not Immediately)
RepeatStringNoRepeat pattern in ISO 8601-style duration format: R{count}/P{interval}{unit} where unit is H (hours), D (days), W (weeks), or M (months). Examples: R5/P2D (5 occurrences every 2 days), R3/P2W (3 occurrences every 2 weeks), R6/P1M (6 occurrences every month).
StatusStringNoSoft-pause flag. Possible values: Enabled, Disabled. Default: Enabled. Disabled autoresponders do not enqueue new sends but already-queued sends continue to fire (forward-looking pause).
SegmentIDIntegerNoSegment scope. When supplied, only subscribers matching this segment trigger the autoresponder. The segment must belong to the same list and the calling user. NULL means whole-list scope (default).
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "autoresponder.create",
    "SessionID": "your-session-id",
    "SubscriberListID": 123,
    "AutoResponderName": "Welcome Email",
    "AutoResponderTriggerType": "OnSubscription",
    "EmailID": 456,
    "TriggerTimeType": "Immediately"
  }'
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "autoresponder.create",
    "SessionID": "your-session-id",
    "SubscriberListID": 123,
    "AutoResponderName": "3-Day Follow-up",
    "AutoResponderTriggerType": "OnSubscription",
    "EmailID": 457,
    "TriggerTimeType": "Days later",
    "TriggerTime": 3
  }'
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "autoresponder.create",
    "SessionID": "your-session-id",
    "SubscriberListID": 123,
    "AutoResponderName": "Monthly Newsletter Series",
    "AutoResponderTriggerType": "OnSubscription",
    "EmailID": 458,
    "TriggerTimeType": "Days later",
    "TriggerTime": 7,
    "Repeat": "R6/P1M"
  }'
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "autoresponder.create",
    "SessionID": "your-session-id",
    "SubscriberListID": 123,
    "AutoResponderName": "Win-back Sequence",
    "AutoResponderTriggerType": "OnSubscription",
    "EmailID": 459,
    "TriggerTimeType": "Days later",
    "TriggerTime": 1,
    "SegmentID": 42,
    "Status": "Disabled"
  }'
json
{
  "Success": true,
  "ErrorCode": 0,
  "ErrorText": "",
  "AutoResponderID": 789
}
json
{
  "Success": false,
  "ErrorCode": [6]
}
json
{
  "Success": false,
  "ErrorCode": [9]
}
txt
0: Success
subscriberlistid: Missing required parameter subscriberlistid
autorespondername: Missing required parameter autorespondername
autorespondertriggertype: Missing required parameter autorespondertriggertype
autorespondertriggervalue: Missing required parameter autorespondertriggervalue (required for certain trigger types)
5: Missing triggertime when triggertimetype is not Immediately
6: Invalid autoresponder trigger type
7: Invalid trigger time type
8: Missing required parameter emailid
9: Invalid email ID (email not found or does not belong to user)
10: Invalid status value (must be Enabled or Disabled)
11: Invalid segment id (segment does not belong to this list / user)

Get Autoresponder

POST /api.php

API Usage Notes

  • Authentication is done by User API Key
  • Required permissions: AutoResponder.Get
  • Legacy endpoint access via /api.php only (no v1 REST alias configured)

Retrieves detailed information about a specific autoresponder including configuration, trigger settings, and optionally performance statistics. The autoresponder must be owned by the authenticated user. RepeatSettings is returned as a decoded object (or null when never set).

Request Body Parameters:

ParameterTypeRequiredDescription
CommandStringYesAPI command: autoresponder.get
SessionIDStringNoSession ID obtained from login
APIKeyStringNoAPI key for authentication
AutoResponderIDIntegerYesAutoresponder ID to retrieve
RetrieveStatisticsBooleanNoInclude performance statistics (default: false)
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "autoresponder.get",
    "SessionID": "your-session-id",
    "AutoResponderID": 789
  }'
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "autoresponder.get",
    "SessionID": "your-session-id",
    "AutoResponderID": 789,
    "RetrieveStatistics": true
  }'
json
{
  "Success": true,
  "ErrorCode": 0,
  "ErrorText": "",
  "AutoResponder": {
    "AutoResponderID": 789,
    "AutoResponderName": "Welcome Email",
    "RelListID": 123,
    "RelSegmentID": null,
    "RelEmailID": 456,
    "AutoResponderTriggerType": "OnSubscription",
    "AutoResponderTriggerValue": "",
    "AutoResponderTriggerValue2": "",
    "TriggerTimeType": "Immediately",
    "TriggerTime": 0,
    "Status": "Enabled",
    "RepeatSettings": {
      "Status": "Disabled"
    },
    "TotalSent": 1250,
    "TotalOpens": 875,
    "TotalClicks": 320,
    "TotalRevenue": "1250.50",
    "UniqueOpens": 825,
    "UniqueClicks": 295
  }
}
json
{
  "Success": false,
  "ErrorCode": ["autoresponderid"],
  "ErrorText": "Missing auto responder id"
}
txt
0: Success
autoresponderid: Missing required parameter autoresponderid

List Autoresponders

POST /api.php

API Usage Notes

  • Authentication is done by User API Key
  • Required permissions: AutoResponders.Get
  • Legacy endpoint access via /api.php only (no v1 REST alias configured)

Retrieves autoresponders for a specific subscriber list, with optional pagination, search-by-name, trigger-type filter, and status filter. TotalResponderCount reflects the filtered total (before pagination), so callers can size their UI correctly. RepeatSettings is returned as a decoded object on every row, matching the singular Get endpoint.

Request Body Parameters:

ParameterTypeRequiredDescription
CommandStringYesAPI command: autoresponders.get
SessionIDStringNoSession ID obtained from login
APIKeyStringNoAPI key for authentication
SubscriberListIDIntegerYesSubscriber list ID to retrieve autoresponders for
RecordsPerRequestIntegerNoPagination limit. Default: 0 (unbounded — return all matching rows)
RecordsFromIntegerNoPagination offset. Default: 0
SearchKeywordStringNoCase-insensitive substring match on AutoResponderName
TriggerTypeStringNoExact-match filter. Possible values: OnSubscription, OnSubscriberLinkClick, OnSubscriberCampaignOpen, OnSubscriberCampaignConversion, OnSubscriberForwardToFriend, OnSubscriberDate
TriggerValueStringNoExact-match filter on AutoResponderTriggerValue. Only honored when TriggerType is also provided.
StatusStringNoExact-match enum filter. Possible values: Enabled, Disabled
OrderFieldStringNoField to sort by. Possible values: AutoResponderName, AutoResponderID, TotalSent, TotalOpens, TotalClicks, TotalDelivered, TotalFailed, UniqueOpens, UniqueClicks, TotalConversions, UniqueConversions, TotalForwards, UniqueForwards, TotalViewsOnBrowser, UniqueViewsOnBrowser, TotalUnsubscriptions, TotalHardBounces, TotalSoftBounces, TotalRevenue, Status. Default: AutoResponderName
OrderTypeStringNoSort direction: ASC or DESC (default: ASC)
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "autoresponders.get",
    "SessionID": "your-session-id",
    "SubscriberListID": 123
  }'
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "autoresponders.get",
    "SessionID": "your-session-id",
    "SubscriberListID": 123,
    "RecordsPerRequest": 25,
    "RecordsFrom": 50,
    "OrderField": "TotalSent",
    "OrderType": "DESC"
  }'
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "autoresponders.get",
    "SessionID": "your-session-id",
    "SubscriberListID": 123,
    "SearchKeyword": "Welcome",
    "TriggerType": "OnSubscription",
    "Status": "Enabled"
  }'
json
{
  "Success": true,
  "ErrorCode": 0,
  "ErrorText": "",
  "TotalResponderCount": 5,
  "AutoResponders": [
    {
      "AutoResponderID": 789,
      "AutoResponderName": "Welcome Email",
      "RelListID": 123,
      "RelSegmentID": null,
      "RelEmailID": 456,
      "AutoResponderTriggerType": "OnSubscription",
      "TriggerTimeType": "Immediately",
      "TriggerTime": 0,
      "Status": "Enabled",
      "RepeatSettings": {
        "Status": "Disabled"
      },
      "TotalSent": 1250,
      "TotalOpens": 875,
      "TotalClicks": 320,
      "TotalRevenue": "1250.50",
      "UniqueOpens": 825,
      "UniqueClicks": 295
    }
  ]
}
json
{
  "Success": false,
  "ErrorCode": ["subscriberlistid"],
  "ErrorText": "Missing subscriber list id"
}
txt
0: Success
subscriberlistid: Missing required parameter subscriberlistid

List Autoresponders Across Lists

POST /api.php

API Usage Notes

  • Authentication is done by User API Key
  • Required permissions: AutoResponders.Get
  • Legacy endpoint access via /api.php only (no v1 REST alias configured)

Returns autoresponders across every list owned by the authenticated user in a single round-trip. Use this to back account-wide automation dashboards or cross-list reporting without doing N+1 fan-outs. Mirrors autoresponders.get's filter and paging surface but SubscriberListID is optional — when omitted, the endpoint returns ARs from all of the user's lists. Each row carries RelListID for client-side grouping.

Request Body Parameters:

ParameterTypeRequiredDescription
CommandStringYesAPI command: autoresponders.acrosslists.get
SessionIDStringNoSession ID obtained from login
APIKeyStringNoAPI key for authentication
SubscriberListIDIntegerNoOptional list scope. When omitted, returns ARs across all lists owned by the user.
RecordsPerRequestIntegerNoPagination limit (default: 0 — unbounded)
RecordsFromIntegerNoPagination offset (default: 0)
SearchKeywordStringNoCase-insensitive substring match on AutoResponderName
TriggerTypeStringNoExact-match filter (same enum as autoresponders.get)
TriggerValueStringNoExact-match filter; only honored with TriggerType
StatusStringNoPossible values: Enabled, Disabled
OrderFieldStringNoField to sort by (adds RelListID to the standard set)
OrderTypeStringNoASC or DESC (default: ASC)
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "autoresponders.acrosslists.get",
    "SessionID": "your-session-id"
  }'
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "autoresponders.acrosslists.get",
    "SessionID": "your-session-id",
    "TriggerType": "OnSubscription",
    "Status": "Enabled",
    "RecordsPerRequest": 50
  }'
json
{
  "Success": true,
  "ErrorCode": 0,
  "ErrorText": "",
  "TotalResponderCount": 12,
  "AutoResponders": [
    {
      "AutoResponderID": 789,
      "AutoResponderName": "Welcome",
      "RelListID": 123,
      "RelSegmentID": null,
      "RelEmailID": 456,
      "AutoResponderTriggerType": "OnSubscription",
      "TriggerTimeType": "Immediately",
      "TriggerTime": 0,
      "Status": "Enabled",
      "RepeatSettings": null,
      "TotalSent": 1250,
      "TotalRevenue": "1250.50"
    }
  ]
}
json
{
  "Success": false,
  "ErrorCode": [],
  "ErrorText": ""
}
txt
0: Success

Update Autoresponder

POST /api.php

API Usage Notes

  • Authentication is done by User API Key
  • Required permissions: AutoResponder.Update
  • Legacy endpoint access via /api.php only (no v1 REST alias configured)

Updates an existing autoresponder. All fields except AutoResponderID are optional, allowing partial updates. The autoresponder must be owned by the authenticated user. Status and SegmentID are partial-update fields just like the others; pass SegmentID: 0 to broaden scope back to whole-list.

Request Body Parameters:

ParameterTypeRequiredDescription
CommandStringYesAPI command: autoresponder.update
SessionIDStringNoSession ID obtained from login
APIKeyStringNoAPI key for authentication
AutoResponderIDIntegerYesAutoresponder ID to update
SubscriberListIDIntegerNoUpdated subscriber list ID
AutoResponderNameStringNoUpdated autoresponder name
AutoResponderTriggerTypeStringNoUpdated trigger type (same enum as create)
AutoResponderTriggerValueStringConditionalUpdated trigger value (required when updating to certain trigger types)
AutoResponderTriggerValue2StringNoUpdated additional trigger value
EmailIDIntegerNoUpdated email template ID
TriggerTimeTypeStringNoUpdated time delay type (same enum as create)
TriggerTimeIntegerConditionalUpdated time delay value (required when TriggerTimeType is not Immediately)
RepeatStringNoUpdated repeat pattern: R{count}/P{interval}{H|D|W|M} or null to disable repeating
StatusStringNoPossible values: Enabled, Disabled
SegmentIDIntegerNoUpdated segment scope. Pass 0 (or null) to clear scope back to whole-list.
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "autoresponder.update",
    "SessionID": "your-session-id",
    "AutoResponderID": 789,
    "Status": "Disabled"
  }'
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "autoresponder.update",
    "SessionID": "your-session-id",
    "AutoResponderID": 789,
    "TriggerTimeType": "Days later",
    "TriggerTime": 1
  }'
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "autoresponder.update",
    "SessionID": "your-session-id",
    "AutoResponderID": 789,
    "SegmentID": 0
  }'
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "autoresponder.update",
    "SessionID": "your-session-id",
    "AutoResponderID": 789,
    "Repeat": null
  }'
json
{
  "Success": true,
  "ErrorCode": 0,
  "ErrorText": ""
}
json
{
  "Success": false,
  "ErrorCode": [5],
  "ErrorText": ["Invalid auto responder id"]
}
json
{
  "Success": false,
  "ErrorCode": [10],
  "ErrorText": ["Invalid status value"]
}
txt
0: Success
autoresponderid: Missing required parameter autoresponderid
autorespondertriggervalue: Missing auto responder trigger value (required for certain trigger types)
triggertime: Missing auto responder trigger time (required when TriggerTimeType is not Immediately)
5: Invalid auto responder id (not found or access denied)
7: Invalid auto responder trigger type
8: Invalid trigger time type
9: Invalid email ID (email not found or does not belong to user)
10: Invalid status value (must be Enabled or Disabled)
11: Invalid segment id (segment does not belong to this list / user)

Duplicate Autoresponder

POST /api.php

API Usage Notes

  • Authentication is done by User API Key
  • Required permissions: AutoResponder.Create
  • Legacy endpoint access via /api.php only (no v1 REST alias configured)

Duplicates a single autoresponder including its linked email template and attachments. Returns the new AutoResponderID and RelEmailID so callers don't need to refetch the listing to identify the clone. By default the duplicate lives on the same list as the source; pass TargetListID for cross-list duplication (the user must own both lists). The duplicate always starts in Status: Disabled so users can review it before it fires.

Request Body Parameters:

ParameterTypeRequiredDescription
CommandStringYesAPI command: autoresponder.duplicate
SessionIDStringNoSession ID obtained from login
APIKeyStringNoAPI key for authentication
AutoResponderIDIntegerYesSource autoresponder ID to duplicate
NamePrefixStringNoPrefix to add to the duplicate's name (default: "Copy of ")
TargetListIDIntegerNoTarget list ID for cross-list duplication (default: source AR's list). User must own both lists. When the target differs from the source, segment scope is dropped because segments are list-bound.
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "autoresponder.duplicate",
    "SessionID": "your-session-id",
    "AutoResponderID": 789
  }'
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "autoresponder.duplicate",
    "SessionID": "your-session-id",
    "AutoResponderID": 789,
    "TargetListID": 456,
    "NamePrefix": "Cross-List - "
  }'
json
{
  "Success": true,
  "ErrorCode": 0,
  "ErrorText": "",
  "AutoResponderID": 990,
  "RelEmailID": 991
}
json
{
  "Success": false,
  "ErrorCode": [2],
  "ErrorText": ["Invalid auto responder id"]
}
json
{
  "Success": false,
  "ErrorCode": [3],
  "ErrorText": ["Invalid target list id"]
}
txt
0: Success
1: Missing required parameter autoresponderid
2: Invalid auto responder id (source not found or access denied)
3: Invalid target list id (not owned by user)
4: Failed to clone auto responder email
5: Failed to create duplicated auto responder

Send Test Email

POST /api.php

API Usage Notes

  • Authentication is done by User API Key
  • Required permissions: AutoResponder.Update
  • Rate limit: 10 requests per 300 seconds (per user)
  • Legacy endpoint access via /api.php only (no v1 REST alias configured)

Renders an autoresponder's email and dispatches a real test copy to up to 5 recipient addresses synchronously (no queue insertion). The render path is the same as the production AR delivery, so footer rendering, sender domain enforcement, and personalization tokens behave identically. Personalization is computed against the SubscriberID provided, or against a random subscriber from the AR's list, or against a synthetic stand-in if the list is empty.

Request Body Parameters:

ParameterTypeRequiredDescription
CommandStringYesAPI command: autoresponder.sendtest
SessionIDStringNoSession ID obtained from login
APIKeyStringNoAPI key for authentication
AutoResponderIDIntegerYesAutoresponder ID to render
RecipientsStringYesComma-separated list of email addresses (max 5 per call)
SubscriberIDIntegerNoOptional subscriber ID for personalization context. If omitted, a random subscriber from the AR's list is selected; if the list is empty, a synthetic subscriber is used.
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "autoresponder.sendtest",
    "SessionID": "your-session-id",
    "AutoResponderID": 789,
    "Recipients": "you@example.com"
  }'
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "autoresponder.sendtest",
    "SessionID": "your-session-id",
    "AutoResponderID": 789,
    "Recipients": "alice@example.com,bob@example.com",
    "SubscriberID": 4421
  }'
json
{
  "Success": true,
  "ErrorCode": 0,
  "ErrorText": "",
  "RecipientsAttempted": 2,
  "RecipientsAccepted": 2,
  "RecipientFailures": []
}
json
{
  "Success": true,
  "ErrorCode": 0,
  "ErrorText": "",
  "RecipientsAttempted": 3,
  "RecipientsAccepted": 2,
  "RecipientFailures": [
    { "Recipient": "broken@bad-domain.example", "Error": "SMTP connect failed" }
  ]
}
json
{
  "Success": false,
  "ErrorCode": [8],
  "ErrorText": ["Invalid recipient email address: not-an-email"]
}
json
{
  "Success": false,
  "ErrorCode": [10],
  "ErrorText": ["Too many recipients (max 5 per call)"]
}
json
{
  "Success": false,
  "ErrorCode": [11],
  "ErrorText": ["All recipients failed delivery"],
  "RecipientsAttempted": 2,
  "RecipientsAccepted": 0,
  "RecipientFailures": [
    { "Recipient": "broken1@example.invalid", "Error": "SMTP connect failed" },
    { "Recipient": "broken2@example.invalid", "Error": "SMTP connect failed" }
  ]
}
txt
0: Success (Success=true; per-recipient failures, if any, are listed in RecipientFailures)
1: Missing required parameter autoresponderid
2: Missing required parameter recipients
3: Invalid auto responder id (not found or access denied)
4: Auto responder is not linked to an email
5: Auto responder email not found
6: Auto responder list not found
7: Invalid subscriber id (does not belong to this list)
8: Invalid recipient email address
9: No recipients provided
10: Too many recipients (max 5 per call)
11: All recipients failed delivery (returned only when zero recipients were accepted)
99: NOT AVAILABLE IN DEMO MODE

Get Activity Log

POST /api.php

API Usage Notes

  • Authentication is done by User API Key
  • Required permissions: AutoResponder.Get
  • Legacy endpoint access via /api.php only (no v1 REST alias configured)

Paginated activity log for one autoresponder, sourced from oempro_transactional_email_queue. Each entry captures one render-and-deliver attempt: the recipient subscriber, status, timestamp, and event flags (Opened, Clicked, Bounced).

Request Body Parameters:

ParameterTypeRequiredDescription
CommandStringYesAPI command: autoresponder.activity.get
SessionIDStringNoSession ID obtained from login
APIKeyStringNoAPI key for authentication
AutoResponderIDIntegerYesAutoresponder ID
RecordsPerRequestIntegerNoPagination limit (default: 50, max: 200)
RecordsFromIntegerNoPagination offset (default: 0)
SinceStringNoFilter to entries with TimeToSend >= Since (Y-m-d or Y-m-d H:i:s format)
StatusStringNoFilter by delivery status. Possible values: Pending, Sending, Sent, Failed, Delivered, Bounced
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "autoresponder.activity.get",
    "SessionID": "your-session-id",
    "AutoResponderID": 789
  }'
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "autoresponder.activity.get",
    "SessionID": "your-session-id",
    "AutoResponderID": 789,
    "Status": "Failed",
    "Since": "2026-04-26",
    "RecordsPerRequest": 100
  }'
json
{
  "Success": true,
  "ErrorCode": 0,
  "ErrorText": "",
  "TotalSendCount": 1820,
  "Activity": [
    {
      "LogID": 99211,
      "SubscriberID": 4421,
      "Email": "alice@example.com",
      "Status": "Sent",
      "SentAt": "2026-04-30 14:12:08",
      "FailureReason": null,
      "Bounced": false,
      "Opened": true,
      "Clicked": false
    }
  ]
}
json
{
  "Success": false,
  "ErrorCode": [2],
  "ErrorText": ["Invalid auto responder id"]
}
txt
0: Success
1: Missing required parameter autoresponderid
2: Invalid auto responder id (not found or access denied)

Get Window Stats

POST /api.php

API Usage Notes

  • Authentication is done by User API Key
  • Required permissions: AutoResponder.Get
  • Legacy endpoint access via /api.php only (no v1 REST alias configured)

Aggregated counters for one autoresponder over a rolling time window (default 30 days, max 365). Sourced from oempro_transactional_email_queue so the numbers match the bundled CodeIgniter activity report. Use this instead of the lifetime counters on AutoResponder.Get when you want a true windowed view (e.g., a "Sent (30d)" column).

Request Body Parameters:

ParameterTypeRequiredDescription
CommandStringYesAPI command: autoresponder.stats.window.get
SessionIDStringNoSession ID obtained from login
APIKeyStringNoAPI key for authentication
AutoResponderIDIntegerYesAutoresponder ID
WindowDaysIntegerNoWindow size in days. Default: 30, max: 365
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "autoresponder.stats.window.get",
    "SessionID": "your-session-id",
    "AutoResponderID": 789
  }'
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "autoresponder.stats.window.get",
    "SessionID": "your-session-id",
    "AutoResponderID": 789,
    "WindowDays": 90
  }'
json
{
  "Success": true,
  "ErrorCode": 0,
  "ErrorText": "",
  "Window": {
    "Days": 30,
    "From": "2026-04-03",
    "To": "2026-05-03"
  },
  "Counters": {
    "TotalSent": 7240,
    "TotalDelivered": 7115,
    "TotalFailed": 125,
    "TotalOpens": 4012,
    "UniqueOpens": 2870,
    "TotalClicks": 1240,
    "UniqueClicks": 1004,
    "TotalUnsubscriptions": 32,
    "TotalHardBounces": 18,
    "TotalSoftBounces": 87
  },
  "LastSentAt": "2026-05-03 09:12:14",
  "NextScheduledAt": "2026-05-03 13:30:00"
}
json
{
  "Success": false,
  "ErrorCode": [2],
  "ErrorText": ["Invalid auto responder id"]
}
txt
0: Success
1: Missing required parameter autoresponderid
2: Invalid auto responder id (not found or access denied)

Copy Autoresponders

POST /api.php

API Usage Notes

  • Authentication is done by User API Key
  • Required permissions: AutoResponder.Create
  • Legacy endpoint access via /api.php is also supported

Copies all autoresponders (or a specific one) from a source list to a target list. Creates clones of the email templates and autoresponder configurations. Optionally adds a prefix to copied autoresponder names.

For duplicating a single autoresponder (especially within the same list), prefer the dedicated autoresponder.duplicate endpoint which returns the new IDs.

Request Body Parameters:

ParameterTypeRequiredDescription
CommandStringYesAPI command: autoresponders.copy
SessionIDStringNoSession ID obtained from login
APIKeyStringNoAPI key for authentication
SourceListIDIntegerYesSource subscriber list ID to copy autoresponders from
TargetListIDIntegerYesTarget subscriber list ID to copy autoresponders to
TargetAutoResponderIDIntegerNoSpecific autoresponder ID to copy (if omitted, copies all autoresponders from source list)
PrefixStringNoPrefix to add to copied autoresponder names (e.g., "Copy - ")
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "autoresponders.copy",
    "SessionID": "your-session-id",
    "SourceListID": 123,
    "TargetListID": 456,
    "Prefix": "Copy - "
  }'
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "autoresponders.copy",
    "SessionID": "your-session-id",
    "SourceListID": 123,
    "TargetListID": 456,
    "TargetAutoResponderID": 789
  }'
json
{
  "Success": true,
  "ErrorCode": 0,
  "ErrorText": ""
}
json
{
  "Success": false,
  "ErrorCode": [4],
  "ErrorText": ["Invalid source subscriber id"]
}
txt
0: Success
sourcelistid: Missing source subscriber list id
targetlistid: Missing target subscriber list id
4: Invalid source or target subscriber list id (not found or access denied)

Delete Autoresponders

POST /api.php

API Usage Notes

  • Authentication is done by User API Key
  • Required permissions: AutoResponders.Delete
  • Legacy endpoint access via /api.php is also supported

Permanently deletes one or more autoresponders. Accepts comma-separated autoresponder IDs. All autoresponders must be owned by the authenticated user.

Request Body Parameters:

ParameterTypeRequiredDescription
CommandStringYesAPI command: autoresponders.delete
SessionIDStringNoSession ID obtained from login
APIKeyStringNoAPI key for authentication
AutoRespondersStringYesComma-separated autoresponder IDs to delete (e.g., "789,790,791")
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "autoresponders.delete",
    "SessionID": "your-session-id",
    "AutoResponders": "789"
  }'
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "autoresponders.delete",
    "SessionID": "your-session-id",
    "AutoResponders": "789,790,791"
  }'
json
{
  "Success": true,
  "ErrorCode": 0,
  "ErrorText": ""
}
json
{
  "Success": false,
  "ErrorCode": ["autoresponders"],
  "ErrorText": ["Auto responder ids are missing"]
}
txt
0: Success
autoresponders: Auto responder ids are missing

Any questions? Contact us.