Skip to content

User API Documentation

User management endpoints for creating, authenticating, and managing user accounts and user groups.

Create a User

POST /api.php

API Usage Notes

  • Authentication required: Admin API Key
  • Legacy endpoint access via /api.php only (no v1 REST alias configured)

Request Body Parameters:

ParameterTypeRequiredDescription
CommandStringYesAPI command: user.create
SessionIDStringNoSession ID obtained from login
APIKeyStringNoAPI key for authentication
RelUserGroupIDIntegerYesUser group ID to assign the user to
EmailAddressStringYesUser's email address
UsernameStringYesUsername for login (must be unique)
PasswordStringYesUser's password (will be hashed)
TimeZoneStringYesUser's timezone
LanguageStringYesUser's language code (e.g., 'en')
CompanyNameStringConditionalCompany name (required if FirstName not provided)
FirstNameStringConditionalFirst name (required if CompanyName not provided)
LastNameStringNoLast name
WebsiteStringNoWebsite URL
OtherEmailAddressesStringNoAdditional email addresses
StreetStringNoStreet address
CityStringNoCity
StateStringNoState/Province
ZipStringNoZIP/Postal code
CountryStringNoCountry
PhoneStringNoPhone number
PhoneVerifiedBooleanNoPhone verification status
FaxStringNoFax number
PreviewMyEmailAccountStringNoPreview email account
PreviewMyEmailAPIKeyStringNoPreview email API key
ForwardToFriendHeaderStringNoForward to friend header text
ForwardToFriendFooterStringNoForward to friend footer text
AccountStatusStringNoAccount status ('Enabled' or 'Disabled', default: 'Enabled')
AvailableCreditsIntegerNoInitial credits (default: 0)
ReputationLevelStringNoReputation level ('Trusted' or 'Untrusted', default: 'Trusted')
SignUpIPAddressStringNoUser signup IP address
SSOIDStringNoSingle sign-on ID
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "user.create",
    "SessionID": "your-session-id",
    "RelUserGroupID": 1,
    "EmailAddress": "user@example.com",
    "Username": "newuser",
    "Password": "securepassword",
    "TimeZone": "America/New_York",
    "Language": "en",
    "FirstName": "John",
    "LastName": "Doe"
  }'
json
{
  "Success": true,
  "ErrorCode": 0,
  "UserID": 123
}
json
{
  "Success": false,
  "ErrorCode": [1, 2, 3]
}
txt
0: Success
1: Missing RelUserGroupID parameter
2: Missing EmailAddress parameter
3: Missing Username parameter
4: Missing Password parameter
6: Missing CompanyName or FirstName parameter
8: Missing TimeZone parameter
9: Missing Language parameter
10: Invalid email address format
11: Invalid user group ID
12: Username already exists
13: Email address already exists
14: Invalid language code
15: Invalid reputation level (must be 'Trusted' or 'Untrusted')
16: Maximum number of user accounts exceeded

User Login

POST /api.php

API Usage Notes

  • No authentication required
  • Legacy endpoint access via /api.php only (no v1 REST alias configured)

Request Body Parameters:

ParameterTypeRequiredDescription
CommandStringYesAPI command: user.login
SessionIDStringNoSession ID obtained from login
APIKeyStringConditionalAPI key for authentication (alternative to username/password)
UsernameStringConditionalUsername or email address (required if not using APIKey)
PasswordStringConditionalUser's password (required if not using APIKey)
PasswordEncryptedBooleanNoSet to true if password is already MD5 hashed
CaptchaStringConditionalCAPTCHA value (required if CAPTCHA is enabled)
DisableCaptchaBooleanNoSet to true to disable CAPTCHA requirement
TFACodeStringConditionalTwo-factor authentication code (required if 2FA is enabled)
TFARecoveryCodeStringNoTwo-factor authentication recovery code
Disable2FABooleanNoSet to true to disable 2FA verification
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "user.login",
    "Username": "john.doe",
    "Password": "securepassword"
  }'
json
{
  "Success": true,
  "ErrorCode": 0,
  "ErrorText": "",
  "SessionID": "abc123def456",
  "UserInfo": {
    "UserID": 123,
    "Username": "john.doe",
    "EmailAddress": "john@example.com",
    "FirstName": "John",
    "LastName": "Doe",
    "AccountStatus": "Enabled"
  }
}
json
{
  "Success": false,
  "ErrorCode": [3],
  "ErrorText": ["Invalid login information"]
}
txt
0: Success
1: Missing Username parameter
2: Missing Password parameter
3: Invalid login information
4: Missing Captcha parameter
5: Invalid CAPTCHA value
6: Invalid 2FA code or recovery code

Get Current User Information

POST /api.php

API Usage Notes

  • Authentication required: User API Key
  • Legacy endpoint access via /api.php only (no v1 REST alias configured)

Request Body Parameters:

ParameterTypeRequiredDescription
CommandStringYesAPI command: user.current
SessionIDStringNoSession ID obtained from login
APIKeyStringNoAPI key for authentication
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "user.current",
    "SessionID": "your-session-id"
  }'
json
{
  "Success": true,
  "ErrorCode": 0,
  "UserInfo": {
    "UserID": 123,
    "RelUserGroupID": 1,
    "EmailAddress": "user@example.com",
    "Username": "john.doe",
    "ReputationLevel": "Trusted",
    "UserSince": "2024-01-15 10:30:00",
    "FirstName": "John",
    "LastName": "Doe",
    "CompanyName": "",
    "Website": "",
    "Street": "",
    "Street2": "",
    "City": "",
    "State": "",
    "Zip": "",
    "Country": "",
    "VAT": "",
    "Phone": "",
    "PhoneVerified": 0,
    "Fax": "",
    "TimeZone": "America/New_York",
    "LastActivityDateTime": "2024-12-28 10:00:00",
    "AccountStatus": "Enabled",
    "AvailableCredits": 1000,
    "2FA_Enabled": "No",
    "2FA_RecoveryKey": "",
    "SSOID": "",
    "GroupInfo": {
      "UserGroupID": 1,
      "GroupName": "Standard Users",
      "GroupPlanName": "Standard Plan",
      "DefaultSenderDomain": "example.com"
    },
    "MFA_QRCode": "otpauth://totp/...",
    "MFA_SecretKey": "ABCDEF123456",
    "SubscriptionID": false
  },
  "Usage": {
    "EmailGateway_TotalSentThisMonth": 500,
    "EmailGateway_TotalSentAllTime": 5000,
    "Limit_Monthly": 10000,
    "Limit_Lifetime": 100000
  },
  "SendRateLimits": {
    "EmailGateway": {
      "RateLimits": {},
      "SendRates": {}
    },
    "DefaultSenderDomain": {
      "MonthlyLimit": 5000,
      "SendRates": 500,
      "RemainingMonthlyQuota": 4500
    }
  }
}
json
{
  "Success": false,
  "ErrorCode": [1]
}
txt
0: Success
1: Authentication required

Get User Information

POST /api.php

API Usage Notes

  • Authentication required: Admin API Key
  • Legacy endpoint access via /api.php only (no v1 REST alias configured)

Request Body Parameters:

ParameterTypeRequiredDescription
CommandStringYesAPI command: user.get
SessionIDStringNoSession ID obtained from login
APIKeyStringNoAPI key for authentication
UserIDIntegerConditionalUser ID (required if EmailAddress not provided)
EmailAddressStringConditionalEmail address (required if UserID not provided)
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "user.get",
    "SessionID": "your-session-id",
    "UserID": 123
  }'
json
{
  "Success": true,
  "ErrorCode": 0,
  "UserInformation": {
    "UserID": 123,
    "RelUserGroupID": 1,
    "EmailAddress": "user@example.com",
    "Username": "john.doe",
    "FirstName": "John",
    "LastName": "Doe",
    "GroupInformation": {}
  },
  "LimitUtilization": {
    "Subscribers": {"Used": 100, "Limit": 1000},
    "Lists": {"Used": 5, "Limit": 10}
  }
}
json
{
  "Success": false,
  "ErrorCode": [1]
}
txt
0: Success
1: Missing UserID or EmailAddress parameter
3: User not found

Update User

POST /api.php

API Usage Notes

  • Authentication required: Admin API Key or User API Key
  • Required permissions: User.Update
  • Legacy endpoint access via /api.php only (no v1 REST alias configured)

Request Body Parameters:

ParameterTypeRequiredDescription
CommandStringYesAPI command: user.update
SessionIDStringNoSession ID obtained from login
APIKeyStringNoAPI key for authentication
UserIDIntegerYesUser ID to update
EmailAddressStringNoNew email address
UsernameStringNoNew username
PasswordStringNoNew password (will be hashed)
FirstNameStringNoFirst name
LastNameStringNoLast name
CompanyNameStringNoCompany name
WebsiteStringNoWebsite URL
OtherEmailAddressesStringNoAdditional email addresses
StreetStringNoStreet address
Street2StringNoStreet address line 2
CityStringNoCity
StateStringNoState/Province
ZipStringNoZIP/Postal code
CountryStringNoCountry
VATStringNoVAT number
PhoneStringNoPhone number
PhoneVerifiedBooleanNoPhone verification status
FaxStringNoFax number
TimeZoneStringNoTimezone
LanguageStringNoLanguage code
AccountStatusStringNoAccount status (admin only)
AvailableCreditsIntegerNoAvailable credits (admin only)
RelUserGroupIDIntegerNoUser group ID (admin only)
ReputationLevelStringNoReputation level (admin only)
RateLimitsStringNoJSON string of rate limits
CustomEmailHeadersStringNoCustom email headers
WhiteListedEmailAddressesStringNoWhitelisted email addresses
Enable2FAStringNoSet to 'true' to enable 2FA
2FACodeStringConditional2FA code (required when enabling 2FA)
Cancel2FAStringNoSet to 'true' to disable 2FA
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "user.update",
    "SessionID": "your-session-id",
    "UserID": 123,
    "FirstName": "Jane",
    "LastName": "Smith"
  }'
json
{
  "Success": true,
  "ErrorCode": 0,
  "ErrorText": ""
}
json
{
  "Success": false,
  "ErrorCode": 2
}
txt
0: Success
1: Missing UserID parameter
2: User can only update their own account
3: PreviewMyEmail connection error
4: Invalid 2FA code
5: User not found
6: Email address or username already exists

Get Monthly User Snapshot

POST /api.php

API Usage Notes

  • Authentication required: Admin API Key or User API Key
  • Legacy endpoint access via /api.php only (no v1 REST alias configured)

Request Body Parameters:

ParameterTypeRequiredDescription
CommandStringYesAPI command: user.snapshot
SessionIDStringNoSession ID obtained from login
APIKeyStringNoAPI key for authentication
UserIDIntegerConditionalUser ID (required if not logged in and EmailAddress not provided)
EmailAddressStringConditionalEmail address (alternative to UserID)
MonthStringYesMonth in YYYY-MM format (e.g., '2024-12')
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "user.snapshot",
    "SessionID": "your-session-id",
    "Month": "2024-12"
  }'
json
{
  "Success": true,
  "ErrorCode": 0,
  "CampaignsSent": 15,
  "EmailsSent": 5000,
  "Subscribers": 1500,
  "Lists": 8
}
json
{
  "Success": false,
  "ErrorCode": [3]
}
txt
0: Success
1: Missing EmailAddress parameter
2: Missing UserID parameter
3: Missing Month parameter
4: Invalid month format
5: User not found

Get User Statistics

POST /api/v1/user.stats

API Usage Notes

  • Authentication required: User API Key
  • Rate limit: 100 requests per 60 seconds
  • Legacy endpoint access via /api.php is also supported

Request Body Parameters:

ParameterTypeRequiredDescription
CommandStringYesAPI command: user.stats
SessionIDStringNoSession ID obtained from login
APIKeyStringNoAPI key for authentication
StartDateStringYesStart date in YYYY-MM-DD format
EndDateStringYesEnd date in YYYY-MM-DD format
AggregationStringYesAggregation type: 'daily', 'weekly', or 'monthly'
bash
curl -X POST https://example.com/api/v1/user.stats \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "user.stats",
    "SessionID": "your-session-id",
    "StartDate": "2024-01-01",
    "EndDate": "2024-12-31",
    "Aggregation": "monthly"
  }'
json
{
  "TotalCampaigns": 150,
  "TotalEmails": 50000,
  "Stats": {
    "2024-01": {
      "Campaigns": 10,
      "Emails": 3000
    }
  }
}
json
{
  "Errors": [
    {"Code": 1, "Message": "Missing StartDate parameter"}
  ]
}
txt
1: Missing StartDate parameter
2: Missing EndDate parameter
3: Missing Aggregation parameter
4: Invalid Aggregation value (must be 'daily', 'weekly', or 'monthly')
6: Statistics retrieval error

Switch to User Account

POST /api.php

API Usage Notes

  • Authentication required: Admin API Key
  • Legacy endpoint access via /api.php only (no v1 REST alias configured)

Request Body Parameters:

ParameterTypeRequiredDescription
CommandStringYesAPI command: user.switch
SessionIDStringNoSession ID obtained from login
APIKeyStringNoAPI key for authentication
UserIDIntegerYesUser ID to switch to
PrivilegeTypeStringNoPrivilege type: 'Default' or 'Full' (default: 'Default')
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "user.switch",
    "SessionID": "your-admin-session-id",
    "UserID": 123,
    "PrivilegeType": "Full"
  }'
json
{
  "Success": true,
  "ErrorCode": 0,
  "ErrorText": "",
  "SessionID": "new-session-id",
  "UserInfo": {
    "UserID": 123,
    "Username": "john.doe"
  }
}
json
{
  "Success": false,
  "ErrorCode": [1]
}
txt
0: Success
1: Missing UserID parameter
2: User not found
3: Invalid privilege type (must be 'Default' or 'Full')

Send Password Reminder

POST /api.php

API Usage Notes

  • Authentication required: Admin API Key
  • Legacy endpoint access via /api.php only (no v1 REST alias configured)

Request Body Parameters:

ParameterTypeRequiredDescription
CommandStringYesAPI command: user.passwordremind
SessionIDStringNoSession ID obtained from login
APIKeyStringNoAPI key for authentication
EmailAddressStringYesUser's email address
CustomResetLinkStringNoBase64 encoded custom reset link template
ReturnParamsBooleanNoSet to true to return reset token and link
AdminAPIKeyStringNoAdmin API key for custom email settings
ResetEmailSubjectStringNoCustom email subject (requires AdminAPIKey)
ResetEmailContentStringNoCustom email content (requires AdminAPIKey)
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "user.passwordremind",
    "SessionID": "your-session-id",
    "EmailAddress": "user@example.com"
  }'
json
{
  "Success": true,
  "ErrorCode": 0,
  "ErrorText": "",
  "PasswordResetToken": "",
  "PasswordResetLink": ""
}
json
{
  "Success": false,
  "ErrorCode": [1]
}
txt
0: Success
1: Missing EmailAddress parameter
2: Invalid email address format
3: Email address not found (Note: For security, this returns success even if not found)

Reset User Password

POST /api.php

API Usage Notes

  • Authentication required: Admin API Key
  • Legacy endpoint access via /api.php only (no v1 REST alias configured)

Request Body Parameters:

ParameterTypeRequiredDescription
CommandStringYesAPI command: user.passwordreset
SessionIDStringNoSession ID obtained from login
APIKeyStringNoAPI key for authentication
UserIDStringYesPassword reset token (from passwordremind)
AdminAPIKeyStringNoAdmin API key for custom password
NewPasswordStringNoCustom new password (requires AdminAPIKey)
DontSendNewPasswordEmailStringNoSet to 'true' to skip email (requires AdminAPIKey)
ShowPasswordBooleanNoSet to true to include password in email
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "user.passwordreset",
    "UserID": "reset-token-here"
  }'
json
{
  "Success": true,
  "ErrorCode": 0,
  "ErrorText": "",
  "WoocommerceUserId": false
}
json
{
  "Success": false,
  "ErrorCode": [2]
}
txt
0: Success
1: Missing UserID parameter
2: Invalid reset token or user not found

Create API Key

POST /api/v1/user.apikey

API Usage Notes

  • Authentication required: User API Key
  • Required permissions: User.Update
  • Rate limit: 100 requests per 60 seconds
  • Legacy endpoint access via /api.php is also supported

Request Body Parameters:

ParameterTypeRequiredDescription
CommandStringYesAPI command: user.apikey.create
SessionIDStringNoSession ID obtained from login
APIKeyStringNoAPI key for authentication
NoteStringYesAdministrative note for the API key
BoundIPAddressStringNoIP address to bind the key to
bash
curl -X POST https://example.com/api/v1/user.apikey \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "user.apikey.create",
    "SessionID": "your-session-id",
    "Note": "Production API key"
  }'
json
{
  "APIKeyID": 5,
  "APIKey": {
    "APIKey": "1234-5678-9abc-def0",
    "Note": "Production API key",
    "BoundIPAddress": "",
    "CreatedAt": "2024-12-28 10:00:00"
  }
}
json
{
  "Errors": [
    {"Code": 1, "Message": "Missing administrative note parameter"}
  ]
}
txt
1: Missing administrative note parameter
3: API key create process failed
4: New API key create process has failed

Delete API Key

POST /api/v1/user.apikey.delete

API Usage Notes

  • Authentication required: User API Key
  • Required permissions: User.Update
  • Rate limit: 100 requests per 60 seconds
  • Legacy endpoint access via /api.php is also supported

Request Body Parameters:

ParameterTypeRequiredDescription
CommandStringYesAPI command: user.apikey.delete
SessionIDStringNoSession ID obtained from login
APIKeyStringNoAPI key for authentication
APIKeyIDIntegerYesAPI key ID to delete
bash
curl -X POST https://example.com/api/v1/user.apikey.delete \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "user.apikey.delete",
    "SessionID": "your-session-id",
    "APIKeyID": 5
  }'
json
{
  "Success": true
}
json
{
  "Errors": [
    {"Code": 1, "Message": "Missing APIKeyID parameter"}
  ]
}
txt
1: Missing APIKeyID parameter
2: API key not found

List API Keys

GET /api/v1/user.apikeys

API Usage Notes

  • Authentication required: User API Key
  • Required permissions: User.Update
  • Rate limit: 100 requests per 60 seconds
  • Legacy endpoint access via /api.php is also supported

Request Body Parameters:

ParameterTypeRequiredDescription
CommandStringYesAPI command: user.apikey.list
SessionIDStringNoSession ID obtained from login
APIKeyStringNoAPI key for authentication
bash
curl -X GET https://example.com/api/v1/user.apikeys \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "user.apikey.list",
    "SessionID": "your-session-id"
  }'
json
{
  "Success": true,
  "APIKeys": [
    {
      "APIKeyID": 1,
      "APIKey": "1234-5678-9abc-def0",
      "Note": "Production API key",
      "BoundIPAddress": ""
    }
  ]
}
json
{
  "Errors": []
}
txt
No specific error codes for this endpoint

Get Users List

POST /api.php

API Usage Notes

  • Authentication required: Admin API Key
  • Legacy endpoint access via /api.php only (no v1 REST alias configured)

Request Body Parameters:

ParameterTypeRequiredDescription
CommandStringYesAPI command: users.get
SessionIDStringNoSession ID obtained from login
APIKeyStringNoAPI key for authentication
RecordsPerRequestIntegerNoNumber of records per page (default: 25)
RecordsFromIntegerNoStarting record offset (default: 0)
OrderFieldStringNoField to order by
OrderTypeStringNoOrder direction: 'ASC' or 'DESC'
RelUserGroupIDMixedNoUser group ID, array of IDs, or special value ('Online', 'Enabled', 'Disabled', 'Trusted', 'Untrusted')
RelUserCategoryIDIntegerNoUser category ID (-1 for uncategorized)
SearchFieldStringNoField to search in
SearchKeywordStringNoSearch keyword
ReturnStatsBooleanNoSet to true to include statistics
IncludeLimitUtilizationBooleanNoSet to true to include limit utilization data
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "users.get",
    "SessionID": "your-session-id",
    "RecordsPerRequest": 25,
    "RecordsFrom": 0,
    "OrderField": "UserID",
    "OrderType": "DESC"
  }'
json
{
  "Success": true,
  "ErrorCode": 0,
  "Users": [
    {
      "UserID": 123,
      "Username": "john.doe",
      "EmailAddress": "john@example.com",
      "GroupInformation": {}
    }
  ],
  "TotalUsers": 150
}
json
{
  "Success": false,
  "ErrorCode": 0
}
txt
0: Success

Delete Users

POST /api.php

API Usage Notes

  • Authentication required: Admin API Key
  • Legacy endpoint access via /api.php only (no v1 REST alias configured)
  • Note: Not available in demo mode

Request Body Parameters:

ParameterTypeRequiredDescription
CommandStringYesAPI command: users.delete
SessionIDStringNoSession ID obtained from login
APIKeyStringNoAPI key for authentication
UsersStringYesComma-separated list of user IDs to delete
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "users.delete",
    "SessionID": "your-session-id",
    "Users": "123,124,125"
  }'
json
{
  "Success": true,
  "ErrorCode": 0,
  "ErrorText": ""
}
json
{
  "Success": false,
  "ErrorCode": [1]
}
txt
0: Success
1: Missing Users parameter

Get Users Status

GET /api/v1/users.status

API Usage Notes

  • Authentication required: Admin API Key
  • Rate limit: 100 requests per 60 seconds
  • Legacy endpoint access via /api.php is also supported

Request Body Parameters:

ParameterTypeRequiredDescription
CommandStringYesAPI command: users.status
SessionIDStringNoSession ID obtained from login
APIKeyStringNoAPI key for authentication
DurationIntegerNoNumber of days to look back (1-90, default: 30)
bash
curl -X GET https://example.com/api/v1/users.status \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "users.status",
    "SessionID": "your-session-id",
    "Duration": 30
  }'
json
{
  "Success": true,
  "Users": [
    {
      "UserID": 123,
      "Status": "active",
      "LastActivity": "2024-12-28 10:00:00"
    }
  ],
  "Summary": {
    "ActiveUsers": 50,
    "IdleUsers": 10
  }
}
json
{
  "Success": false,
  "ErrorCode": 1,
  "ErrorText": "Failed to retrieve users status"
}
txt
0: Success
1: Failed to retrieve users status

Create User Group

POST /api.php

API Usage Notes

  • Authentication required: Admin API Key
  • Legacy endpoint access via /api.php only (no v1 REST alias configured)

Request Body Parameters:

ParameterTypeRequiredDescription
CommandStringYesAPI command: usergroup.create
SessionIDStringNoSession ID obtained from login
APIKeyStringNoAPI key for authentication
GroupNameStringYesName of the user group
SubscriberAreaLogoutURLStringYesSubscriber area logout URL
LimitSubscribersIntegerYesMaximum number of subscribers
LimitListsIntegerYesMaximum number of lists
LimitCampaignSendPerPeriodIntegerYesCampaign send limit per period
LimitEmailSendPerPeriodIntegerYesEmail send limit per period
LimitEmailSendPerDayIntegerYesEmail send limit per day
RelThemeIDIntegerYesTheme ID
ForceUnsubscriptionLinkStringYes'Enabled' or 'Disabled'
ForceRejectOptLinkStringYes'Enabled' or 'Disabled'
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "usergroup.create",
    "SessionID": "your-session-id",
    "GroupName": "Premium Users",
    "SubscriberAreaLogoutURL": "https://example.com/logout",
    "LimitSubscribers": 10000,
    "LimitLists": 50,
    "LimitCampaignSendPerPeriod": 100,
    "LimitEmailSendPerPeriod": 50000,
    "LimitEmailSendPerDay": 5000,
    "RelThemeID": 1,
    "ForceUnsubscriptionLink": "Enabled",
    "ForceRejectOptLink": "Enabled"
  }'
json
{
  "Success": true,
  "ErrorCode": 0,
  "UserGroupID": 5
}
json
{
  "Success": false,
  "ErrorCode": [1]
}
txt
0: Success
1: Missing GroupName parameter
2: Missing SubscriberAreaLogoutURL parameter
5: Missing LimitSubscribers parameter
6: Missing LimitLists parameter
7: Missing LimitCampaignSendPerPeriod parameter
8: Missing RelThemeID parameter
17: Missing ForceUnsubscriptionLink parameter
18: Missing ForceRejectOptLink parameter
19: Invalid theme ID
20: Missing LimitEmailSendPerPeriod parameter
22: Invalid send method
23: Invalid SMTP secure setting
24: Invalid SMTP auth setting
25: Email settings test failed

Update User Group

POST /api.php

API Usage Notes

  • Authentication required: Admin API Key
  • Legacy endpoint access via /api.php only (no v1 REST alias configured)

Request Body Parameters:

ParameterTypeRequiredDescription
CommandStringYesAPI command: usergroup.update
SessionIDStringNoSession ID obtained from login
APIKeyStringNoAPI key for authentication
UserGroupIDIntegerYesUser group ID to update
GroupNameStringYesName of the user group
SubscriberAreaLogoutURLStringYesSubscriber area logout URL
LimitSubscribersIntegerYesMaximum number of subscribers
LimitListsIntegerYesMaximum number of lists
LimitCampaignSendPerPeriodIntegerYesCampaign send limit per period
LimitEmailSendPerPeriodIntegerYesEmail send limit per period
LimitEmailSendPerDayIntegerYesEmail send limit per day
RelThemeIDIntegerYesTheme ID
ForceUnsubscriptionLinkStringYes'Enabled' or 'Disabled'
ForceRejectOptLinkStringYes'Enabled' or 'Disabled'
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "usergroup.update",
    "SessionID": "your-session-id",
    "UserGroupID": 5,
    "GroupName": "Premium Plus Users",
    "SubscriberAreaLogoutURL": "https://example.com/logout",
    "LimitSubscribers": 20000,
    "LimitLists": 100,
    "LimitCampaignSendPerPeriod": 200,
    "LimitEmailSendPerPeriod": 100000,
    "LimitEmailSendPerDay": 10000,
    "RelThemeID": 1,
    "ForceUnsubscriptionLink": "Enabled",
    "ForceRejectOptLink": "Enabled"
  }'
json
{
  "Success": true,
  "ErrorCode": 0
}
json
{
  "Success": false,
  "ErrorCode": [20]
}
txt
0: Success
1: Missing GroupName parameter
2: Missing SubscriberAreaLogoutURL parameter
5: Missing LimitSubscribers parameter
6: Missing LimitLists parameter
7: Missing LimitCampaignSendPerPeriod parameter
8: Missing RelThemeID parameter
17: Missing ForceUnsubscriptionLink parameter
18: Missing ForceRejectOptLink parameter
19: Invalid theme ID
20: Missing UserGroupID parameter
21: User group not found
22: Invalid send method
23: Invalid SMTP secure setting
24: Invalid SMTP auth setting
25: Email settings test failed

Get User Group

POST /api.php

API Usage Notes

  • Authentication required: Admin API Key
  • Legacy endpoint access via /api.php only (no v1 REST alias configured)

Request Body Parameters:

ParameterTypeRequiredDescription
CommandStringYesAPI command: usergroup.get
SessionIDStringNoSession ID obtained from login
APIKeyStringNoAPI key for authentication
UserGroupIDIntegerYesUser group ID to retrieve
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "usergroup.get",
    "SessionID": "your-session-id",
    "UserGroupID": 5
  }'
json
{
  "Success": true,
  "ErrorCode": 0,
  "UserGroup": {
    "UserGroupID": 5,
    "GroupName": "Premium Users",
    "LimitSubscribers": 10000,
    "LimitLists": 50
  }
}
json
{
  "Success": false,
  "ErrorCode": [1]
}
txt
0: Success
1: Missing UserGroupID parameter
2: User group not found

Delete User Group

POST /api.php

API Usage Notes

  • Authentication required: Admin API Key
  • Legacy endpoint access via /api.php only (no v1 REST alias configured)
  • Note: Not available in demo mode

Request Body Parameters:

ParameterTypeRequiredDescription
CommandStringYesAPI command: usergroup.delete
SessionIDStringNoSession ID obtained from login
APIKeyStringNoAPI key for authentication
UserGroupIDStringYesComma-separated list of user group IDs to delete
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "usergroup.delete",
    "SessionID": "your-session-id",
    "UserGroupID": "5,6,7"
  }'
json
{
  "Success": true,
  "ErrorCode": 0
}
json
{
  "Success": false,
  "ErrorCode": [1]
}
txt
0: Success
1: Missing UserGroupID parameter
4: Cannot delete the last user group

Duplicate User Group

POST /api.php

API Usage Notes

  • Authentication required: Admin API Key
  • Legacy endpoint access via /api.php only (no v1 REST alias configured)

Request Body Parameters:

ParameterTypeRequiredDescription
CommandStringYesAPI command: usergroup.duplicate
SessionIDStringNoSession ID obtained from login
APIKeyStringNoAPI key for authentication
UserGroupIDIntegerYesUser group ID to duplicate
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "usergroup.duplicate",
    "SessionID": "your-session-id",
    "UserGroupID": 5
  }'
json
{
  "Success": true,
  "ErrorCode": 0,
  "UserGroupID": 8
}
json
{
  "Success": false,
  "ErrorCode": [2]
}
txt
0: Success
1: Missing UserGroupID parameter
2: User group not found

Get All User Groups

POST /api.php

API Usage Notes

  • Authentication required: Admin API Key
  • Legacy endpoint access via /api.php only (no v1 REST alias configured)

Request Body Parameters:

ParameterTypeRequiredDescription
CommandStringYesAPI command: usergroups.get
SessionIDStringNoSession ID obtained from login
APIKeyStringNoAPI key for authentication
bash
curl -X POST https://example.com/api.php \
  -H "Content-Type: application/json" \
  -d '{
    "Command": "usergroups.get",
    "SessionID": "your-session-id"
  }'
json
{
  "Success": true,
  "ErrorCode": 0,
  "UserGroups": [
    {
      "UserGroupID": 1,
      "GroupName": "Standard Users",
      "LimitSubscribers": 1000
    },
    {
      "UserGroupID": 2,
      "GroupName": "Premium Users",
      "LimitSubscribers": 10000
    }
  ]
}
json
{
  "Success": false,
  "ErrorCode": 0
}
txt
0: Success

Add Credits (DEPRECATED)

DEPRECATED

This endpoint is deprecated and will be removed in a future version. There is no replacement endpoint.

POST /api.php

API Usage Notes

  • Authentication required: Admin API Key
  • Legacy endpoint access via /api.php only (no v1 REST alias configured)
  • Status: DEPRECATED - No replacement available

Order Payment (DEPRECATED)

DEPRECATED

This endpoint is deprecated and will be removed in a future version. There is no replacement endpoint.

POST /api.php

API Usage Notes

  • Authentication required: Admin API Key
  • Legacy endpoint access via /api.php only (no v1 REST alias configured)
  • Status: DEPRECATED - No replacement available

Get Payment Periods (DEPRECATED)

DEPRECATED

This endpoint is deprecated and will be removed in a future version. There is no replacement endpoint.

POST /api.php

API Usage Notes

  • Authentication required: Admin API Key
  • Legacy endpoint access via /api.php only (no v1 REST alias configured)
  • Status: DEPRECATED - No replacement available

Update Payment Periods (DEPRECATED)

DEPRECATED

This endpoint is deprecated and will be removed in a future version. There is no replacement endpoint.

POST /api.php

API Usage Notes

  • Authentication required: Admin API Key
  • Legacy endpoint access via /api.php only (no v1 REST alias configured)
  • Status: DEPRECATED - No replacement available

Change Subscription Payment (DEPRECATED)

DEPRECATED

This endpoint is deprecated and will be removed in a future version. There is no replacement endpoint.

POST /api.php

API Usage Notes

  • Authentication required: Admin API Key
  • Legacy endpoint access via /api.php only (no v1 REST alias configured)
  • Status: DEPRECATED - No replacement available

Upgrade Subscription (DEPRECATED)

DEPRECATED

This endpoint is deprecated and will be removed in a future version. There is no replacement endpoint.

POST /api.php

API Usage Notes

  • Authentication required: Admin API Key
  • Legacy endpoint access via /api.php only (no v1 REST alias configured)
  • Status: DEPRECATED - No replacement available

Any questions? Contact us.