CMS Tool API schema
Public API version 1.4.10.
Members / Customers
Members or customers or users are the same thing. These are anyone who has purchased, enquired, or who has permission to login, or receive newsletters. This excludes administrative users.
Endpoint URL
https://api.cms-tool.net/api/member
/api/member
Read and update member records.
GET
List records, or retrieve one by appending its ID to the path.
Query parameters
| Name | Type | Example | Notes |
|---|---|---|---|
id | int | 123 | Filter results by id. |
mbr_email | text | customer@example.com | Filter results by mbr email. |
keywords | text | example | Filter results by keywords. |
company | text | example | Filter results by company. |
updatedAfter | date | 2026-09-24T14:30:00+12:00 | Filter results by updated after. |
updatedBefore | date | 2026-09-24T14:30:00+12:00 | Filter results by updated before. |
includeMemberGroups | boolean | true | Include member groups in the response. Accepts true or 1. |
offset | int | 123 | Skip this many matching records before returning results. |
pageSize | int | 123 | Limit the number of records returned. |
POST
Create or update a record from a JSON object.
Request content type: application/json
Request body fields
| Name | Type | Example | Notes |
|---|---|---|---|
id | int | 123 | Set the id value. |
mbr_name | text | example | Set the mbr name value. |
mbr_email | text | customer@example.com | Set the mbr email value. |
mbr_phone | text | example | Set the mbr phone value. |
mbr_company | text | example | Set the mbr company value. |
mbr_addr | text | example | Set the mbr addr value. |
mbr_city | text | example | Set the mbr city value. |
mbr_country | text | NZ | Set the mbr country value. |
memberGroups | text | example | Set the member groups value. |
Data definitions
| Field | Type | Description | Format | Example |
|---|---|---|---|---|
mbr_addr | text | Customer Address | ||
mbr_email_fail_time | timestamp | If the email address failed during sending on our mail servers, then this was the time it happened | 2025-12-31 23:59:59 | |
mbr_delivery_country | text | Customers preferred delivery address country. | ||
mbr_id | serial | The primary ID of the member record. System generated serial integer (readonly) | ||
mbr_lang | text | Customers preferred language | ||
mbr_updated_via_api | timestamp | The date this member record was last updated from an external API | 2025-12-31 23:59:59 | |
mbr_preferred_card_id | int | Preferred credit card ID | ||
mbr_delivery_suburb | text | Customers preferred delivery address suburb | ||
mbr_order_total | decimal | Total lifecycle customer value | ||
mbr_balance60days | decimal | Not used for all merchants | ||
mbr_jobtitle | text | Customers job title | ||
mbr_company | text | The company or organisation to which this member belongs, optional in addition to the member name. | ||
mbr_url | text | URL to the company website of this person | ||
mbr_city | text | The customer city | ||
mbr_utm_medium | text | UTM medium from first lead | ||
mbr_email_fail_reason | text | If email was detected as failed by our mail servers, then this message as per the logs | ||
mbr_utm_campaign | text | UTM campaign from first lead | ||
mbr_source | text | From where did this customer originate, website, shop, etc | ||
mbr_referred | text | Name of the organisation or website who referred this customer | ||
mbr_balance_bf | decimal | Not used for all merchants | ||
mbr_welcome | text | A unique welcome message just for this user only, may have confidential data | ||
mbr_email_validated | text | Email quality validation data | ||
mbr_suburb | text | Suburb of the primary address | ||
mbr_delivery_postcode | text | Customers preferred delivery address postcode | ||
mbr_last_activity | timestamp | Timestamp of the last human initiated activity, could be login, enquiry or purchase | 2025-12-31 23:59:59 | |
mbr_aff_hits | int | Number of affiliate link click throughs... all time tally... | ||
mbr_last_login | timestamp | Timestamp of the last login | 2025-12-31 23:59:59 | |
mbr_reference | text | Customer Account number, often used to reference a third party system | ||
mbr_delivery_state | text | Customers preferred delivery address state | ||
mbr_sechash_reset | timestamp | The date/time that the last hash was generated | 2025-12-31 23:59:59 | |
mbr_ipaddress | inet | IP Address of the user | ||
mbr_email_accounts | text | Alternative email address just for accounts related messages | ||
mbr_sales_rep_id | int | References another member record who is the sale representative and who would have administrative access to POS etc | ||
mbr_notes | text | Primary notes field for a customer. this notes field may show as an alert against the customer in mutliple pages | ||
mbr_followup | date | When should we next contact this customer | 2025-12-31 | |
mbr_country | text | The country where this member lives. | ||
mbr_order_last | timestamp | Timestamp of the last order placed by this customer | 2025-12-31 23:59:59 | |
mbr_utm_source | text | UTM source from first lead | ||
mbr_state | text | State or Region of the customer address | ||
mbr_delivery_city | text | Customers preferred delivery address city | ||
mbr_business_number | text | Business Number | ||
mbr_order_count | int | Total order count in customer life cycle | ||
mbr_discount | decimal | A percentage discount rate applied globally to all retail product prices for this customer only | ||
mbr_balance | decimal | Not used for all merchants | ||
mbr_balance90days | decimal | Not used for all merchants | ||
mbr_level | int | Security level of the customer, references the mbr_level table, 100 is a general member, 0 do not contact, 200 is an authorised level etc. | ||
mbr_statements | json | JSON structure representing a history of statements sent to the customer | ||
mbr_mobile | text | Mobile phone number | ||
mbr_pricegrp | text | Price group, blank or price for retail, or priceA,priceB,priceC,priceD,priceE,priceF,priceG | ||
mbr_points_balance | decimal | Loyalty points balance | ||
mbr_postcode | text | Postcode of the primary address | ||
mbr_email | text | Members primary email address | ||
mbr_groups_summary | text | A CSV list of all the groups this customer belongs to (read only) | ||
mbr_expiry | date | What is the expiry date for this user, when involved in a time based subscription | 2025-12-31 | |
mbr_settings_json | text | Custom settings, mainly used for staff members | ||
mbr_delivery_address | text | Customers preferred delivery address street | ||
mbr_delivery_phone | text | Customers preferred delivery address phone | ||
mbr_delivery_company | text | Customers preferred delivery address company | ||
mbr_logins | int | Count of logins all time | ||
mbr_delivery_name | text | Customers preferred delivery address contact name | ||
mbr_sechash | text | A short term hash that can be used for a customer to access their account via a one time key sent by email | ||
mbr_balance30days | decimal | Not used for all merchants | ||
mbr_callerid | text | Telephone number in caller ID international format | ||
mbr_gender | char | Gender of the customer, single chracter, eg M or F | ||
mbr_created | timestamp | When was the account created | 2025-12-31 23:59:59 | |
mbr_name | text | Name of the member or customers. Primarily their personal contact name (required) | ||
mbr_updated | timestamp | The date this member record was last updated | 2025-12-31 23:59:59 | |
mbr_phone | text | Phone number of the customer | ||
mbr_birthdate | date | We record the date of birth for some users, such as to offer special discounts on their birthday | 2025-12-31 | |
mbr_delivery_email | text | Customers preferred delivery address email | ||
mbr_referredby | int | Affiliate ID, Integer ID references another member record who is recorded as the affiliate | ||
mbr_security_group_email | text | An email address that connects multiple member records together, in some systems a customer needs more than 1 account, eg for each currency in unleashed | ||
mbr_balance_lastentry | timestamp | Date of the last item in the customer account history | 2025-12-31 23:59:59 | |
mbr_terms_agreed | timestamp | A timestamp when terms and conditions were last agreed | 2025-12-31 23:59:59 | |
mbr_date_stale | date | The date this member was considered stale, due to lack of activity after so many years | 2025-12-31 | |
mbr_message_to_member | text | Special use case for a unqiue message to give to this user but not the same as the welcome message. |
Usage instructions and examples
Security Levels
Member records must belong to a status/member level, that indicates how powerful the user is, or how relevant the person is for future conversations. eg they can range from blocked/spammers up to general members, up to opt in members, up to authorised levels who can login and get special pricing. To get full breakdown of the member status use the reference/memberlevel endpoint or refer to our help docs with a full explanation of membership levels
Add a new member
To add a new member do not provide the member id. The rest of the information will be used to create a new member. It is a good idea to atleast provide the member email, name, phone and address while creating a new member. Member level should not be more than 500. To get a breakdown of member levels refer to Referene Endpoint /reference/memberlevel. You can create a Member to be Opt In member by providing OptIn name with value "yes". Email address is treated as a unique key, to ensure unique email accounts, with an optional override ?AllowDuplicateEmailAccounts=1
Example:
{
"mbr_name": "name",
"mbr_email": "abc@xyz.com",
"optIn": true
}
Update an existing member
To update an existing member please provide either an existing member id, or reference, or email address.
Reference or Email address are assumed to be an alternative unique key when no ID is provided. It remains possible that duplicates may already exist, so our system will only select the first record it finds during a POST update. If reference is provided, then the email lookup is ignored.
If you provide the form post parameter ?AllowDuplicateEmailAccounts=1 then the email lookup step is ignored, and typically the record will then be inserted.
Rest of the JSON data will be used to update the member. You can update a Member to be Opt In member by providing OptIn name with value "yes".
Example:
{
"id": 1234
"mbr_name": "name",
"mbr_email": "abc@xyz.com",
"optIn": "yes"...
}
Manage Member Group Associations
Members can belong to different groups which can be used for different purposes. To link a member to a group include memberGroups array in your body. You must include a group name or id. If group does not exist we will create a new group.
The below example will create a new member and link it to the Member Groups.
Example using group names:
{
"mbr_name": "name",
"mbr_email": "abc@xyz.com",
"memberGroups": [
"Auckland",
"Team 1"
]
}
{
"mbr_name": "name",
"mbr_email": "abc@xyz.com",
"memberGroups": [
{
"name": "group 2"
},
{
"id": 1234
}
]
}
Delete Member Groups
Our API has been designed to make it easy to send minimal data to add a member to a group. So if you simply exclude a group, this does not remove the member from the group. If you provide a group(s), the member is added to the group.If you want to delete group associations, then you will need to supply a complete array of member groups and add a request parameter, or a json data parameter (in top level) called "DeleteMissingArrayElements" and we will delete any items that are not in your array. If you use this feature, it could affect any use of arrays within the member object, not just the groups.
Machine-readable documentation
This documentation is also available as JSON or Markdown at the same URL. Request JSON with Accept: application/json or Markdown with Accept: text/markdown.