CMS Tool API

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

NameTypeExampleNotes
idint123Filter results by id.
mbr_emailtextcustomer@example.comFilter results by mbr email.
keywordstextexampleFilter results by keywords.
companytextexampleFilter results by company.
updatedAfterdate2026-09-24T14:30:00+12:00Filter results by updated after.
updatedBeforedate2026-09-24T14:30:00+12:00Filter results by updated before.
includeMemberGroupsbooleantrueInclude member groups in the response. Accepts true or 1.
offsetint123Skip this many matching records before returning results.
pageSizeint123Limit the number of records returned.

POST

Create or update a record from a JSON object.

Request content type: application/json

Request body fields

NameTypeExampleNotes
idint123Set the id value.
mbr_nametextexampleSet the mbr name value.
mbr_emailtextcustomer@example.comSet the mbr email value.
mbr_phonetextexampleSet the mbr phone value.
mbr_companytextexampleSet the mbr company value.
mbr_addrtextexampleSet the mbr addr value.
mbr_citytextexampleSet the mbr city value.
mbr_countrytextNZSet the mbr country value.
memberGroupstextexampleSet the member groups value.

Data definitions

FieldTypeDescriptionFormatExample
mbr_addrtextCustomer Address
mbr_email_fail_timetimestampIf the email address failed during sending on our mail servers, then this was the time it happened2025-12-31 23:59:59
mbr_delivery_countrytextCustomers preferred delivery address country.
mbr_idserialThe primary ID of the member record. System generated serial integer (readonly)
mbr_langtextCustomers preferred language
mbr_updated_via_apitimestampThe date this member record was last updated from an external API2025-12-31 23:59:59
mbr_preferred_card_idintPreferred credit card ID
mbr_delivery_suburbtextCustomers preferred delivery address suburb
mbr_order_totaldecimalTotal lifecycle customer value
mbr_balance60daysdecimalNot used for all merchants
mbr_jobtitletextCustomers job title
mbr_companytextThe company or organisation to which this member belongs, optional in addition to the member name.
mbr_urltextURL to the company website of this person
mbr_citytextThe customer city
mbr_utm_mediumtextUTM medium from first lead
mbr_email_fail_reasontextIf email was detected as failed by our mail servers, then this message as per the logs
mbr_utm_campaigntextUTM campaign from first lead
mbr_sourcetextFrom where did this customer originate, website, shop, etc
mbr_referredtextName of the organisation or website who referred this customer
mbr_balance_bfdecimalNot used for all merchants
mbr_welcometextA unique welcome message just for this user only, may have confidential data
mbr_email_validatedtextEmail quality validation data
mbr_suburbtextSuburb of the primary address
mbr_delivery_postcodetextCustomers preferred delivery address postcode
mbr_last_activitytimestampTimestamp of the last human initiated activity, could be login, enquiry or purchase2025-12-31 23:59:59
mbr_aff_hitsintNumber of affiliate link click throughs... all time tally...
mbr_last_logintimestampTimestamp of the last login2025-12-31 23:59:59
mbr_referencetextCustomer Account number, often used to reference a third party system
mbr_delivery_statetextCustomers preferred delivery address state
mbr_sechash_resettimestampThe date/time that the last hash was generated2025-12-31 23:59:59
mbr_ipaddressinetIP Address of the user
mbr_email_accountstextAlternative email address just for accounts related messages
mbr_sales_rep_idintReferences another member record who is the sale representative and who would have administrative access to POS etc
mbr_notestextPrimary notes field for a customer. this notes field may show as an alert against the customer in mutliple pages
mbr_followupdateWhen should we next contact this customer2025-12-31
mbr_countrytextThe country where this member lives.
mbr_order_lasttimestampTimestamp of the last order placed by this customer2025-12-31 23:59:59
mbr_utm_sourcetextUTM source from first lead
mbr_statetextState or Region of the customer address
mbr_delivery_citytextCustomers preferred delivery address city
mbr_business_numbertextBusiness Number
mbr_order_countintTotal order count in customer life cycle
mbr_discountdecimalA percentage discount rate applied globally to all retail product prices for this customer only
mbr_balancedecimalNot used for all merchants
mbr_balance90daysdecimalNot used for all merchants
mbr_levelintSecurity 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_statementsjsonJSON structure representing a history of statements sent to the customer
mbr_mobiletextMobile phone number
mbr_pricegrptextPrice group, blank or price for retail, or priceA,priceB,priceC,priceD,priceE,priceF,priceG
mbr_points_balancedecimalLoyalty points balance
mbr_postcodetextPostcode of the primary address
mbr_emailtextMembers primary email address
mbr_groups_summarytextA CSV list of all the groups this customer belongs to (read only)
mbr_expirydateWhat is the expiry date for this user, when involved in a time based subscription2025-12-31
mbr_settings_jsontextCustom settings, mainly used for staff members
mbr_delivery_addresstextCustomers preferred delivery address street
mbr_delivery_phonetextCustomers preferred delivery address phone
mbr_delivery_companytextCustomers preferred delivery address company
mbr_loginsintCount of logins all time
mbr_delivery_nametextCustomers preferred delivery address contact name
mbr_sechashtextA short term hash that can be used for a customer to access their account via a one time key sent by email
mbr_balance30daysdecimalNot used for all merchants
mbr_calleridtextTelephone number in caller ID international format
mbr_gendercharGender of the customer, single chracter, eg M or F
mbr_createdtimestampWhen was the account created2025-12-31 23:59:59
mbr_nametextName of the member or customers. Primarily their personal contact name (required)
mbr_updatedtimestampThe date this member record was last updated2025-12-31 23:59:59
mbr_phonetextPhone number of the customer
mbr_birthdatedateWe record the date of birth for some users, such as to offer special discounts on their birthday2025-12-31
mbr_delivery_emailtextCustomers preferred delivery address email
mbr_referredbyintAffiliate ID, Integer ID references another member record who is recorded as the affiliate
mbr_security_group_emailtextAn 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_lastentrytimestampDate of the last item in the customer account history2025-12-31 23:59:59
mbr_terms_agreedtimestampA timestamp when terms and conditions were last agreed2025-12-31 23:59:59
mbr_date_staledateThe date this member was considered stale, due to lack of activity after so many years2025-12-31
mbr_message_to_membertextSpecial 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"

    ]

}

Example using group name or id:

{

  "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.