Users API endpoints
Endpoint reference for the Users tag (27 endpoints): User management, preferences, and system users
User management, preferences, and system users. 27 endpoints, generated from the OpenAPI spec. Authentication, the response envelope, pagination and error codes are shared by all endpoints — see REST API overview. Parameters marked form go in an application/x-www-form-urlencoded request body.
GET /rest-api/aclrole/list.do
Get ACL role list.
No parameters beyond authentication.
Responses: 200 — JSON array of role objects, e.g. [{id: 1, name: ‘publisher’}, …]. Errors follow the shared conventions.
GET /rest-api/action-log/mine.do
List my own action-log entries.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
from | query | string | no | Only entries logged at or after this moment, ISO-8601 (e.g. 2026-10-05T08:00:00Z). Default: 24 hours ago |
start | query | integer | no | Skip this many entries (zero-based position in the newest-first list). Default 0 |
limit | query | integer | no | How many entries to return, 1-1000. Default 100 |
Responses: 200 — {success, entries:[{at, via, action, pathIds, details}], returned, more}. Errors follow the shared conventions.
POST /rest-api/additional-entity-fields-configuration/delete.do
Delete additional entity field.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | form | integer | no | Unique numeric identifier of the additional entity field to delete. If null or not found, the operation succeeds silently. |
Responses: 200 — JSON with ‘success: true’ indicating the field was deleted or did not exist. Errors follow the shared conventions.
POST /rest-api/additional-entity-fields-configuration/edit.do
Create or edit additional entity field.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | form | integer | no | ID of the field configuration to edit — omit to create a new one |
entityType | form | string | no | Entity type this field applies to (BANNER, CAMPAIGN, PLACEMENT, SITE, ZONE, ADVERTISER) Values: SITE, ZONE, PLACEMENT, ADVERTISER, CAMPAIGN, BANNER. |
name | form | string | no | Machine-readable field name (e.g., ‘custom_field_1’) |
title | form | string | no | Human-readable field title displayed in the UI |
Responses: 200 — JSON with ‘success: true’ and the saved field object, or validation errors if input is invalid · 404 — No field with the id sent. Errors follow the shared conventions.
GET /rest-api/additional-entity-fields-configuration/list.do
List additional entity fields.
No parameters beyond authentication.
Responses: 200 — SearchResult containing the list of AdditionalEntityField objects in ‘data’ and total count in ‘total’. Errors follow the shared conventions.
GET /rest-api/adunit/list.do
Get ad unit list.
No parameters beyond authentication.
Responses: 200 — JSON array of ad unit objects, e.g. [{id, height, width, name, custom}, …]. Errors follow the shared conventions.
GET /rest-api/blocked/entities.do
List blocked entities.
No parameters beyond authentication.
Responses: 200 — JSON array of blocked entity target objects with associated entity details. Errors follow the shared conventions.
POST /rest-api/forgot.do
Request password reset.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
email | form | string | no | Email address associated with the account |
Responses: 200 — Successful operation. Errors follow the shared conventions.
GET /rest-api/notification-settings.do
Read your notification settings.
No parameters beyond authentication.
Responses: 200 — {receiveNotificationsByEmail, templates:[{id, title, subscribed}], recipients:[e-mail]}. Errors follow the shared conventions.
POST /rest-api/notification-settings/recipients.do
Add a notification recipient.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
email | form | string | no | E-mail address to add |
Responses: 200 — The settings after the change, in the shape of the GET. Errors follow the shared conventions.
DELETE /rest-api/notification-settings/recipients.do
Remove a notification recipient.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
email | form | string | yes | The address to remove |
Responses: 200 — The settings after the change, in the shape of the GET · 404 — The address is not on the list. Errors follow the shared conventions.
POST /rest-api/notification-settings/subscriptions.do
Set your notification subscriptions.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
templateIds | form | array<string> | yes | Ids of the notification events to subscribe to, comma-separated or repeated; empty to unsubscribe from all |
Responses: 200 — The settings after the change, in the shape of the GET. Errors follow the shared conventions.
GET /rest-api/referral/getBilling.do
Get referral billing.
No parameters beyond authentication.
Responses: 200 — SearchResult containing ‘data’ array of ReferralProgramBilling objects and ‘total’ count. Errors follow the shared conventions.
POST /rest-api/register-user/{key}/{hash}/{timestamp}.do
Register a new user.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
key | path | string | yes | The network’s public key, as set in its white-label settings. |
role | form | string | no | User role type (ADMIN, ADVERTISER, PUBLISHER, NETWORK) Values: ADMIN, PUBLISHER, ADVERTISER, ADVERTISER_STATISTICS_ACCOUNT, PUBLISHER_STATISTICS_ACCOUNT, NETWORK, CONTACT_US. |
aclRole | form | integer | no | ACL role defining user permissions — ID of the acl role |
accountUIStyle | form | string | no | UI layout style preference (TREES, GRIDS) Values: TREES, GRIDS. |
active | form | boolean | no | Whether the user account is active |
additionalRecipients | form | string | no | Comma-separated list of additional notification email recipients |
additionalRecipientsPresent | form | boolean | no | Whether additional email recipients are configured for notifications |
adsHost | form | string | no | Custom ad serving domain for this user |
advancedAnalyticsView | form | string | no | Advanced analytics view mode (SIMPLE, EXTENDED, UNIQUE) Values: SIMPLE, EXTENDED, UNIQUE. |
campaignSetupMasked | form | boolean | no | Mask campaign setup details in the UI |
comments | form | string | no | Internal notes and comments about the user |
compactMode | form | boolean | no | Compact UI density preference; null means the client keeps its own default |
company | form | string | no | Company name |
country | form | string | no | Two-letter country code (ISO 3166-1 alpha-2) |
darkTheme | form | boolean | no | Dark color theme preference; null means the client keeps its own default |
email | form | string | no | User email address (must be unique) |
firstName | form | string | no | First name |
hideReferralDetails | form | boolean | no | Hide referral details from the user’s dashboard |
lastName | form | string | no | User’s last (family) name |
locale | form | string | no | User preferred UI locale/language (BCP-47 tag); when empty, the network’s default language applies, then English |
owner | form | integer | no | Parent/owner user (for sub-accounts) — ID of the user |
password | form | string | no | User password (8-64 characters) |
paymentsAccountData | form | string | no | Payment account data (bank/PayPal details as JSON) |
permissions | form | array<string> | no | User-level permission overrides Values: DSP_PARTNERS_ANALYTICS, USERS_MANAGEMENT, EMAIL_TEMPLATES_MANAGEMENT, FRAUD_PROTECTION_MANAGEMENT, PREFERENCES, NOTIFICATION_MANAGEMENT, WHITE_LABEL, ADVERTISING_CATEGORIES_MANAGEMENT, PUBLISHER_CATEGORIES_MANAGEMENT, CUSTOM_COUNTRY_GROUPS_MANAGEMENT, LABELS_MANAGEMENT, EMAIL_UNSUBSCRIBE_LIST_MANAGEMENT, TEMPLATE_MANAGEMENT, VPAID_FRAMEWORK_MANAGEMENT, TEST_PAGES_MANAGEMENT, ACTION_LOG, TROUBLESHOOTING_LOG_TASK_MANAGEMENT, ADMIN_PERMISSIONS_ROLE_MANAGEMENT, USER_PERMISSIONS_ROLE_MANAGEMENT, CUSTOM_SIZES_MANAGEMENT, CREATE_ADMIN_BASED_ROLE, REFERRAL_PROGRAM_BILLING, MULTI_COOKIE_SETTINGS, MANUAL_ANALYTICS_DATA_PROCESSING, MANUAL_ANALYTICS_COUNTRY_RATES … (+21 more, 46 total). |
phone | form | string | no | Phone number |
publisherCategories | form | string | no | Publisher category IDs (transient, comma-separated) |
receiveNewsletter | form | boolean | no | Opt in to receive newsletter emails |
receiveNotificationsByEmail | form | boolean | no | Receive system notifications by email |
referer | form | string | no | Referrer URL that brought the user to sign up |
referralId | form | integer | no | Referral user ID if this user was referred by another user |
referralShareEnabled | form | boolean | no | Whether referral revenue sharing is enabled for this user |
referredClientStatus | form | string | no | Referred client status tracking the referral lifecycle Values: UNDER_REVIEW, APPROVED, ACTIVE, INACTIVE. |
state | form | string | no | State or province |
tracking.campaign | form | string | no | Campaign tracking parameter (UTM campaign name) |
tracking.page | form | string | no | Landing page tracking parameter |
tracking.term | form | string | no | Search term tracking parameter (UTM term) |
userTemplates | form | array<integer> | no | Notification email templates assigned to this user — IDs of the notification template entities, comma-separated or as repeated parameters |
username | form | string | no | Login username (must be unique) |
websiteUrl | form | string | no | Website URL |
confirmPassword | form | string | no | Password confirmation. Must match the ‘password’ field exactly; otherwise a validation error is returned. |
Note: the
{hash}and{timestamp}segments carry path-based hash authentication — see REST API overview.
Responses: 200 — User registered successfully (includes ‘result’ message) or validation errors returned in ‘errors’ map · 404 — Not found — resource does not exist. Errors follow the shared conventions.
POST /rest-api/resetPasswordExec.do
Execute password reset.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
token | form | string | yes | Single-use token from the password reset email link. |
newPass | form | string | yes | The new password to set for the user account. |
Responses: 200 — Successful operation. Errors follow the shared conventions.
GET /rest-api/system-users.do
Get system users.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
roles | query | string | no | Comma-separated list of ACL role IDs (e.g., ‘1,2’) or role names (e.g., ‘publisher,advertiser’) to filter the results. If omitted, all system users are returned. |
Responses: 200 — JSON array of system user objects with user details. Errors follow the shared conventions.
POST /rest-api/system-users/create-and-share.do
Create a user and share advertisers or sites with them.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
email | form | string | yes | E-mail address, unused so far; the invitation goes here |
login | form | string | yes | Username the new account signs in with, unused so far, up to 64 characters |
role | form | string | yes | Role id or name (case-insensitive). Must be a role your role may create users in; never an administrator role. |
advertiserIds | form | array<integer> | no | Advertisers to share with the new user |
firstName | form | string | no | Optional first name |
lastName | form | string | no | Optional last name |
shareType | form | string | no | Access the shares give: CAN_VIEW (default), CAN_EDIT or IS_OWNER Values: IS_OWNER, CAN_EDIT, CAN_VIEW. |
siteIds | form | array<integer> | no | Sites to share with the new user |
Responses: 200 — User created: {success, userId, username, email, roleId, role, active, shareType, advertiserIds, siteIds, invitationSentTo} · 404 — An advertiser or site does not exist, is deleted or is not visible to the caller. Errors follow the shared conventions.
GET /rest-api/system-users/search.do
Search system users.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
activeOnly | query | boolean | no | When true, only active (not deactivated) users are returned |
limit | query | integer | no | Page size, 1 to 500 |
query | query | string | no | Substring of the username, e-mail, first name or last name. Omit to list everyone visible. |
roles | query | string | no | Comma-separated role ids or role names (case-insensitive), e.g. ‘4,Publisher’. Omit for every visible role. |
start | query | integer | no | 0-based offset of the first user to return |
Responses: 200 — Page of users sorted by userId: {success, total, start, limit, users:[{userId, username, email, firstName, lastName, roleId, role, status, created, referer, referredUsers}]}. Errors follow the shared conventions.
POST /rest-api/user-preference/change-password.do
Change user password.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
confirmPassword | form | string | no | Confirmation of the new password (must match newPassword) |
currentPassword | form | string | no | The user’s current password for verification |
newPassword | form | string | no | The new password to set (must meet password policy requirements) |
Responses: 200 — Password changed successfully. Response: {success: true}. Errors follow the shared conventions.
GET /rest-api/user-preference/check-email.do
Check email uniqueness.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
email | query | string | yes | The email address to check for uniqueness. URL-encoded if it contains special characters. |
Responses: 200 — Email check result. Response: {success: true, exist: true/false}. Errors follow the shared conventions.
GET /rest-api/user-preference/get.do
Get user preferences.
No parameters beyond authentication.
Responses: 200 — User preferences returned in a ‘preference’ wrapper object. Errors follow the shared conventions.
POST /rest-api/user-preference/save.do
Save user preferences.
Request body (application/json, required): JSON object with fields accountUIStyle, aclRole, comments, company, country, email, firstName, lastName, password, phone, state, userId, username, websiteUrl.
Responses: 200 — User preferences saved successfully. Response includes the updated ‘preference’ object. Errors follow the shared conventions.
POST /rest-api/user-preference/update-profile.do
Update own profile.
Request body (application/json, required): JSON object with fields accountUIStyle, advancedAnalyticsView, compactMode, company, country, darkTheme, firstName, lastName, locale, phone, receiveNewsletter, receiveNotificationsByEmail, state, websiteUrl.
Responses: 200 — Profile saved. Errors follow the shared conventions.
POST /rest-api/user-sign-up/{key}/{hash}/{timestamp}.do
User sign-up.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
key | path | string | yes | The network’s public key, as set in its white-label settings. |
role | form | string | no | User role type (ADMIN, ADVERTISER, PUBLISHER, NETWORK) Values: ADMIN, PUBLISHER, ADVERTISER, ADVERTISER_STATISTICS_ACCOUNT, PUBLISHER_STATISTICS_ACCOUNT, NETWORK, CONTACT_US. |
aclRole | form | integer | no | ACL role defining user permissions — ID of the acl role |
accountUIStyle | form | string | no | UI layout style preference (TREES, GRIDS) Values: TREES, GRIDS. |
active | form | boolean | no | Whether the user account is active |
additionalRecipients | form | string | no | Comma-separated list of additional notification email recipients |
additionalRecipientsPresent | form | boolean | no | Whether additional email recipients are configured for notifications |
adsHost | form | string | no | Custom ad serving domain for this user |
advancedAnalyticsView | form | string | no | Advanced analytics view mode (SIMPLE, EXTENDED, UNIQUE) Values: SIMPLE, EXTENDED, UNIQUE. |
campaignSetupMasked | form | boolean | no | Mask campaign setup details in the UI |
comments | form | string | no | Internal notes and comments about the user |
compactMode | form | boolean | no | Compact UI density preference; null means the client keeps its own default |
company | form | string | no | Company name |
country | form | string | no | Two-letter country code (ISO 3166-1 alpha-2) |
darkTheme | form | boolean | no | Dark color theme preference; null means the client keeps its own default |
email | form | string | no | User email address (must be unique) |
firstName | form | string | no | First name |
hideReferralDetails | form | boolean | no | Hide referral details from the user’s dashboard |
lastName | form | string | no | User’s last (family) name |
locale | form | string | no | User preferred UI locale/language (BCP-47 tag); when empty, the network’s default language applies, then English |
owner | form | integer | no | Parent/owner user (for sub-accounts) — ID of the user |
password | form | string | no | User password (8-64 characters) |
paymentsAccountData | form | string | no | Payment account data (bank/PayPal details as JSON) |
permissions | form | array<string> | no | User-level permission overrides Values: DSP_PARTNERS_ANALYTICS, USERS_MANAGEMENT, EMAIL_TEMPLATES_MANAGEMENT, FRAUD_PROTECTION_MANAGEMENT, PREFERENCES, NOTIFICATION_MANAGEMENT, WHITE_LABEL, ADVERTISING_CATEGORIES_MANAGEMENT, PUBLISHER_CATEGORIES_MANAGEMENT, CUSTOM_COUNTRY_GROUPS_MANAGEMENT, LABELS_MANAGEMENT, EMAIL_UNSUBSCRIBE_LIST_MANAGEMENT, TEMPLATE_MANAGEMENT, VPAID_FRAMEWORK_MANAGEMENT, TEST_PAGES_MANAGEMENT, ACTION_LOG, TROUBLESHOOTING_LOG_TASK_MANAGEMENT, ADMIN_PERMISSIONS_ROLE_MANAGEMENT, USER_PERMISSIONS_ROLE_MANAGEMENT, CUSTOM_SIZES_MANAGEMENT, CREATE_ADMIN_BASED_ROLE, REFERRAL_PROGRAM_BILLING, MULTI_COOKIE_SETTINGS, MANUAL_ANALYTICS_DATA_PROCESSING, MANUAL_ANALYTICS_COUNTRY_RATES … (+21 more, 46 total). |
phone | form | string | no | Phone number |
publisherCategories | form | string | no | Publisher category IDs (transient, comma-separated) |
receiveNewsletter | form | boolean | no | Opt in to receive newsletter emails |
receiveNotificationsByEmail | form | boolean | no | Receive system notifications by email |
referer | form | string | no | Referrer URL that brought the user to sign up |
referralId | form | integer | no | Referral user ID if this user was referred by another user |
referralShareEnabled | form | boolean | no | Whether referral revenue sharing is enabled for this user |
referredClientStatus | form | string | no | Referred client status tracking the referral lifecycle Values: UNDER_REVIEW, APPROVED, ACTIVE, INACTIVE. |
state | form | string | no | State or province |
tracking.campaign | form | string | no | Campaign tracking parameter (UTM campaign name) |
tracking.page | form | string | no | Landing page tracking parameter |
tracking.term | form | string | no | Search term tracking parameter (UTM term) |
userTemplates | form | array<integer> | no | Notification email templates assigned to this user — IDs of the notification template entities, comma-separated or as repeated parameters |
username | form | string | no | Login username (must be unique) |
websiteUrl | form | string | no | Website URL |
Note: the
{hash}and{timestamp}segments carry path-based hash authentication — see REST API overview.
Responses: 200 — User signed up successfully (includes ‘result’ and ‘username’) or validation errors returned · 404 — Not found — resource does not exist. Errors follow the shared conventions.
POST /rest-api/user/update.do
Update user info.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
usernameToUpdate | form | string | yes | Username (login) of the target user whose profile should be updated. The user must exist in the system |
active | form | boolean | no | Whether the user account is active |
adsHost | form | string | no | Ad serving host domain |
aiChatMonthlyLimitUsd | form | string | no | The user’s monthly AI assistant budget in billed USD, 0 to 1000000. Send it empty to clear it, so the network default applies; leave it out to keep the current value. |
comments | form | string | no | Admin comments about the user |
company | form | string | no | Company name |
country | form | string | no | Two-letter country code (ISO 3166-1 alpha-2) |
email | form | string | no | User email address |
firstName | form | string | no | First name |
lastName | form | string | no | User’s last (family) name |
login | form | string | no | User login name (username) |
password | form | string | no | User password (8-64 characters) |
phone | form | string | no | Phone number |
receiveNewsletter | form | boolean | no | Whether the user receives newsletters |
receiveNotificationsByEmail | form | boolean | no | Whether the user receives notifications by email |
referer | form | string | no | Referrer URL or identifier |
role | form | integer | no | User role ID |
state | form | string | no | State or region name |
uiStyle | form | string | no | UI style preference Values: TREES, GRIDS. |
websiteUrl | form | string | no | Website URL |
Responses: 200 — Operation result with success status. Errors follow the shared conventions.
GET /rest-api/users/{username}/scheduledEvents.do
Get user scheduled events.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
username | path | string | yes | Login username of the user whose scheduled events should be retrieved — the caller’s own, or one whose role the caller’s admin role manages |
Responses: 200 — Scheduled events retrieved successfully · 404 — No such user, or the user is neither the caller nor an account the caller’s admin role manages. Errors follow the shared conventions.
POST /rest-api/users/{username}/scheduledEvents/{scheduledEventId}.do
Update user scheduled event.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
username | path | string | yes | Login username of the user who owns the scheduled event — the caller’s own, or one whose role the caller’s admin role manages |
scheduledEventId | path | integer | yes | Unique identifier of the scheduled event to update |
frequency | form | integer | no | Frequency of the event (0-200). Omitted on update keeps it |
period | form | integer | no | Period type: 1 = daily, 2 = weekly, 3 = monthly. Omitted on update keeps it |
startAt | form | integer | no | Start time offset in minutes from midnight. Omitted on update keeps it |
Responses: 200 — Scheduled event updated successfully · 404 — No such user, the user is neither the caller nor an account the caller’s admin role manages, or the user has no such scheduled event. Errors follow the shared conventions.
Related
- REST API overview — authentication and conventions
- API endpoint reference by tag
- Network services and miscellaneous APIs