Search public ad libraries by competitor domain. Returns creatives, headlines, format, and run window. Does not invent spend or ROAS.
curl --request POST \
--url https://adsmcp.si/api/v1/tools/competitor_ads_research/execute \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"platform": "meta"
}
'import requests
url = "https://adsmcp.si/api/v1/tools/competitor_ads_research/execute"
payload = { "platform": "meta" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({platform: 'meta'})
};
fetch('https://adsmcp.si/api/v1/tools/competitor_ads_research/execute', 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://adsmcp.si/api/v1/tools/competitor_ads_research/execute",
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([
'platform' => 'meta'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://adsmcp.si/api/v1/tools/competitor_ads_research/execute"
payload := strings.NewReader("{\n \"platform\": \"meta\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/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://adsmcp.si/api/v1/tools/competitor_ads_research/execute")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"platform\": \"meta\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://adsmcp.si/api/v1/tools/competitor_ads_research/execute")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"platform\": \"meta\"\n}"
response = http.request(request)
puts response.read_body{
"ok": true,
"platform": "<string>",
"tool": "<string>",
"error": {
"message": "<string>",
"code": "<unknown>",
"details": "<unknown>"
},
"mcp_response": "<unknown>",
"data": "<unknown>"
}meta
Search public ad libraries by competitor domain. Returns creatives, headlines, format, and run window. Does not invent spend or ROAS.
Search public ad libraries by competitor domain. Returns creatives, headlines, format, and run window. Does not invent spend or ROAS. Use this when you need that result and get_connections_status already shows the platform as connected. Read tools run without the approval queue.
POST
/
api
/
v1
/
tools
/
competitor_ads_research
/
execute
Search public ad libraries by competitor domain. Returns creatives, headlines, format, and run window. Does not invent spend or ROAS.
curl --request POST \
--url https://adsmcp.si/api/v1/tools/competitor_ads_research/execute \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"platform": "meta"
}
'import requests
url = "https://adsmcp.si/api/v1/tools/competitor_ads_research/execute"
payload = { "platform": "meta" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({platform: 'meta'})
};
fetch('https://adsmcp.si/api/v1/tools/competitor_ads_research/execute', 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://adsmcp.si/api/v1/tools/competitor_ads_research/execute",
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([
'platform' => 'meta'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://adsmcp.si/api/v1/tools/competitor_ads_research/execute"
payload := strings.NewReader("{\n \"platform\": \"meta\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/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://adsmcp.si/api/v1/tools/competitor_ads_research/execute")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"platform\": \"meta\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://adsmcp.si/api/v1/tools/competitor_ads_research/execute")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"platform\": \"meta\"\n}"
response = http.request(request)
puts response.read_body{
"ok": true,
"platform": "<string>",
"tool": "<string>",
"error": {
"message": "<string>",
"code": "<unknown>",
"details": "<unknown>"
},
"mcp_response": "<unknown>",
"data": "<unknown>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.