RU RU
Войти

API

Чтобы открыть доступ к нашему API, свяжитесь с нашей службой поддержки через Telegram по ссылке: @Spy_House

Получение списка языков

URL для запроса

Параметр Тип данных Обязательный Описание
api_key Строка Да Уникальный API ключ для аутентификации запроса.
Параметр Тип данных Описание
status Строка Поле, указывающее на успешное выполнение запроса ("success") или ошибку ("error").
msg Строка Сообщение об ошибке или дополнительная информация о запросе.
code Число Код ответа, например, 200 для успешного запроса.
data Массив Массив доступных языков.
└ lang_id Число Уникальный идентификатор языка.
└ name Строка Название языка на английском.
└ iso_code Строка ISO код языка (например, "EN" для английского, "RU" для русского).
<?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 код страны (например, "US" для США).
└ iso_code_3 Строка ISO 3166-1 alpha-3 код страны (например, "USA" для США).
<?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 Число Нет Максимальное количество возвращаемых записей (1-100). По умолчанию: 20.
offset Число Нет Смещение для пагинации. По умолчанию: 0.
keyword Строка Нет Ключевое слово для поиска в заголовке и описании креатива.
countries Массив Нет Массив ISO-2 кодов стран для фильтрации (например, ["US", "GB"]).
country_ids Массив Нет Массив ID стран для фильтрации (из /api/filters/countries).
languages Массив Нет Массив ISO кодов языков для фильтрации (например, ["EN", "RU"]).
lang_ids Массив Нет Массив ID языков для фильтрации (из /api/filters/languages).
advertising_networks Массив Нет Массив названий рекламных сетей для фильтрации.
network_ids Массив Нет Массив ID рекламных сетей для фильтрации (из /api/filters/advertising-networks).
browsers Массив Нет Массив названий браузеров для фильтрации.
browser_ids Массив Нет Массив ID браузеров для фильтрации (из /api/filters/browsers).
operating_systems Массив Нет Массив значений операционных систем (например, ["windows", "macos", "android"]).
devices Массив Нет Массив типов устройств для фильтрации (например, ["desktop", "mobile"]).
date_from Строка Нет Начальная дата для фильтрации в формате YYYY-MM-DD.
date_to Строка Нет Конечная дата для фильтрации в формате YYYY-MM-DD.
sort_by Строка Нет Поле сортировки: creation, activity, popularity, likes, comments, shares.
sort_order Строка Нет Порядок сортировки: asc или desc. По умолчанию: desc.
only_adult Boolean Нет Фильтровать только креативы для взрослых.
Параметр Тип данных Описание
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 код страны (например, "US" для США).
    └ name Строка Название страны на английском.
    └ iso_code_3 Строка ISO 3166-1 alpha-3 код страны (например, "USA" для США).
  └ 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 Число Нет Максимальное количество возвращаемых записей (1-100). По умолчанию: 20.
offset Число Нет Смещение для пагинации. По умолчанию: 0.
keyword Строка Нет Ключевое слово для поиска в заголовке и описании креатива.
countries Массив Нет Массив ISO-2 кодов стран для фильтрации (например, ["US", "GB"]).
country_ids Массив Нет Массив ID стран для фильтрации (из /api/filters/countries).
languages Массив Нет Массив ISO кодов языков для фильтрации (например, ["EN", "RU"]).
lang_ids Массив Нет Массив ID языков для фильтрации (из /api/filters/languages).
advertising_networks Массив Нет Массив названий рекламных сетей для фильтрации.
network_ids Массив Нет Массив ID рекламных сетей для фильтрации (из /api/filters/advertising-networks).
browsers Массив Нет Массив названий браузеров для фильтрации.
browser_ids Массив Нет Массив ID браузеров для фильтрации (из /api/filters/browsers).
operating_systems Массив Нет Массив значений операционных систем (например, ["windows", "macos", "android"]).
devices Массив Нет Массив типов устройств для фильтрации (например, ["desktop", "mobile"]).
date_from Строка Нет Начальная дата для фильтрации в формате YYYY-MM-DD.
date_to Строка Нет Конечная дата для фильтрации в формате YYYY-MM-DD.
sort_by Строка Нет Поле сортировки: creation, activity, popularity, likes, comments, shares.
sort_order Строка Нет Порядок сортировки: asc или desc. По умолчанию: desc.
only_adult Boolean Нет Фильтровать только креативы для взрослых.
Параметр Тип данных Описание
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 код страны (например, "US" для США).
    └ name Строка Название страны на английском.
    └ iso_code_3 Строка ISO 3166-1 alpha-3 код страны (например, "USA" для США).
  └ 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 может инициировать живой поиск и вернуть scrapingJob для опроса.

Если scrapingJob.needStartPolling равен true, вызовите тот же endpoint с isPolling=true и job_id для получения новых элементов. Если статус recently_completed или rejected, задание не создаётся и опрос не следует начинать.

Живой поиск запускается только когда в массиве countries указана ровно одна страна.

Живой поиск запускается только при указании непустого ключевого слова.

URL для запроса

Параметр Тип данных Обязательный Описание
api_key Строка Да Уникальный API ключ для аутентификации запроса.
limit Число Нет Максимальное количество возвращаемых записей (1-100). По умолчанию: 20.
offset Число Нет Смещение для пагинации. По умолчанию: 0.
keyword Строка Нет Ключевое слово для поиска в заголовке и описании креатива.
countries Массив Нет Массив ISO-2 кодов стран для фильтрации (например, ["US", "GB"]).
country_ids Массив Нет Массив ID стран для фильтрации (из /api/filters/countries).
languages Массив Нет Массив ISO кодов языков для фильтрации (например, ["EN", "RU"]).
lang_ids Массив Нет Массив ID языков для фильтрации (из /api/filters/languages).
date_from Строка Нет Начальная дата для фильтрации в формате YYYY-MM-DD.
date_to Строка Нет Конечная дата для фильтрации в формате YYYY-MM-DD.
sort_by Строка Нет Поле сортировки: creation, activity, popularity, likes, comments, shares.
sort_order Строка Нет Порядок сортировки: asc или desc. По умолчанию: desc.
status Строка Нет Фильтр статуса объявления: ALL, ACTIVE, INACTIVE.
media_type Строка Нет Фильтр типа медиа: ALL, IMAGE, VIDEO.
search_type Строка Нет Тип поиска: keyword_unordered, keyword_exact_phrase.
isPolling Boolean Нет Включить опрос для обновлений живого поиска. Используется вместе с job_id.
lastId Число Нет ID последнего полученного креатива для инкрементального опроса (необязательно).
perPage Число Нет Ожидаемый размер страницы для определения малого количества результатов (12-96).
job_id Строка Нет ID задания живого поиска из 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 код страны (например, "US" для США).
    └ name Строка Название страны на английском.
    └ iso_code_3 Строка ISO 3166-1 alpha-3 код страны (например, "USA" для США).
  └ 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 Объект задания живого поиска (присутствует, когда живой поиск запущен или активен).
  └ type Строка Идентификатор типа живого поиска (например, 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 может инициировать живой поиск и вернуть scrapingJob для опроса.

Если scrapingJob.needStartPolling равен true, вызовите тот же endpoint с isPolling=true и job_id для получения новых элементов. Если статус recently_completed или rejected, задание не создаётся и опрос не следует начинать.

Живой поиск запускается только когда в массиве countries указана ровно одна страна.

Живой поиск запускается только при указании непустого ключевого слова.

URL для запроса

Параметр Тип данных Обязательный Описание
api_key Строка Да Уникальный API ключ для аутентификации запроса.
limit Число Нет Максимальное количество возвращаемых записей (1-100). По умолчанию: 20.
offset Число Нет Смещение для пагинации. По умолчанию: 0.
keyword Строка Нет Ключевое слово для поиска в заголовке и описании креатива.
countries Массив Нет Массив ISO-2 кодов стран для фильтрации (например, ["US", "GB"]).
country_ids Массив Нет Массив ID стран для фильтрации (из /api/filters/countries).
languages Массив Нет Массив ISO кодов языков для фильтрации (например, ["EN", "RU"]).
lang_ids Массив Нет Массив ID языков для фильтрации (из /api/filters/languages).
date_from Строка Нет Начальная дата для фильтрации в формате YYYY-MM-DD.
date_to Строка Нет Конечная дата для фильтрации в формате YYYY-MM-DD.
sort_by Строка Нет Поле сортировки: creation, activity, popularity, likes, comments, shares.
sort_order Строка Нет Порядок сортировки: asc или desc. По умолчанию: desc.
video_duration Строка Нет Фильтр длительности видео TikTok: ALL, SHORT, MEDIUM, LONG.
isPolling Boolean Нет Включить опрос для обновлений живого поиска. Используется вместе с job_id.
lastId Число Нет ID последнего полученного креатива для инкрементального опроса (необязательно).
perPage Число Нет Ожидаемый размер страницы для определения малого количества результатов (12-96).
job_id Строка Нет ID задания живого поиска из 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 код страны (например, "US" для США).
    └ name Строка Название страны на английском.
    └ iso_code_3 Строка ISO 3166-1 alpha-3 код страны (например, "USA" для США).
  └ 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 Объект задания живого поиска (присутствует, когда живой поиск запущен или активен).
  └ type Строка Идентификатор типа живого поиска (например, 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>';
    }