curl --request GET \
--url https://mm-api.merchantspring.io/targets \
--header 'x-api-key: <api-key>'import requests
url = "https://mm-api.merchantspring.io/targets"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://mm-api.merchantspring.io/targets', 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://mm-api.merchantspring.io/targets",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <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"
"net/http"
"io"
)
func main() {
url := "https://mm-api.merchantspring.io/targets"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://mm-api.merchantspring.io/targets")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://mm-api.merchantspring.io/targets")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"startTime": "2025-07-20T00:00:00.000+10:00",
"endTime": "2025-07-20T23:59:59.000+10:00",
"startTimeEpoch": 1752933600,
"endTimeEpoch": 1753019999,
"salesBudget": null,
"salesForecast": null,
"adSpendBudget": 0.35
}
],
"totals": {
"salesBudget": null,
"salesForecast": null,
"adSpendBudget": 0.35
},
"meta": {
"timezone": "Australia/Sydney",
"currency": "USD"
}
}Retrieve budgets and forecasts (Ad Spend Budget, Sales Budget, Sales Forecast)
Returns the sales budget, sales forecast and ad spend budget targets for a channel over a date range. Data is an ordered array with ISO 8601 and Unix epoch start/end times for each period bucket; the number of buckets depends on interval (for example a one-year range with interval=month returns ~12 buckets, interval=week ~52, interval=day ~366). The totals object is the summed roll-up across the whole range.
curl --request GET \
--url https://mm-api.merchantspring.io/targets \
--header 'x-api-key: <api-key>'import requests
url = "https://mm-api.merchantspring.io/targets"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://mm-api.merchantspring.io/targets', 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://mm-api.merchantspring.io/targets",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <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"
"net/http"
"io"
)
func main() {
url := "https://mm-api.merchantspring.io/targets"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://mm-api.merchantspring.io/targets")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://mm-api.merchantspring.io/targets")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"startTime": "2025-07-20T00:00:00.000+10:00",
"endTime": "2025-07-20T23:59:59.000+10:00",
"startTimeEpoch": 1752933600,
"endTimeEpoch": 1753019999,
"salesBudget": null,
"salesForecast": null,
"adSpendBudget": 0.35
}
],
"totals": {
"salesBudget": null,
"salesForecast": null,
"adSpendBudget": 0.35
},
"meta": {
"timezone": "Australia/Sydney",
"currency": "USD"
}
}Authorizations
Query Parameters
Channel (store) ID.
Merchant ID that owns the channel. URL-encode values containing spaces or '@'.
Start of date range as unix epoch seconds.
End of date range as unix epoch seconds.
IANA timezone string, for example Australia/Sydney.
Time bucket size for the data breakdown. day returns one entry per day, week per week, month per month. Defaults to day.
day, week, month Response
Successful operation
Was this page helpful?