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

Поиск Native креативов

Поиск Native-креативов (MGID/Taboola) с возможностью фильтрации по различным параметрам.

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.
Параметр Тип данных Описание
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 иконки креатива.
  └ main_image_url Строка URL основного изображения креатива.
  └ landing_url Строка URL целевой страницы.
  └ created_at Строка Дата создания креатива (формат Y-m-d).
  └ advertising_networks Массив Массив названий рекламных сетей.
  └ languages Массив Массив ISO кодов языков.
  └ operating_systems Массив Массив значений операционных систем.
  └ browsers Массив Массив названий браузеров.
  └ devices Массив Массив типов устройств.
  └ is_adult Boolean Содержит ли креатив контент для взрослых.
  └ is_active Boolean Активен ли креатив в данный момент.
└ pagination Object Информация о пагинации.
  └ total Число Общее количество креативов, соответствующих фильтрам.
  └ limit Число Примененный лимит.
  └ offset Число Примененное смещение.
  └ has_more Boolean Есть ли ещё записи после текущей страницы.
  └ returned_count Число Количество креативов в текущем ответе.
└ filters_applied Object Объект с примененными фильтрами.
└ timestamp Строка Метка времени ответа в формате ISO 8601.
<?php

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

    
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 searchNativeCreatives($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 searchNativeCreatives($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 searchNativeCreatives($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>';
    }

Получение списка белых страниц

URL для запроса

Параметр Тип данных Обязательный Описание
api_key Строка Да Уникальный API ключ для аутентификации запроса.
search Строка Нет Строка для поиска по названию белой страницы.
date_from Строка Нет Начальная дата создания для фильтрации (формат: Y-m-d). (YYYY-MM-DD)
date_to Строка Нет Конечная дата создания для фильтрации (формат: Y-m-d). (YYYY-MM-DD)
limit Число Нет Количество записей на странице (от 1 до 100). По умолчанию: 10.
page Число Нет Номер страницы, начиная с 1. По умолчанию: 1.
Параметр Тип данных Описание
status Строка Поле, указывающее на успешное выполнение запроса ("success") или ошибку ("error").
msg Строка Сообщение об ошибке или дополнительная информация о запросе.
code Число Код ответа, например, 200 для успешного запроса.
data.items Массив Массив белых страниц пользователя.
data.items[].id Число Уникальный идентификатор белой страницы.
data.items[].name Строка Название белой страницы.
data.items[].status Строка Статус генерации: generating, pending, in_progress, completed, failed, error.
data.items[].status_label Строка Локализованное описание статуса.
data.items[].generator_label Строка Название AI генератора.
data.items[].vertical_label Строка Выбранная вертикаль (тематика).
data.items[].language_label Строка Язык контента сайта.
data.items[].theme_label Строка Выбранный шаблон/тема.
data.items[].amount Число Стоимость генерации (например, 5.00) или null.
data.items[].can_retry Boolean Доступен ли повторный запуск генерации.
data.items[].can_download Boolean Готов ли zip-архив к скачиванию.
data.items[].error_message Строка Локализованная причина ошибки, если генерация провалилась.
data.items[].created_at Строка Дата и время создания.
<?php

function get_white_pages($apiKey)
    {
        
$ch curl_init('https://spy.house/api/white-pages?api_key=' $apiKey);

        
curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
        
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
        
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);

        
$body curl_exec($ch);
        
curl_close($ch);

        return 
json_decode($bodyTRUE);
    }

    
$result get_white_pages('YOUR_API_KEY');
    
print_r($result);

Получение настроек генератора

URL для запроса

Параметр Тип данных Обязательный Описание
api_key Строка Да Уникальный API ключ для аутентификации запроса.
Параметр Тип данных Описание
status Строка Поле, указывающее на успешное выполнение запроса ("success") или ошибку ("error").
msg Строка Сообщение об ошибке или дополнительная информация о запросе.
code Число Код ответа, например, 200 для успешного запроса.
data.generators Массив Список доступных AI-генераторов для параметра id_generator.
data.generators[].id Число Числовой идентификатор опции.
data.generators[].slug Строка Слаг/значение опции.
data.generators[].label Строка Локализованное имя опции.
data.verticals Массив Список доступных тематик/вертикалей для параметра id_vertical.
data.verticals[].id Число Числовой идентификатор опции.
data.verticals[].slug Строка Слаг/значение опции.
data.verticals[].label Строка Локализованное имя опции.
data.languages Массив Список доступных языков для параметра id_language.
data.languages[].id Число Числовой идентификатор опции.
data.languages[].slug Строка Слаг/значение опции.
data.languages[].label Строка Локализованное имя опции.
data.themes Object Карта тем/шаблонов, сгруппированных по ключу id_generator.
<?php

function get_generator_options($apiKey)
    {
        
$ch curl_init('https://spy.house/api/white-pages/options?api_key=' $apiKey);

        
curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
        
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
        
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);

        
$body curl_exec($chcurl_close($ch);

        return 
json_decode($bodyTRUE);
    }

    
$result get_generator_options('YOUR_API_KEY');
    
print_r($result);

Генерация белой страницы

URL для запроса

Параметр Тип данных Обязательный Описание
api_key Строка Да Уникальный API ключ для аутентификации запроса.
name Строка Да Название белой страницы (для удобства, макс 64 символа).
id_generator Число Да ID генератора из эндпоинта настроек.
id_vertical Число Да ID вертикали из эндпоинта настроек.
id_language Число Да ID языка из эндпоинта настроек.
theme Строка Да Слаг темы (строка), соответствующий выбранному генератору.
wp_domain Строка Нет Опциональное доменное имя сайта.
wp_company Строка Нет Опциональное название компании для копирайтов/политик сайта.
wp_phone Строка Нет Опциональный контактный телефон.
wp_email Строка Нет Опциональный контактный email.
wp_keywords Строка Нет Опциональные ключевые слова через запятую для генерации контента.
Параметр Тип данных Описание
status Строка Поле, указывающее на успешное выполнение запроса ("success") или ошибку ("error").
msg Строка Сообщение об ошибке или дополнительная информация о запросе.
code Число Код ответа, например, 200 для успешного запроса.
data.id Число Уникальный идентификатор белой страницы.
data.name Строка Название белой страницы.
data.status Строка Статус генерации: generating, pending, in_progress, completed, failed, error.
data.status_label Строка Локализованное описание статуса.
<?php

function generate_white_page($apiKey$params)
    {
        
$ch curl_init('https://spy.house/api/white-pages/generate?api_key=' $apiKey);

        
curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
        
curl_setopt($chCURLOPT_POSTTRUE);
        
curl_setopt($chCURLOPT_POSTFIELDShttp_build_query($params));
        
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
        
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);

        
$body curl_exec($ch);
        
curl_close($ch);

        return 
json_decode($bodyTRUE);
    }

    
$params = [
        
'name' => 'My First WhitePage',
        
'id_generator' => 1,
        
'id_vertical' => 2,
        
'id_language' => 1,
        
'theme' => 'travel'
    ];

    
$result generate_white_page('YOUR_API_KEY'$params);
    
print_r($result);

Получение статуса генерации

URL для запроса

Параметр Тип данных Обязательный Описание
api_key Строка Да Уникальный API ключ для аутентификации запроса.
Параметр Тип данных Описание
status Строка Поле, указывающее на успешное выполнение запроса ("success") или ошибку ("error").
msg Строка Сообщение об ошибке или дополнительная информация о запросе.
code Число Код ответа, например, 200 для успешного запроса.
data.id Число Уникальный идентификатор белой страницы.
data.status Строка Статус генерации: generating, pending, in_progress, completed, failed, error.
data.status_label Строка Локализованное описание статуса.
data.can_retry Boolean Доступен ли повторный запуск генерации.
data.can_download Boolean Готов ли zip-архив к скачиванию.
data.error_message Строка Локализованная причина ошибки, если генерация провалилась.
<?php

function get_white_page_status($apiKey$id)
    {
        
$ch curl_init('https://spy.house/api/white-pages/' $id '/status?api_key=' $apiKey);

        
curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
        
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
        
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);

        
$body curl_exec($ch);
        
curl_close($ch);

        return 
json_decode($bodyTRUE);
    }

    
$result get_white_page_status('YOUR_API_KEY'123);
    
print_r($result);

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

URL для запроса

Параметр Тип данных Обязательный Описание
api_key Строка Да Уникальный API ключ для аутентификации запроса.
Параметр Тип данных Описание
status Строка Поле, указывающее на успешное выполнение запроса ("success") или ошибку ("error").
msg Строка Сообщение об ошибке или дополнительная информация о запросе.
code Число Код ответа, например, 200 для успешного запроса.
data.download_url Строка Временный авторизованный URL для скачивания zip-файла.
<?php

function get_white_page_download_url($apiKey$id)
    {
        
$ch curl_init('https://spy.house/api/white-pages/' $id '/download?api_key=' $apiKey);

        
curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
        
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
        
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);

        
$body curl_exec($ch);
        
curl_close($ch);

        return 
json_decode($bodyTRUE);
    }

    
$result get_white_page_download_url('YOUR_API_KEY'123);
    
print_r($result);

Скачивание архива белой страницы

URL для запроса

Параметр Тип данных Обязательный Описание
api_key Строка Да Уникальный API ключ для аутентификации запроса.

Returns the zip archive payload as binary stream with `Content-Type: application/zip` and `Content-Disposition: attachment` headers.

<?php

function download_white_page_file($apiKey$id$saveToPath)
    {
        
$fp fopen($saveToPath'w+');
        
$ch curl_init('https://spy.house/api/white-pages/' $id '/file?api_key=' $apiKey);

        
curl_setopt($chCURLOPT_FILE$fp);
        
curl_setopt($chCURLOPT_TIMEOUT300);
        
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
        
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);

        
curl_exec($chcurl_close($ch);
        
fclose($fp);
    }

    
download_white_page_file('YOUR_API_KEY'123'/path/to/save/archive.zip');

Удаление белой страницы

URL для запроса

Параметр Тип данных Обязательный Описание
api_key Строка Да Уникальный API ключ для аутентификации запроса.
Параметр Тип данных Описание
status Строка Поле, указывающее на успешное выполнение запроса ("success") или ошибку ("error").
msg Строка Сообщение об ошибке или дополнительная информация о запросе.
code Число Код ответа, например, 200 для успешного запроса.
data.deleted Boolean True в случае успешного удаления.
<?php

function delete_white_page($apiKey$id)
    {
        
$ch curl_init('https://spy.house/api/white-pages/' $id '?api_key=' $apiKey);

        
curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
        
curl_setopt($chCURLOPT_CUSTOMREQUEST'DELETE');
        
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
        
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);

        
$body curl_exec($ch);
        
curl_close($ch);

        return 
json_decode($bodyTRUE);
    }

    
$result delete_white_page('YOUR_API_KEY'123);
    
print_r($result);

Повторный запуск генерации

URL для запроса

Параметр Тип данных Обязательный Описание
api_key Строка Да Уникальный API ключ для аутентификации запроса.
Параметр Тип данных Описание
status Строка Поле, указывающее на успешное выполнение запроса ("success") или ошибку ("error").
msg Строка Сообщение об ошибке или дополнительная информация о запросе.
code Число Код ответа, например, 200 для успешного запроса.
data.id Число Уникальный идентификатор белой страницы.
data.status Строка Статус генерации: generating, pending, in_progress, completed, failed, error.
data.generating_label Строка Локализованная подпись нового статуса генерации.
<?php

function retry_white_page($apiKey$id)
    {
        
$ch curl_init('https://spy.house/api/white-pages/' $id '/retry?api_key=' $apiKey);

        
curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
        
curl_setopt($chCURLOPT_POSTTRUE);
        
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
        
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);

        
$body curl_exec($ch);
        
curl_close($ch);

        return 
json_decode($bodyTRUE);
    }

    
$result retry_white_page('YOUR_API_KEY'123);
    
print_r($result);