UA UK
Увійти

API

Щоб відкрити доступ до нашого API, зв'яжіться з нашою службою підтримки через Telegram за посиланням: @Spy_House

Отримання списку мов

URL для запиту

Параметр Тип даних Обов'язковий Опис
api_key Рядок Так Унікальний API ключ для автентифікації запиту.
Параметр Тип даних Опис
status Рядок Поле, що вказує на успішне виконання запиту ("success") або помилку ("error").
msg Рядок Повідомлення про помилку або додаткова інформація про запит.
code Число Код відповіді, наприклад, 200 для успішного запиту.
data Масив Масив доступних мов.
└ lang_id Число Унікальний ідентифікатор мови.
└ name Рядок Назва мови англійською.
└ iso_code Рядок ISO код мови (наприклад, "EN" для англійської, "UK" для української).
<?php


    
function api_request($data = [])
    {
        
$ch curl_init('https://spy.house/api/filters/languages');

        
curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
        
curl_setopt($chCURLOPT_CUSTOMREQUEST'POST');
        
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
        
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);
        
curl_setopt($chCURLOPT_POSTFIELDShttp_build_query($data));

        
$body curl_exec($ch);
        
$info curl_getinfo($ch);

        
curl_close($ch);

        if ( ! empty(
$info['http_code']) && $info['http_code'] == 200) {
            return 
json_decode($bodyTRUE);
        }
    }


    
$body_request = ['api_key' => 'YOUR_API_KEY'];


    
$api_request api_request($body_request);
    if ( ! empty(
$api_request['status'])) {
        echo 
'<pre>';
        
print_r($api_request);
        echo 
'</pre>';
    }

Отримання списку країн

URL для запиту

Параметр Тип даних Обов'язковий Опис
api_key Рядок Так Унікальний API ключ для автентифікації запиту.
Параметр Тип даних Опис
status Рядок Поле, що вказує на успішне виконання запиту ("success") або помилку ("error").
msg Рядок Повідомлення про помилку або додаткова інформація про запит.
code Число Код відповіді, наприклад, 200 для успішного запиту.
data Масив Масив доступних країн.
└ country_id Число Унікальний ідентифікатор країни.
└ name Рядок Назва країни англійською.
└ iso_code Рядок ISO 3166-1 alpha-2 код країни (наприклад, "UA" для України).
└ iso_code_3 Рядок ISO 3166-1 alpha-3 код країни (наприклад, "UKR" для України).
<?php


    
function api_request($data = [])
    {
        
$ch curl_init('https://spy.house/api/filters/countries');

        
curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
        
curl_setopt($chCURLOPT_CUSTOMREQUEST'POST');
        
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
        
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);
        
curl_setopt($chCURLOPT_POSTFIELDShttp_build_query($data));

        
$body curl_exec($ch);
        
$info curl_getinfo($ch);

        
curl_close($ch);

        if ( ! empty(
$info['http_code']) && $info['http_code'] == 200) {
            return 
json_decode($bodyTRUE);
        }
    }


    
$body_request = ['api_key' => 'YOUR_API_KEY'];


    
$api_request api_request($body_request);
    if ( ! empty(
$api_request['status'])) {
        echo 
'<pre>';
        
print_r($api_request);
        echo 
'</pre>';
    }

Отримання списку браузерів

URL для запиту

Параметр Тип даних Обов'язковий Опис
api_key Рядок Так Унікальний API ключ для автентифікації запиту.
Параметр Тип даних Опис
status Рядок Поле, що вказує на успішне виконання запиту ("success") або помилку ("error").
msg Рядок Повідомлення про помилку або додаткова інформація про запит.
code Число Код відповіді, наприклад, 200 для успішного запиту.
data Масив Масив доступних браузерів.
└ browser_id Число Унікальний ідентифікатор браузера.
└ name Рядок Назва браузера.
<?php


    
function api_request($data = [])
    {
        
$ch curl_init('https://spy.house/api/filters/browsers');

        
curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
        
curl_setopt($chCURLOPT_CUSTOMREQUEST'POST');
        
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
        
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);
        
curl_setopt($chCURLOPT_POSTFIELDShttp_build_query($data));

        
$body curl_exec($ch);
        
$info curl_getinfo($ch);

        
curl_close($ch);

        if ( ! empty(
$info['http_code']) && $info['http_code'] == 200) {
            return 
json_decode($bodyTRUE);
        }
    }


    
$body_request = ['api_key' => 'YOUR_API_KEY'];


    
$api_request api_request($body_request);
    if ( ! empty(
$api_request['status'])) {
        echo 
'<pre>';
        
print_r($api_request);
        echo 
'</pre>';
    }

Отримання списку пристроїв

URL для запиту

Параметр Тип даних Обов'язковий Опис
api_key Рядок Так Унікальний API ключ для автентифікації запиту.
Параметр Тип даних Опис
status Рядок Поле, що вказує на успішне виконання запиту ("success") або помилку ("error").
msg Рядок Повідомлення про помилку або додаткова інформація про запит.
code Число Код відповіді, наприклад, 200 для успішного запиту.
data Масив Масив доступних типів пристроїв.
└ device_id Число Унікальний ідентифікатор типу пристрою.
└ name Рядок Відображувана назва типу пристрою.
└ value Рядок Значення типу пристрою для API запитів.
<?php


    
function api_request($data = [])
    {
        
$ch curl_init('https://spy.house/api/filters/devices');

        
curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
        
curl_setopt($chCURLOPT_CUSTOMREQUEST'POST');
        
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
        
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);
        
curl_setopt($chCURLOPT_POSTFIELDShttp_build_query($data));

        
$body curl_exec($ch);
        
$info curl_getinfo($ch);

        
curl_close($ch);

        if ( ! empty(
$info['http_code']) && $info['http_code'] == 200) {
            return 
json_decode($bodyTRUE);
        }
    }


    
$body_request = ['api_key' => 'YOUR_API_KEY'];


    
$api_request api_request($body_request);
    if ( ! empty(
$api_request['status'])) {
        echo 
'<pre>';
        
print_r($api_request);
        echo 
'</pre>';
    }

Отримання списку операційних систем

URL для запиту

Параметр Тип даних Обов'язковий Опис
api_key Рядок Так Унікальний API ключ для автентифікації запиту.
Параметр Тип даних Опис
status Рядок Поле, що вказує на успішне виконання запиту ("success") або помилку ("error").
msg Рядок Повідомлення про помилку або додаткова інформація про запит.
code Число Код відповіді, наприклад, 200 для успішного запиту.
data Масив Масив доступних операційних систем.
└ os_id Число Унікальний ідентифікатор операційної системи.
└ name Рядок Відображувана назва операційної системи.
└ value Рядок Значення операційної системи для API запитів.
<?php


    
function api_request($data = [])
    {
        
$ch curl_init('https://spy.house/api/filters/operating_systems');

        
curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
        
curl_setopt($chCURLOPT_CUSTOMREQUEST'POST');
        
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
        
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);
        
curl_setopt($chCURLOPT_POSTFIELDShttp_build_query($data));

        
$body curl_exec($ch);
        
$info curl_getinfo($ch);

        
curl_close($ch);

        if ( ! empty(
$info['http_code']) && $info['http_code'] == 200) {
            return 
json_decode($bodyTRUE);
        }
    }


    
$body_request = ['api_key' => 'YOUR_API_KEY'];


    
$api_request api_request($body_request);
    if ( ! empty(
$api_request['status'])) {
        echo 
'<pre>';
        
print_r($api_request);
        echo 
'</pre>';
    }

Отримання списку рекламних мереж

URL для запиту

Параметр Тип даних Обов'язковий Опис
api_key Рядок Так Унікальний API ключ для автентифікації запиту.
Параметр Тип даних Опис
status Рядок Поле, що вказує на успішне виконання запиту ("success") або помилку ("error").
msg Рядок Повідомлення про помилку або додаткова інформація про запит.
code Число Код відповіді, наприклад, 200 для успішного запиту.
data Масив Масив доступних рекламних мереж.
└ network_id Число Унікальний ідентифікатор рекламної мережі.
└ name Рядок Відображувана назва рекламної мережі.
└ value Рядок Значення рекламної мережі для API запитів.
└ logo Рядок URL логотипу рекламної мережі.
<?php


    
function api_request($data = [])
    {
        
$ch curl_init('https://spy.house/api/filters/advertising_networks');

        
curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
        
curl_setopt($chCURLOPT_CUSTOMREQUEST'POST');
        
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
        
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);
        
curl_setopt($chCURLOPT_POSTFIELDShttp_build_query($data));

        
$body curl_exec($ch);
        
$info curl_getinfo($ch);

        
curl_close($ch);

        if ( ! empty(
$info['http_code']) && $info['http_code'] == 200) {
            return 
json_decode($bodyTRUE);
        }
    }


    
$body_request = ['api_key' => 'YOUR_API_KEY'];


    
$api_request api_request($body_request);
    if ( ! empty(
$api_request['status'])) {
        echo 
'<pre>';
        
print_r($api_request);
        echo 
'</pre>';
    }

Пошук Push креативів

Пошук push-креативів з можливістю фільтрації за різними параметрами.

URL для запиту

Параметр Тип даних Обов'язковий Опис
api_key Рядок Так Унікальний API ключ для автентифікації запиту.
limit Число Ні Кількість елементів на сторінці (10-100). За замовчуванням: 10.
offset Число Ні Кількість елементів для пропуску. Використовується для пагінації. За замовчуванням: 0.
keyword Рядок Ні Ключове слово для фільтрації креативів за заголовком або описом.
countries Масив Ні Масив ISO-2 кодів країн (наприклад, ["US", "GB", "DE"]).
country_ids Масив Ні Масив ID країн з ендпоінту /api/filters/countries. Має пріоритет над countries.
languages Масив Ні Масив ISO кодів мов (наприклад, ["EN", "UK", "DE"]).
lang_ids Масив Ні Масив ID мов з ендпоінту /api/filters/languages. Має пріоритет над languages.
advertising_networks Масив Ні Масив назв рекламних мереж.
network_ids Масив Ні Масив ID мереж з ендпоінту /api/filters/advertising-networks. Має пріоритет над advertising_networks.
browsers Масив Ні Масив назв браузерів.
browser_ids Масив Ні Масив ID браузерів з ендпоінту /api/filters/browsers. Має пріоритет над browsers.
operating_systems Масив Ні Масив значень операційних систем (наприклад, ["windows", "macos", "android"]).
devices Масив Ні Масив типів пристроїв (наприклад, ["desktop", "mobile", "tablet"]).
date_from Рядок Ні Початкова дата для фільтрації (формат: Y-m-d, наприклад, "2025-01-01").
date_to Рядок Ні Кінцева дата для фільтрації (формат: Y-m-d, наприклад, "2025-12-31").
sort_by Рядок Ні Поле сортування: creation, activity, popularity.
sort_order Рядок Ні Напрямок сортування: asc або desc.
only_adult Boolean Ні Фільтрувати лише контент для дорослих. Булеве значення (true/false).
Параметр Тип даних Опис
status Рядок Поле, що вказує на успішне виконання запиту ("success") або помилку ("error").
msg Рядок Повідомлення про помилку або додаткова інформація про запит.
code Число Код відповіді, наприклад, 200 для успішного запиту.
data Object Масив даних потоків, що відповідають запиту.
└ format Рядок Формат креативу (push, inpage, facebook, tiktok).
└ items Масив Масив об'єктів креативів.
  └ id Число Унікальний ідентифікатор креативу.
  └ title Рядок Текст заголовку креативу.
  └ description Рядок Текст опису креативу.
  └ category Рядок Формат/категорія креативу (push, inpage, facebook, tiktok).
  └ country Object Об'єкт інформації про країну (code, name, iso_code_3).
    └ code Рядок ISO 3166-1 alpha-2 код країни (наприклад, "UA" для України).
    └ name Рядок Назва країни англійською.
    └ iso_code_3 Рядок ISO 3166-1 alpha-3 код країни (наприклад, "UKR" для України).
  └ file_size Рядок Форматований загальний розмір файлу.
  └ icon_url Рядок URL зображення іконки креативу.
  └ landing_url Рядок URL цільової сторінки.
  └ created_at Рядок Дата створення креативу (формат Y-m-d).
  └ advertising_networks Масив Масив назв рекламних мереж.
  └ languages Масив Масив ISO кодів мов.
  └ operating_systems Масив Масив значень операційних систем.
  └ browsers Масив Масив назв браузерів.
  └ devices Масив Масив типів пристроїв.
  └ main_image_url Рядок URL основного зображення креативу.
  └ is_adult Boolean Чи містить креатив контент для дорослих.
  └ is_active Boolean Чи активний креатив наразі.
└ pagination Object Об'єкт інформації про пагінацію.
  └ total Число Загальна кількість креативів, що відповідають фільтрам.
  └ limit Число Кількість елементів на сторінці.
  └ offset Число Поточне зміщення.
  └ has_more Boolean Чи є ще доступні елементи.
  └ returned_count Число Кількість елементів, повернутих у цій відповіді.
└ filters_applied Object Об'єкт з примененими фільтрами.
└ timestamp Рядок Мітка часу відповіді у форматі ISO 8601.
<?php

function searchPushCreatives($params = [])
{
    
$ch curl_init('https://spy.house/api/search/push');

    
curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
    
curl_setopt($chCURLOPT_CUSTOMREQUEST'POST');
    
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
    
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);
    
curl_setopt($chCURLOPT_POSTFIELDShttp_build_query($params));

    
$body curl_exec($ch);
    
$info curl_getinfo($ch);

    
curl_close($ch);

    if (!empty(
$info['http_code']) && $info['http_code'] == 200) {
        return 
json_decode($bodyTRUE);
    }
    return 
null;
}

// Example 1: Basic search with API key
$params = [
    
'api_key' => 'YOUR_API_KEY',
    
'limit' => 20,
    
'offset' => 0,
];

$result searchPushCreatives($params);

if (
$result && $result['status'] === 'success') {
    foreach (
$result['data']['items'] as $creative) {
        echo 
"ID: " $creative['id'] . " - " $creative['title'] . "\n";
    }
    echo 
"Total: " $result['data']['pagination']['total'] . "\n";
}

// Example 2: Search with ISO codes/names filters
$paramsWithFilters = [
    
'api_key' => 'YOUR_API_KEY',
    
'limit' => 50,
    
'offset' => 0,
    
'keyword' => 'casino',
    
'countries' => ['US''GB''DE'],  // ISO-2 codes
    
'languages' => ['EN'],                 // ISO codes
    
'browsers' => ['Chrome''Firefox'],    // Browser names
    
'sort_by' => 'creation',
    
'sort_order' => 'desc',
];

$filteredResult searchPushCreatives($paramsWithFilters);

// Example 3: Search with ID-based filters (recommended)
// Use IDs from /api/filters/* endpoints for better performance
$paramsWithIds = [
    
'api_key' => 'YOUR_API_KEY',
    
'limit' => 50,
    
'offset' => 0,
    
'keyword' => 'casino',
    
'country_ids' => [123],              // IDs from /api/filters/countries
    
'lang_ids' => [1],                      // IDs from /api/filters/languages
    
'network_ids' => [510],              // IDs from /api/filters/advertising-networks
    
'browser_ids' => [12],               // IDs from /api/filters/browsers
    
'sort_by' => 'creation',
    
'sort_order' => 'desc',
];

$resultWithIds searchPushCreatives($paramsWithIds);

// Note: ID-based filters take precedence over name-based filters
// If both country_ids and countries are provided, country_ids will be used

Пошук Inpage креативів

Пошук inpage-креативів з можливістю фільтрації за різними параметрами.

URL для запиту

Параметр Тип даних Обов'язковий Опис
api_key Рядок Так Унікальний API ключ для автентифікації запиту.
limit Число Ні Кількість елементів на сторінці (10-100). За замовчуванням: 10.
offset Число Ні Кількість елементів для пропуску. Використовується для пагінації. За замовчуванням: 0.
keyword Рядок Ні Ключове слово для фільтрації креативів за заголовком або описом.
countries Масив Ні Масив ISO-2 кодів країн (наприклад, ["US", "GB", "DE"]).
country_ids Масив Ні Масив ID країн з ендпоінту /api/filters/countries. Має пріоритет над countries.
languages Масив Ні Масив ISO кодів мов (наприклад, ["EN", "UK", "DE"]).
lang_ids Масив Ні Масив ID мов з ендпоінту /api/filters/languages. Має пріоритет над languages.
advertising_networks Масив Ні Масив назв рекламних мереж.
network_ids Масив Ні Масив ID мереж з ендпоінту /api/filters/advertising-networks. Має пріоритет над advertising_networks.
browsers Масив Ні Масив назв браузерів.
browser_ids Масив Ні Масив ID браузерів з ендпоінту /api/filters/browsers. Має пріоритет над browsers.
operating_systems Масив Ні Масив значень операційних систем (наприклад, ["windows", "macos", "android"]).
devices Масив Ні Масив типів пристроїв (наприклад, ["desktop", "mobile", "tablet"]).
date_from Рядок Ні Початкова дата для фільтрації (формат: Y-m-d, наприклад, "2025-01-01").
date_to Рядок Ні Кінцева дата для фільтрації (формат: Y-m-d, наприклад, "2025-12-31").
sort_by Рядок Ні Поле сортування: creation, activity, popularity.
sort_order Рядок Ні Напрямок сортування: asc або desc.
only_adult Boolean Ні Фільтрувати лише контент для дорослих. Булеве значення (true/false).
Параметр Тип даних Опис
status Рядок Поле, що вказує на успішне виконання запиту ("success") або помилку ("error").
msg Рядок Повідомлення про помилку або додаткова інформація про запит.
code Число Код відповіді, наприклад, 200 для успішного запиту.
data Object Масив даних потоків, що відповідають запиту.
└ format Рядок Формат креативу (push, inpage, facebook, tiktok).
└ items Масив Масив об'єктів креативів.
  └ id Число Унікальний ідентифікатор креативу.
  └ title Рядок Текст заголовку креативу.
  └ description Рядок Текст опису креативу.
  └ category Рядок Формат/категорія креативу (push, inpage, facebook, tiktok).
  └ country Object Об'єкт інформації про країну (code, name, iso_code_3).
    └ code Рядок ISO 3166-1 alpha-2 код країни (наприклад, "UA" для України).
    └ name Рядок Назва країни англійською.
    └ iso_code_3 Рядок ISO 3166-1 alpha-3 код країни (наприклад, "UKR" для України).
  └ file_size Рядок Форматований загальний розмір файлу.
  └ icon_url Рядок URL зображення іконки креативу.
  └ landing_url Рядок URL цільової сторінки.
  └ created_at Рядок Дата створення креативу (формат Y-m-d).
  └ advertising_networks Масив Масив назв рекламних мереж.
  └ languages Масив Масив ISO кодів мов.
  └ operating_systems Масив Масив значень операційних систем.
  └ browsers Масив Масив назв браузерів.
  └ devices Масив Масив типів пристроїв.
  └ main_image_url Рядок URL основного зображення креативу.
  └ is_adult Boolean Чи містить креатив контент для дорослих.
  └ is_active Boolean Чи активний креатив наразі.
└ pagination Object Об'єкт інформації про пагінацію.
  └ total Число Загальна кількість креативів, що відповідають фільтрам.
  └ limit Число Кількість елементів на сторінці.
  └ offset Число Поточне зміщення.
  └ has_more Boolean Чи є ще доступні елементи.
  └ returned_count Число Кількість елементів, повернутих у цій відповіді.
└ filters_applied Object Об'єкт з примененими фільтрами.
└ timestamp Рядок Мітка часу відповіді у форматі ISO 8601.
<?php

function searchInpageCreatives($params = [])
{
    
$ch curl_init('https://spy.house/api/search/inpage');

    
curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
    
curl_setopt($chCURLOPT_CUSTOMREQUEST'POST');
    
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
    
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);
    
curl_setopt($chCURLOPT_POSTFIELDShttp_build_query($params));

    
$body curl_exec($ch);
    
$info curl_getinfo($ch);

    
curl_close($ch);

    if (!empty(
$info['http_code']) && $info['http_code'] == 200) {
        return 
json_decode($bodyTRUE);
    }
    return 
null;
}

// Example 1: Basic search with API key
$params = [
    
'api_key' => 'YOUR_API_KEY',
    
'limit' => 20,
    
'offset' => 0,
];

$result searchInpageCreatives($params);

if (
$result && $result['status'] === 'success') {
    foreach (
$result['data']['items'] as $creative) {
        echo 
"ID: " $creative['id'] . " - " $creative['title'] . "\n";
    }
    echo 
"Total: " $result['data']['pagination']['total'] . "\n";
}

// Example 2: Search with ISO codes/names filters
$paramsWithFilters = [
    
'api_key' => 'YOUR_API_KEY',
    
'limit' => 50,
    
'offset' => 0,
    
'keyword' => 'casino',
    
'countries' => ['US''GB''DE'],  // ISO-2 codes
    
'languages' => ['EN'],                 // ISO codes
    
'browsers' => ['Chrome''Firefox'],    // Browser names
    
'sort_by' => 'creation',
    
'sort_order' => 'desc',
];

$filteredResult searchInpageCreatives($paramsWithFilters);

// Example 3: Search with ID-based filters (recommended)
// Use IDs from /api/filters/* endpoints for better performance
$paramsWithIds = [
    
'api_key' => 'YOUR_API_KEY',
    
'limit' => 50,
    
'offset' => 0,
    
'keyword' => 'casino',
    
'country_ids' => [123],              // IDs from /api/filters/countries
    
'lang_ids' => [1],                      // IDs from /api/filters/languages
    
'network_ids' => [510],              // IDs from /api/filters/advertising-networks
    
'browser_ids' => [12],               // IDs from /api/filters/browsers
    
'sort_by' => 'creation',
    
'sort_order' => 'desc',
];

$resultWithIds searchInpageCreatives($paramsWithIds);

// Note: ID-based filters take precedence over name-based filters
// If both country_ids and countries are provided, country_ids will be used

Пошук Facebook креативів

Пошук Facebook-креативів з можливістю фільтрації за різними параметрами. При невеликій кількості результатів API може запустити Live Search і повернути scrapingJob для опитування.

Якщо scrapingJob.needStartPolling дорівнює true, викликайте той самий ендпоінт з isPolling=true та job_id для отримання нових елементів. Якщо статус recently_completed або rejected, завдання не створюється і опитування не слід починати.

Live Search запускається лише коли у масиві countries вказано рівно одну країну.

Live Search запускається лише коли вказано непорожнє ключове слово.

URL для запиту

Параметр Тип даних Обов'язковий Опис
api_key Рядок Так Унікальний API ключ для автентифікації запиту.
limit Число Ні Кількість елементів на сторінці (10-100). За замовчуванням: 10.
offset Число Ні Кількість елементів для пропуску. Використовується для пагінації. За замовчуванням: 0.
keyword Рядок Ні Ключове слово для фільтрації креативів за заголовком або описом.
countries Масив Ні Масив ISO-2 кодів країн (наприклад, ["US", "GB", "DE"]).
country_ids Масив Ні Масив ID країн з ендпоінту /api/filters/countries. Має пріоритет над countries.
languages Масив Ні Масив ISO кодів мов (наприклад, ["EN", "UK", "DE"]).
lang_ids Масив Ні Масив ID мов з ендпоінту /api/filters/languages. Має пріоритет над languages.
date_from Рядок Ні Початкова дата для фільтрації (формат: Y-m-d, наприклад, "2025-01-01").
date_to Рядок Ні Кінцева дата для фільтрації (формат: Y-m-d, наприклад, "2025-12-31").
sort_by Рядок Ні Поле сортування: creation, activity, popularity.
sort_order Рядок Ні Напрямок сортування: asc або desc.
status Рядок Ні Фільтр статусу реклами: ALL, ACTIVE, INACTIVE.
media_type Рядок Ні Фільтр типу медіа: ALL, IMAGE, VIDEO.
search_type Рядок Ні Тип пошуку: keyword_unordered, keyword_exact_phrase.
isPolling Boolean Ні Увімкнути опитування для оновлень live search. Використовувати з job_id.
lastId Число Ні Останній ID креативу для інкрементального опитування (необов'язково).
perPage Число Ні Очікуваний розмір сторінки для виявлення малої кількості результатів (12-96).
job_id Рядок Ні ID завдання live search з scrapingJob. Обов'язковий коли isPolling=true.
Параметр Тип даних Опис
status Рядок Поле, що вказує на успішне виконання запиту ("success") або помилку ("error").
msg Рядок Повідомлення про помилку або додаткова інформація про запит.
code Число Код відповіді, наприклад, 200 для успішного запиту.
data Object Масив даних потоків, що відповідають запиту.
└ format Рядок Формат креативу (push, inpage, facebook, tiktok).
└ items Масив Масив об'єктів креативів.
  └ id Число Унікальний ідентифікатор креативу.
  └ title Рядок Текст заголовку креативу.
  └ description Рядок Текст опису креативу.
  └ category Рядок Формат/категорія креативу (push, inpage, facebook, tiktok).
  └ country Object Об'єкт інформації про країну (code, name, iso_code_3).
    └ code Рядок ISO 3166-1 alpha-2 код країни (наприклад, "UA" для України).
    └ name Рядок Назва країни англійською.
    └ iso_code_3 Рядок ISO 3166-1 alpha-3 код країни (наприклад, "UKR" для України).
  └ file_size Рядок Форматований загальний розмір файлу.
  └ icon_url Рядок URL зображення іконки креативу.
  └ landing_url Рядок URL цільової сторінки.
  └ created_at Рядок Дата створення креативу (формат Y-m-d).
  └ advertising_networks Масив Масив назв рекламних мереж.
  └ languages Масив Масив ISO кодів мов.
  └ operating_systems Масив Масив значень операційних систем.
  └ browsers Масив Масив назв браузерів.
  └ devices Масив Масив типів пристроїв.
  └ main_image_url Рядок URL основного зображення креативу.
  └ has_video Boolean Чи містить креатив відео.
  └ video_url Рядок URL відео (якщо has_video дорівнює true).
  └ video_duration Число Тривалість відео в секундах (якщо застосовно).
  └ social_likes Число Кількість лайків (для соціальної реклами).
  └ social_comments Число Кількість коментарів (для соціальної реклами).
  └ social_shares Число Кількість репостів (для соціальної реклами).
  └ is_adult Boolean Чи містить креатив контент для дорослих.
  └ is_active Boolean Чи активний креатив наразі.
└ pagination Object Об'єкт інформації про пагінацію.
  └ total Число Загальна кількість креативів, що відповідають фільтрам.
  └ limit Число Кількість елементів на сторінці.
  └ offset Число Поточне зміщення.
  └ has_more Boolean Чи є ще доступні елементи.
  └ returned_count Число Кількість елементів, повернутих у цій відповіді.
└ filters_applied Object Об'єкт з примененими фільтрами.
└ scrapingJob Object Об'єкт завдання live search (присутній коли live search запущено або активний).
  └ type Рядок Ідентифікатор типу live search (наприклад, facebook_search).
  └ status Рядок Статус завдання: dispatched, running, post_processing, completed, failed, error, recently_completed, rejected.
  └ needStartPolling Boolean Чи повинен клієнт почати опитування для оновлень.
  └ needStopPolling Boolean Чи повинен клієнт припинити опитування.
  └ job_id Рядок Ідентифікатор завдання для опитування (відсутній коли статус recently_completed або rejected).
  └ polling_interval_seconds Число Рекомендований інтервал опитування в секундах.
  └ estimatedDuration Число Орієнтовна тривалість в секундах (0 коли completed або recently_completed).
  └ message Рядок Додаткове повідомлення про статус від сервера або парсера.
  └ retry_after_seconds Число Скільки чекати перед повторною спробою коли recently_completed/rejected (якщо надано).
  └ error Рядок Деталі помилки (присутні коли статус failed або error).
└ timestamp Рядок Мітка часу відповіді у форматі ISO 8601.
<?php

function searchFacebookCreatives($params = [])
{
    
$ch curl_init('https://spy.house/api/search/facebook');

    
curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
    
curl_setopt($chCURLOPT_CUSTOMREQUEST'POST');
    
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
    
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);
    
curl_setopt($chCURLOPT_POSTFIELDShttp_build_query($params));

    
$body curl_exec($ch);
    
$info curl_getinfo($ch);

    
curl_close($ch);

    if (!empty(
$info['http_code']) && $info['http_code'] == 200) {
        return 
json_decode($bodyTRUE);
    }
    return 
null;
}

// Example 1: Basic search with API key
$params = [
    
'api_key' => 'YOUR_API_KEY',
    
'limit' => 20,
    
'offset' => 0,
    
'keyword' => 'casino',
    
'countries' => ['US'],
];

// Example 2: Social filters (status/media_type/search_type)
$paramsWithSocialFilters = [
    
'api_key' => 'YOUR_API_KEY',
    
'limit' => 20,
    
'offset' => 0,
    
'keyword' => 'casino',
    
'countries' => ['US'],
    
'status' => 'ACTIVE',
    
'media_type' => 'VIDEO',
    
'search_type' => 'keyword_unordered',
];

$result searchFacebookCreatives($paramsWithSocialFilters);

// Example 3: Live search polling (when scrapingJob.needStartPolling is true)
$initial searchFacebookCreatives([
    
'api_key' => 'YOUR_API_KEY',
    
'limit' => 10,
    
'offset' => 0,
    
'keyword' => 'casino',
    
'countries' => ['US'],
    
'status' => 'ACTIVE',
]);

if (
$initial && !empty($initial['data']['scrapingJob'])) {
    
$scrapingJob $initial['data']['scrapingJob'];

    if (!empty(
$scrapingJob['needStartPolling']) && !empty($scrapingJob['job_id'])) {
        
$pollingResult searchFacebookCreatives([
            
'api_key' => 'YOUR_API_KEY',
            
'isPolling' => true,
            
'job_id' => $scrapingJob['job_id'],
            
'limit' => 10,
            
'offset' => 0,
        ]);
    }
}

// Note: If scrapingJob.status is "recently_completed" or "rejected", 
// the job will not be created and polling should not be started.

Пошук TikTok креативів

Пошук TikTok-креативів з можливістю фільтрації за різними параметрами. При невеликій кількості результатів API може запустити Live Search і повернути scrapingJob для опитування.

Якщо scrapingJob.needStartPolling дорівнює true, викликайте той самий ендпоінт з isPolling=true та job_id для отримання нових елементів. Якщо статус recently_completed або rejected, завдання не створюється і опитування не слід починати.

Live Search запускається лише коли у масиві countries вказано рівно одну країну.

Live Search запускається лише коли вказано непорожнє ключове слово.

URL для запиту

Параметр Тип даних Обов'язковий Опис
api_key Рядок Так Унікальний API ключ для автентифікації запиту.
limit Число Ні Кількість елементів на сторінці (10-100). За замовчуванням: 10.
offset Число Ні Кількість елементів для пропуску. Використовується для пагінації. За замовчуванням: 0.
keyword Рядок Ні Ключове слово для фільтрації креативів за заголовком або описом.
countries Масив Ні Масив ISO-2 кодів країн (наприклад, ["US", "GB", "DE"]).
country_ids Масив Ні Масив ID країн з ендпоінту /api/filters/countries. Має пріоритет над countries.
languages Масив Ні Масив ISO кодів мов (наприклад, ["EN", "UK", "DE"]).
lang_ids Масив Ні Масив ID мов з ендпоінту /api/filters/languages. Має пріоритет над languages.
date_from Рядок Ні Початкова дата для фільтрації (формат: Y-m-d, наприклад, "2025-01-01").
date_to Рядок Ні Кінцева дата для фільтрації (формат: Y-m-d, наприклад, "2025-12-31").
sort_by Рядок Ні Поле сортування: creation, activity, popularity.
sort_order Рядок Ні Напрямок сортування: asc або desc.
video_duration Рядок Ні Фільтр тривалості відео TikTok: ALL, SHORT, MEDIUM, LONG.
isPolling Boolean Ні Увімкнути опитування для оновлень live search. Використовувати з job_id.
lastId Число Ні Останній ID креативу для інкрементального опитування (необов'язково).
perPage Число Ні Очікуваний розмір сторінки для виявлення малої кількості результатів (12-96).
job_id Рядок Ні ID завдання live search з scrapingJob. Обов'язковий коли isPolling=true.
Параметр Тип даних Опис
status Рядок Поле, що вказує на успішне виконання запиту ("success") або помилку ("error").
msg Рядок Повідомлення про помилку або додаткова інформація про запит.
code Число Код відповіді, наприклад, 200 для успішного запиту.
data Object Масив даних потоків, що відповідають запиту.
└ format Рядок Формат креативу (push, inpage, facebook, tiktok).
└ items Масив Масив об'єктів креативів.
  └ id Число Унікальний ідентифікатор креативу.
  └ title Рядок Текст заголовку креативу.
  └ description Рядок Текст опису креативу.
  └ category Рядок Формат/категорія креативу (push, inpage, facebook, tiktok).
  └ country Object Об'єкт інформації про країну (code, name, iso_code_3).
    └ code Рядок ISO 3166-1 alpha-2 код країни (наприклад, "UA" для України).
    └ name Рядок Назва країни англійською.
    └ iso_code_3 Рядок ISO 3166-1 alpha-3 код країни (наприклад, "UKR" для України).
  └ file_size Рядок Форматований загальний розмір файлу.
  └ icon_url Рядок URL зображення іконки креативу.
  └ landing_url Рядок URL цільової сторінки.
  └ created_at Рядок Дата створення креативу (формат Y-m-d).
  └ advertising_networks Масив Масив назв рекламних мереж.
  └ languages Масив Масив ISO кодів мов.
  └ operating_systems Масив Масив значень операційних систем.
  └ browsers Масив Масив назв браузерів.
  └ devices Масив Масив типів пристроїв.
  └ main_image_url Рядок URL основного зображення креативу.
  └ has_video Boolean Чи містить креатив відео.
  └ video_url Рядок URL відео (якщо has_video дорівнює true).
  └ video_duration Число Тривалість відео в секундах (якщо застосовно).
  └ social_likes Число Кількість лайків (для соціальної реклами).
  └ social_comments Число Кількість коментарів (для соціальної реклами).
  └ social_shares Число Кількість репостів (для соціальної реклами).
  └ is_adult Boolean Чи містить креатив контент для дорослих.
  └ is_active Boolean Чи активний креатив наразі.
└ pagination Object Об'єкт інформації про пагінацію.
  └ total Число Загальна кількість креативів, що відповідають фільтрам.
  └ limit Число Кількість елементів на сторінці.
  └ offset Число Поточне зміщення.
  └ has_more Boolean Чи є ще доступні елементи.
  └ returned_count Число Кількість елементів, повернутих у цій відповіді.
└ filters_applied Object Об'єкт з примененими фільтрами.
└ scrapingJob Object Об'єкт завдання live search (присутній коли live search запущено або активний).
  └ type Рядок Ідентифікатор типу live search (наприклад, facebook_search).
  └ status Рядок Статус завдання: dispatched, running, post_processing, completed, failed, error, recently_completed, rejected.
  └ needStartPolling Boolean Чи повинен клієнт почати опитування для оновлень.
  └ needStopPolling Boolean Чи повинен клієнт припинити опитування.
  └ job_id Рядок Ідентифікатор завдання для опитування (відсутній коли статус recently_completed або rejected).
  └ polling_interval_seconds Число Рекомендований інтервал опитування в секундах.
  └ estimatedDuration Число Орієнтовна тривалість в секундах (0 коли completed або recently_completed).
  └ message Рядок Додаткове повідомлення про статус від сервера або парсера.
  └ retry_after_seconds Число Скільки чекати перед повторною спробою коли recently_completed/rejected (якщо надано).
  └ error Рядок Деталі помилки (присутні коли статус failed або error).
└ timestamp Рядок Мітка часу відповіді у форматі ISO 8601.
<?php

function searchTikTokCreatives($params = [])
{
    
$ch curl_init('https://spy.house/api/search/tiktok');

    
curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
    
curl_setopt($chCURLOPT_CUSTOMREQUEST'POST');
    
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
    
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);
    
curl_setopt($chCURLOPT_POSTFIELDShttp_build_query($params));

    
$body curl_exec($ch);
    
$info curl_getinfo($ch);

    
curl_close($ch);

    if (!empty(
$info['http_code']) && $info['http_code'] == 200) {
        return 
json_decode($bodyTRUE);
    }
    return 
null;
}

// Example 1: Basic search with API key
$params = [
    
'api_key' => 'YOUR_API_KEY',
    
'limit' => 20,
    
'offset' => 0,
    
'keyword' => 'casino',
    
'countries' => ['US'],
];

// Example 2: TikTok filter (video_duration)
$paramsWithVideoDuration = [
    
'api_key' => 'YOUR_API_KEY',
    
'limit' => 20,
    
'offset' => 0,
    
'keyword' => 'casino',
    
'countries' => ['US'],
    
'video_duration' => 'SHORT',
];

$result searchTikTokCreatives($paramsWithVideoDuration);

// Example 3: Live search polling (when scrapingJob.needStartPolling is true)
$initial searchTikTokCreatives([
    
'api_key' => 'YOUR_API_KEY',
    
'limit' => 10,
    
'offset' => 0,
    
'keyword' => 'casino',
    
'countries' => ['US'],
]);

if (
$initial && !empty($initial['data']['scrapingJob'])) {
    
$scrapingJob $initial['data']['scrapingJob'];

    if (!empty(
$scrapingJob['needStartPolling']) && !empty($scrapingJob['job_id'])) {
        
$pollingResult searchTikTokCreatives([
            
'api_key' => 'YOUR_API_KEY',
            
'isPolling' => true,
            
'job_id' => $scrapingJob['job_id'],
            
'limit' => 10,
            
'offset' => 0,
        ]);
    }
}

// Note: If scrapingJob.status is "recently_completed" or "rejected", 
// the job will not be created and polling should not be started.

Переказ коштів

URL для запиту

Параметр Тип даних Обов'язковий Опис
api_key Рядок Так Унікальний API ключ для автентифікації запиту.
amount Число Так Сума переказу (мінімум 10 USD).
email Рядок Так Email отримувача переказу. Має бути дійсним.
Параметр Тип даних Опис
status Рядок Поле, що вказує на успішне виконання запиту ("success") або помилку ("error").
msg Рядок Повідомлення про помилку або додаткова інформація про запит.
code Число Код відповіді, наприклад, 200 для успішного запиту.
transaction_number Рядок Унікальний номер транзакції, пов'язаний з переказом.
<?php


    
function api_request($data = [])
    {
        
$ch curl_init('https://spy.house/api/accounts/transfer_funds');

        
curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
        
curl_setopt($chCURLOPT_CUSTOMREQUEST'POST');
        
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
        
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);
        
curl_setopt($chCURLOPT_POSTFIELDShttp_build_query($data));

        
$body curl_exec($ch);
        
$info curl_getinfo($ch);

        
curl_close($ch);

        if ( ! empty(
$info['http_code']) && $info['http_code'] == 200) {
            return 
json_decode($bodyTRUE);
        }
    }


    
$body_request = [
        
'api_key' => 'YOUR_API_KEY',
        
'amount' => 100,
        
'email' => '[email protected]'
    ];


    
$api_request api_request($body_request);
    if ( ! empty(
$api_request['status'])) {
        echo 
'<pre>';
        
print_r($api_request);
        echo 
'</pre>';
    }

Отримання балансу акаунта

URL для запиту

Параметр Тип даних Обов'язковий Опис
api_key Рядок Так Унікальний API ключ для автентифікації запиту.
Параметр Тип даних Опис
status Рядок Поле, що вказує на успішне виконання запиту ("success") або помилку ("error").
msg Рядок Повідомлення про помилку або додаткова інформація про запит.
code Число Код відповіді, наприклад, 200 для успішного запиту.
balance Число Поточний баланс акаунта користувача.
<?php


    
function api_request($data = [])
    {
        
$ch curl_init('https://spy.house/api/accounts/balance');

        
curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
        
curl_setopt($chCURLOPT_CUSTOMREQUEST'POST');
        
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
        
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);
        
curl_setopt($chCURLOPT_POSTFIELDShttp_build_query($data));

        
$body curl_exec($ch);
        
$info curl_getinfo($ch);

        
curl_close($ch);

        if ( ! empty(
$info['http_code']) && $info['http_code'] == 200) {
            return 
json_decode($bodyTRUE);
        }
    }


    
$body_request = [
        
'api_key' => 'YOUR_API_KEY'
    ];


    
$api_request api_request($body_request);
    if ( ! empty(
$api_request['status'])) {
        echo 
'<pre>';
        
print_r($api_request);
        echo 
'</pre>';
    }