curl --request POST \
--url https://int-data.moneydesktop.com/goals \
--header 'Content-Type: application/vnd.mx.nexus.v1+json' \
--header 'MD-SESSION-TOKEN: <api-key>' \
--data '{}'import requests
url = "https://int-data.moneydesktop.com/goals"
payload = {}
headers = {
"MD-SESSION-TOKEN": "<api-key>",
"Content-Type": "application/vnd.mx.nexus.v1+json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'MD-SESSION-TOKEN': '<api-key>',
'Content-Type': 'application/vnd.mx.nexus.v1+json'
},
body: JSON.stringify({})
};
fetch('https://int-data.moneydesktop.com/goals', 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-data.moneydesktop.com/goals",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/vnd.mx.nexus.v1+json",
"MD-SESSION-TOKEN: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://int-data.moneydesktop.com/goals"
payload := strings.NewReader("{}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("MD-SESSION-TOKEN", "<api-key>")
req.Header.Add("Content-Type", "application/vnd.mx.nexus.v1+json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://int-data.moneydesktop.com/goals")
.header("MD-SESSION-TOKEN", "<api-key>")
.header("Content-Type", "application/vnd.mx.nexus.v1+json")
.body("{}")
.asString();require 'uri'
require 'net/http'
url = URI("https://int-data.moneydesktop.com/goals")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["MD-SESSION-TOKEN"] = '<api-key>'
request["Content-Type"] = 'application/vnd.mx.nexus.v1+json'
request.body = "{}"
response = http.request(request)
puts response.read_body{
"goal": {
"account_guid": "ACT-4e431124-4a29-abf9-f059-ab232ac14dbf",
"amount": 4500,
"goal_type_name": "string",
"meta_type_name": "VACATION",
"name": "Save for Europe.",
"completed_at": "2015-06-19T10:37:04-06:00",
"has_been_spent": false,
"is_complete": false,
"metadata": "Additional information",
"position": 3,
"track_type_name": "SAVINGS_TRACK"
}
}Create a goal
Create a goal. This endpoint accepts the optional MX-Skip-Webhook header and skip_webhook parameter.
curl --request POST \
--url https://int-data.moneydesktop.com/goals \
--header 'Content-Type: application/vnd.mx.nexus.v1+json' \
--header 'MD-SESSION-TOKEN: <api-key>' \
--data '{}'import requests
url = "https://int-data.moneydesktop.com/goals"
payload = {}
headers = {
"MD-SESSION-TOKEN": "<api-key>",
"Content-Type": "application/vnd.mx.nexus.v1+json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'MD-SESSION-TOKEN': '<api-key>',
'Content-Type': 'application/vnd.mx.nexus.v1+json'
},
body: JSON.stringify({})
};
fetch('https://int-data.moneydesktop.com/goals', 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-data.moneydesktop.com/goals",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/vnd.mx.nexus.v1+json",
"MD-SESSION-TOKEN: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://int-data.moneydesktop.com/goals"
payload := strings.NewReader("{}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("MD-SESSION-TOKEN", "<api-key>")
req.Header.Add("Content-Type", "application/vnd.mx.nexus.v1+json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://int-data.moneydesktop.com/goals")
.header("MD-SESSION-TOKEN", "<api-key>")
.header("Content-Type", "application/vnd.mx.nexus.v1+json")
.body("{}")
.asString();require 'uri'
require 'net/http'
url = URI("https://int-data.moneydesktop.com/goals")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["MD-SESSION-TOKEN"] = '<api-key>'
request["Content-Type"] = 'application/vnd.mx.nexus.v1+json'
request.body = "{}"
response = http.request(request)
puts response.read_body{
"goal": {
"account_guid": "ACT-4e431124-4a29-abf9-f059-ab232ac14dbf",
"amount": 4500,
"goal_type_name": "string",
"meta_type_name": "VACATION",
"name": "Save for Europe.",
"completed_at": "2015-06-19T10:37:04-06:00",
"has_been_spent": false,
"is_complete": false,
"metadata": "Additional information",
"position": 3,
"track_type_name": "SAVINGS_TRACK"
}
}Authorizations
MX Session Token
- Request an API token using the read API token endpoint in the MX SSO API.
- Exchange an API token for a session token.
- A session token is obtained by sending a POST request to /sessions
- The session token will be used in each request made for the user. It should be passed in an
MD-SESSION-TOKENHTTP header as shown below. - This session token is valid for 30 minutes from the time it was created. The 30 minute expiration counter is refreshed with each call.
- If you send a request with an expired session token you'll receive an error code of
4011.
curl -i https://int-data.moneydesktop.com/accounts \
-H 'MD-SESSION-TOKEN: CWforZl1Vn2vC_v6H4rnQRT1DoWpDouJAV-_5TBmiQRAtA8rsOG_BoajTiOSsL0A3bd-bmHXlA-eQzc9ywItKg' \
-H 'Content-Type: application/vnd.mx.nexus.v1+json' \
-H 'Accept: application/vnd.mx.nexus.v1+json'
In documentation code examples, replace <API_KEY_VALUE> with the session token.
Body
Hide child attributes
Hide child attributes
Unique identifier for the goal. Defined by MX.
"ACT-4e431124-4a29-abf9-f059-ab232ac14dbf"
The amount of the goal.
4500
The type of goal. Can be SAVE_AMOUNT or PAYOFF.
"string"
The category of the goal; see Goal Meta Type for more information.
"VACATION"
The name of the goal that is visible to the user (i.e., "Europe Trip", "Savings", "Toyota Tacoma", etc).
"Save for Europe."
Date and time the goal was completed, represented in ISO 8601 format with timestamp (e.g. 2015-04-13T12:01:23-00:00).
"2015-06-19T10:37:04-06:00"
If the goal has been spent, this field will be true. Otherwise, this field will be false.
false
If the goal is complete, this field will be true. Otherwise, this field will be false.
false
Additional information a partner can store on the goal.
"Additional information"
The priority of the goal in relation to multiple goals.
3
When set to true, this parameter will prevent a webhook from being triggered by the request.
true
Date and time the goal is to complete, represented in ISO 8601 format with timestamp (e.g. 2015-04-13T12:01:23-00:00). Intended for users to set their own goal completion dates.
The track of the goal. Can be DEBT_TRACK, SAVINGS_TRACK, RETIREMENT_TRACK, or EMERGENCY_FUND_TRACK.
Response
OK
Hide child attributes
Hide child attributes
Unique identifier for the goal. Defined by MX.
"ACT-4e431124-4a29-abf9-f059-ab232ac14dbf"
The amount of the goal.
4500
The type of goal. Can be SAVE_AMOUNT or PAYOFF.
"string"
The category of the goal; see Goal Meta Type for more information.
"VACATION"
The name of the goal that is visible to the user (i.e., "Europe Trip", "Savings", "Toyota Tacoma", etc).
"Save for Europe."
Date and time the goal was completed, represented in ISO 8601 format with timestamp (e.g. 2015-04-13T12:01:23-00:00).
"2015-06-19T10:37:04-06:00"
If the goal has been spent, this field will be true. Otherwise, this field will be false.
false
If the goal is complete, this field will be true. Otherwise, this field will be false.
false
Additional information a partner can store on the goal.
"Additional information"
The priority of the goal in relation to multiple goals.
3
The track of the goal. Can be DEBT_TRACK, SAVINGS_TRACK, RETIREMENT_TRACK, or EMERGENCY_FUND_TRACK.
"SAVINGS_TRACK"

