Поиск креативов
GET /creatives — поиск по фильтрам, курсорная пагинация, дельта-фид.
GET /public/v1/creativesКреативы по фильтрам, страницами по курсору. Каждая отданная карточка — один просмотр
из пула аккаунта. Гемблинг в выдаче скрыт, пока его не запросили явно: через
vertical=gambling, store, app_id или webmaster.
curl -G https://app.mtwspy.com/public/v1/creatives \
-H "Authorization: Bearer mtw_live_ваш_ключ" \
-d geo=PL,DE -d vertical=nutra -d since=2026-07-20 -d sort=reach -d limit=50В списке есть домен, метрики и гео, но нет ссылки на лендинг оффера и архива лендинга — они только в карточке.
Параметры
Несколько значений перечисляются через запятую или | и работают как «любое из».
В одном параметре — до 50 значений, у category — до 30.
Фильтры
| Параметр | Значения |
|---|---|
geo | ISO-2 (PL, DE) или регионы EUROPE, LATAM, NORTH_AMERICA, ASIA, AFRICA, OCEANIA |
vertical | nutra, crypto, gambling |
category | Слаги тематик, список ниже |
format | video, image, carousel |
gender | all, male, female |
platform | Площадки: facebook, instagram и другие |
cta | Тип кнопки: SEE_DETAILS, LEARN_MORE и другие |
store | Магазин приложений |
language | Коды языков текста |
offer / domain | Название оффера / домен |
q | Фраза в тексте объявления |
url | Начало ссылки из кнопки объявления |
fanpage | id фанпейджа (цифры) или название |
app_id / ip | Приложение / IP сервера лендинга |
min_reach / max_reach | Охват; так же работают _likes, _views, _age |
published_from / published_to | Дата публикации, YYYY-MM-DD или unix |
min_active_days / max_active_days | Сколько дней объявление крутится: от публикации до последнего показа, у активных — до сегодня |
since | Дата добавления в базу, для дельта-фида |
has_landing | 1 — только с архивом лендинга, 0 — только без, any — все. При vertical=nutra без этого параметра действует 1 |
webmaster | Код вебмастера WM-ABCD-1234, см. Вебмастера |
aff_network | id или названия партнёрских сетей; any — в любой сети. См. Партнёрские сети |
aff_mode | any (по умолч.) — оффер активен хотя бы в одной из сетей, all — во всех |
Выдача
| Параметр | Значения |
|---|---|
sort | added (по умолч.), published, reach, reactions |
limit | 1–200, по умолчанию 50 |
cursor | meta.next_cursor из прошлого ответа |
Слаги категорий
alcoholism, infertility, varicose, hair_loss, gastritis, hemorrhoids,
hypertension, fungus, diabetes, vision, teeth, smoking, lungs,
urination, rejuvenation, parasites, liver, digestion, potency,
weight_loss, prostatitis, psoriasis, hearing, joints,
breast_enlargement, penis_enlargement, cystitis.
Ответ
{
"data": [
{
"id": 2255582,
"uuid": "4499ba18-431e-45a6-bf60-c0a0d2e1ac77",
"vertical": "nutra",
"category": "hearing",
"offer": "Otinax Max",
"geo": "PL",
"format": "video",
"media": { "type": "video", "preview": "https://.../vpreview/....jpg",
"items": [{ "url": "https://.../creative/....mp4", "type": "video", "index": 1 }] },
"text": null,
"cta": "SEE_DETAILS",
"domain": "ad-domain.com",
"has_landing": true,
"app_id": null,
"platforms": "facebook, instagram, audience_network, messenger",
"page": { "id": "100094758680183", "name": "Concrete Canvas" },
"ad_library_id": "120249694299460433",
"aff_networks": [{ "id": 13, "name": "Dr.Cash", "url": "https://dr.cash", "logo": "https://.../logo.png" }],
"webmaster": {
"code": "WM-KQZT-4821",
"library_url": "https://app.mtwspy.com/library?webmaster=WM-KQZT-4821",
"dossier_url": "https://app.mtwspy.com/public/v1/webmasters/WM-KQZT-4821",
"creatives_url": "https://app.mtwspy.com/public/v1/creatives?webmaster=WM-KQZT-4821"
},
"metrics": { "reach": 1601, "views": 0, "likes": 0, "shares": 0, "comments": 0, "spend_usd_est": 31.72 },
"targeting": { "gender": "all", "age_min": 25, "age_max": 65 },
"is_active": false,
"published_at": "2026-07-21T10:00:00+03:00",
"stopped_at": "2026-07-24T07:00:00+03:00",
"last_seen_at": null,
"added_at": "2026-07-22T09:14:00+03:00"
}
],
"meta": {
"delivered": 50,
"has_more": true,
"next_cursor": "eyJzIjoiYWRkZWRhdCIsInYiOjE3ODQ4NzAxMDMsImkiOjIyNTU1ODJ9",
"sort": "added",
"charged": 50,
"api_limit": { "period": "2026-11", "limit": 60000, "used": 12390, "remaining": 47610, "plan": "team_api", "unit": "views" }
}
}| Поле | Описание |
|---|---|
metrics.spend_usd_est | Оценка расхода по охвату, USD |
aff_networks | Партнёрские сети, где оффер сейчас активен. Пустой массив — ни в одной из известных |
webmaster | Вебмастер объявления: код, лента в кабинете (library_url), досье и креативы через API. null — вебмастер не определён |
meta.charged | Сколько просмотров списано за этот запрос. 0 — выдача пустая или эту страницу уже запрашивали за последние 2 часа |
Пагинация курсором
Страницы идут только по порядку, перейти сразу на десятую нельзя. Передавайте
meta.next_cursor в cursor, пока has_more не станет false:
const BASE = 'https://app.mtwspy.com/public/v1';
const headers = { Authorization: 'Bearer mtw_live_ваш_ключ' };
async function* all(params) {
let cursor = null;
do {
const qs = new URLSearchParams({ ...params, limit: '100', ...(cursor ? { cursor } : {}) });
const { data, meta } = await (await fetch(`${BASE}/creatives?${qs}`, { headers })).json();
yield* data;
cursor = meta.has_more ? meta.next_cursor : null;
} while (cursor);
}Курсор работает только с той сортировкой, с которой получен. После смены sort
начните с запроса без cursor, иначе придёт 422 invalid_parameter.
Дельта-фид (since)
since отбирает креативы по дате добавления в базу (added_at), то есть то, что
появилось с прошлой проверки. Сохраните время проверки и в следующий раз передайте
его в since.
curl -G https://app.mtwspy.com/public/v1/creatives \
-H "Authorization: Bearer mtw_live_ваш_ключ" \
-d since=2026-07-27 -d vertical=nutra -d geo=PL -d limit=100