curl --request GET \
--url https://int-api.mx.com/users/{user_guid}/insights \
--header 'Accept-Version: <accept-version>' \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://int-api.mx.com/users/{user_guid}/insights"
headers = {
"Accept-Version": "<accept-version>",
"Authorization": "Basic <encoded-value>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'Accept-Version': '<accept-version>', Authorization: 'Basic <encoded-value>'}
};
fetch('https://int-api.mx.com/users/{user_guid}/insights', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://int-api.mx.com/users/{user_guid}/insights",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Accept-Version: <accept-version>",
"Authorization: Basic <encoded-value>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://int-api.mx.com/users/{user_guid}/insights"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Accept-Version", "<accept-version>")
req.Header.Add("Authorization", "Basic <encoded-value>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://int-api.mx.com/users/{user_guid}/insights")
.header("Accept-Version", "<accept-version>")
.header("Authorization", "Basic <encoded-value>")
.asString();require 'uri'
require 'net/http'
url = URI("https://int-api.mx.com/users/{user_guid}/insights")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Accept-Version"] = '<accept-version>'
request["Authorization"] = 'Basic <encoded-value>'
response = http.request(request)
puts response.read_body{
"insights": [
{
"active_at": "2022-01-07T12:00:00Z",
"client_guid": "CLT-abcd-1234",
"created_at": "2025-02-13T18:08:00+00:00",
"cta_clicked_at": "2022-01-13T18:13:51Z",
"description": "Gold's Gym charged you $36.71 more this month than normal. Did you upgrade your service?",
"guid": "BET-abcd-1234",
"has_associated_accounts": false,
"has_associated_categories": false,
"has_associated_merchants": false,
"has_associated_scheduled_payments": false,
"has_associated_transactions": true,
"has_been_displayed": true,
"is_dismissed": false,
"micro_call_to_action": "Learn more",
"micro_description": "Netflix charged you $5.00 more this month than normal.",
"micro_title": "Price Increase",
"template": "SubscriptionPriceIncrease",
"title": "Price increase",
"updated_at": "2025-02-13T18:09:00+00:00",
"user_guid": "USR-fa7537f3-48aa-a683-a02a-b18940482f54",
"user_id": "u-1234"
}
],
"pagination": {
"current_page": 1,
"per_page": 25,
"total_entries": 1,
"total_pages": 1
}
}List all insights for a user
Use this endpoint to list all the insights associated with the user.
curl --request GET \
--url https://int-api.mx.com/users/{user_guid}/insights \
--header 'Accept-Version: <accept-version>' \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://int-api.mx.com/users/{user_guid}/insights"
headers = {
"Accept-Version": "<accept-version>",
"Authorization": "Basic <encoded-value>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'Accept-Version': '<accept-version>', Authorization: 'Basic <encoded-value>'}
};
fetch('https://int-api.mx.com/users/{user_guid}/insights', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://int-api.mx.com/users/{user_guid}/insights",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Accept-Version: <accept-version>",
"Authorization: Basic <encoded-value>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://int-api.mx.com/users/{user_guid}/insights"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Accept-Version", "<accept-version>")
req.Header.Add("Authorization", "Basic <encoded-value>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://int-api.mx.com/users/{user_guid}/insights")
.header("Accept-Version", "<accept-version>")
.header("Authorization", "Basic <encoded-value>")
.asString();require 'uri'
require 'net/http'
url = URI("https://int-api.mx.com/users/{user_guid}/insights")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Accept-Version"] = '<accept-version>'
request["Authorization"] = 'Basic <encoded-value>'
response = http.request(request)
puts response.read_body{
"insights": [
{
"active_at": "2022-01-07T12:00:00Z",
"client_guid": "CLT-abcd-1234",
"created_at": "2025-02-13T18:08:00+00:00",
"cta_clicked_at": "2022-01-13T18:13:51Z",
"description": "Gold's Gym charged you $36.71 more this month than normal. Did you upgrade your service?",
"guid": "BET-abcd-1234",
"has_associated_accounts": false,
"has_associated_categories": false,
"has_associated_merchants": false,
"has_associated_scheduled_payments": false,
"has_associated_transactions": true,
"has_been_displayed": true,
"is_dismissed": false,
"micro_call_to_action": "Learn more",
"micro_description": "Netflix charged you $5.00 more this month than normal.",
"micro_title": "Price Increase",
"template": "SubscriptionPriceIncrease",
"title": "Price increase",
"updated_at": "2025-02-13T18:09:00+00:00",
"user_guid": "USR-fa7537f3-48aa-a683-a02a-b18940482f54",
"user_id": "u-1234"
}
],
"pagination": {
"current_page": 1,
"per_page": 25,
"total_entries": 1,
"total_pages": 1
}
}Authorizations
The MX Platform API requires basic access authentication using your client_id and api_key. These credentials must be Base64 encoded and included in the Authorization header of each API request to ensure secure access.
Here's an example using curl to access v20250224. Replace https://int-api.mx.com/endpoint with the actual API endpoint you wish to access and your Base64 encoded client_id and api_key.
curl -L -X POST `https://int-api.mx.com/endpoint' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Accept-Version: v20250224'
-H 'Authorization: Basic BASE_64_ENCODING_OF{client_id:api_key}'Headers
MX Platform API version.
"v20250224"
Path Parameters
The unique identifier for a user, beginning with the prefix USR-.
Query Parameters
Results are paginated. Specify current page.
This specifies the number of records to be returned on each page. Defaults to 25. The valid range is from 10 to 100. If the value exceeds 100, the default value of 25 will be used instead.
Response
OK
Hide child attributes
Hide child attributes
The date and time when the insight was activated, represented in ISO 8601 format with a timestamp.
"2022-01-07T12:00:00Z"
The unique identifier for the client associated with the insight. Defined by MX.
"CLT-abcd-1234"
The date and time the insight was created, represented in ISO 8601 format with a timestamp.
"2025-02-13T18:08:00+00:00"
The date and time when a call-to-action was clicked, represented in ISO 8601 format with a timestamp.
"2022-01-13T18:13:51Z"
The human-readable information being delivered to the end user.
"Gold's Gym charged you $36.71 more this month than normal. Did you upgrade your service?"
The unique identifier for the insight. Defined by MX.
"BET-abcd-1234"
Indicates whether there are accounts associated with the insight.
false
Indicates whether there are categories associated with the insight.
false
Indicates whether there are merchants associated with the insight.
false
Indicates whether there are scheduled payments associated with the insight.
false
Indicates whether there are transactions associated with the insight.
true
Indicates whether the insight has been shown to the end user.
true
Indicates whether the insight has been dismissed by the user.
false
A short call-to-action text for prompting user engagement.
"Learn more"
A shorter version (300 characters or less) of description. This is the insight's description we display to the end user in the Micro Widget
"Netflix charged you $5.00 more this month than normal."
A shorter version (60 characters or less) of title. This is the insight's title we display to the end user in the Micro Widget. For example, Price Increase or Paycheck Deposit.
"Price Increase"
A short label for the type of insight being delivered, for example, SubscriptionPriceIncrease or MonthlyCategoryTotal.
"SubscriptionPriceIncrease"
The title for the specific insight, for example, Price Increase or Paycheck Deposit.
"Price increase"
The date and time the resource was last updated in ISO 8601 format with a timestamp.
For categories, this field will always be null when is_default is true.
"2025-02-13T18:09:00+00:00"
The unique identifier for the user. Defined by MX.
"USR-fa7537f3-48aa-a683-a02a-b18940482f54"
The unique partner-defined identifier for the user.
"u-1234"
Hide child attributes
Hide child attributes
The page delivered by the current response.
1
The number of records delivered with each page.
25
The total number of records available.
1
The total number of pages available.
1

