curl --request GET \
--url https://mm-api.merchantspring.io/advertising/searchTerms \
--header 'x-api-key: <api-key>'import requests
url = "https://mm-api.merchantspring.io/advertising/searchTerms"
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/advertising/searchTerms', 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/advertising/searchTerms",
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/advertising/searchTerms"
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/advertising/searchTerms")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://mm-api.merchantspring.io/advertising/searchTerms")
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_bodyRetrieve advertising search term performance
Returns paginated advertising search term performance for a single channel for the selected date range, optionally filtered to specific campaigns, ad groups, keywords, match types or a search term. Metrics are aggregated across every keyword sharing the same search term (within the same ad type), so campaignId/adGroupId/keywordId/matchType act only as filters - the response does not include keyword/campaign-level fields. Values are currency-adjusted based on the store’s country and the requested currency. Supports sorting by any response column and zero-based page indexing.
curl --request GET \
--url https://mm-api.merchantspring.io/advertising/searchTerms \
--header 'x-api-key: <api-key>'import requests
url = "https://mm-api.merchantspring.io/advertising/searchTerms"
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/advertising/searchTerms', 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/advertising/searchTerms",
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/advertising/searchTerms"
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/advertising/searchTerms")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://mm-api.merchantspring.io/advertising/searchTerms")
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_bodyAuthorizations
Query Parameters
Channel ID. Only a single channel is supported for this endpoint.
Filter to search terms belonging to the given campaign(s). Repeatable (max 10), numeric.
Filter to search terms belonging to the given ad group(s). Repeatable (max 10), numeric.
Filter to search terms belonging to the given keyword(s). Repeatable (max 10), numeric.
Filter to search terms matched via the given keyword match type(s). Repeatable, case-insensitive.
BROAD, EXACT, PHRASE, TARGETING_EXPRESSION, TARGETING_EXPRESSION_PREDEFINED Case-insensitive substring filter on the customer search term.
Start of date range as unix epoch seconds. Defaults to 30 days ago.
End of date range as unix epoch seconds. Defaults to now. The range must not exceed 6 months.
3-letter ISO currency code (default USD).
Response column to sort by (default cost). Note: attributed_sales_same_sku, attributed_conversions_same_sku and attributed_units_ordered_same_sku are always 0 for ad_type SB, so sorting by one of them won't distinguish between SB rows.
ad_type, search_term, impressions, clicks, cost, attributed_sales, attributed_sales_same_sku, attributed_conversions, attributed_conversions_same_sku, attributed_units_ordered, attributed_units_ordered_same_sku, acos, click_through_rate, cost_per_click, conversion_rate, cost_per_acquisition, roas Sort direction (default desc).
asc, desc Zero-based page index (default 0).
x >= 0Number of (aggregated) search term rows per page, max 100 (default 10).
1 <= x <= 100Was this page helpful?