API
Отримання списку мов
URL для запиту
| Параметр | Тип даних | Обов'язковий | Опис |
|---|---|---|---|
| api_key | Рядок | Так | Унікальний API ключ для автентифікації запиту. |
| Параметр | Тип даних | Опис |
|---|---|---|
| status | Рядок | Поле, що вказує на успішне виконання запиту ("success") або помилку ("error"). |
| msg | Рядок | Повідомлення про помилку або додаткова інформація про запит. |
| code | Число | Код відповіді, наприклад, 200 для успішного запиту. |
| data | Масив | Масив доступних мов. |
| └ lang_id | Число | Унікальний ідентифікатор мови. |
| └ name | Рядок | Назва мови англійською. |
| └ iso_code | Рядок | ISO код мови (наприклад, "EN" для англійської, "UK" для української). |
<?php
function api_request($data = [])
{
$ch = curl_init('https://spy.house/api/filters/languages');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_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($body, TRUE);
}
}
$body_request = ['api_key' => 'YOUR_API_KEY'];
$api_request = api_request($body_request);
if ( ! empty($api_request['status'])) {
echo '<pre>';
print_r($api_request);
echo '</pre>';
}
Отримання списку країн
URL для запиту
| Параметр | Тип даних | Обов'язковий | Опис |
|---|---|---|---|
| api_key | Рядок | Так | Унікальний API ключ для автентифікації запиту. |
| Параметр | Тип даних | Опис |
|---|---|---|
| status | Рядок | Поле, що вказує на успішне виконання запиту ("success") або помилку ("error"). |
| msg | Рядок | Повідомлення про помилку або додаткова інформація про запит. |
| code | Число | Код відповіді, наприклад, 200 для успішного запиту. |
| data | Масив | Масив доступних країн. |
| └ country_id | Число | Унікальний ідентифікатор країни. |
| └ name | Рядок | Назва країни англійською. |
| └ iso_code | Рядок | ISO 3166-1 alpha-2 код країни (наприклад, "UA" для України). |
| └ iso_code_3 | Рядок | ISO 3166-1 alpha-3 код країни (наприклад, "UKR" для України). |
<?php
function api_request($data = [])
{
$ch = curl_init('https://spy.house/api/filters/countries');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_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($body, TRUE);
}
}
$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($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_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($body, TRUE);
}
}
$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($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_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($body, TRUE);
}
}
$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($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_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($body, TRUE);
}
}
$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($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_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($body, TRUE);
}
}
$body_request = ['api_key' => 'YOUR_API_KEY'];
$api_request = api_request($body_request);
if ( ! empty($api_request['status'])) {
echo '<pre>';
print_r($api_request);
echo '</pre>';
}
Пошук Push креативів
Пошук push-креативів з можливістю фільтрації за різними параметрами.
URL для запиту
| Параметр | Тип даних | Обов'язковий | Опис |
|---|---|---|---|
| api_key | Рядок | Так | Унікальний API ключ для автентифікації запиту. |
| limit | Число | Ні | Кількість елементів на сторінці (10-100). За замовчуванням: 10. |
| offset | Число | Ні | Кількість елементів для пропуску. Використовується для пагінації. За замовчуванням: 0. |
| keyword | Рядок | Ні | Ключове слово для фільтрації креативів за заголовком або описом. |
| countries | Масив | Ні | Масив ISO-2 кодів країн (наприклад, ["US", "GB", "DE"]). |
| country_ids | Масив | Ні | Масив ID країн з ендпоінту /api/filters/countries. Має пріоритет над countries. |
| languages | Масив | Ні | Масив ISO кодів мов (наприклад, ["EN", "UK", "DE"]). |
| lang_ids | Масив | Ні | Масив ID мов з ендпоінту /api/filters/languages. Має пріоритет над languages. |
| advertising_networks | Масив | Ні | Масив назв рекламних мереж. |
| network_ids | Масив | Ні | Масив ID мереж з ендпоінту /api/filters/advertising-networks. Має пріоритет над advertising_networks. |
| browsers | Масив | Ні | Масив назв браузерів. |
| browser_ids | Масив | Ні | Масив ID браузерів з ендпоінту /api/filters/browsers. Має пріоритет над browsers. |
| operating_systems | Масив | Ні | Масив значень операційних систем (наприклад, ["windows", "macos", "android"]). |
| devices | Масив | Ні | Масив типів пристроїв (наприклад, ["desktop", "mobile", "tablet"]). |
| date_from | Рядок | Ні | Початкова дата для фільтрації (формат: Y-m-d, наприклад, "2025-01-01"). |
| date_to | Рядок | Ні | Кінцева дата для фільтрації (формат: Y-m-d, наприклад, "2025-12-31"). |
| sort_by | Рядок | Ні | Поле сортування: creation, activity, popularity. |
| sort_order | Рядок | Ні | Напрямок сортування: asc або desc. |
| only_adult | Boolean | Ні | Фільтрувати лише контент для дорослих. Булеве значення (true/false). |
| Параметр | Тип даних | Опис |
|---|---|---|
| status | Рядок | Поле, що вказує на успішне виконання запиту ("success") або помилку ("error"). |
| msg | Рядок | Повідомлення про помилку або додаткова інформація про запит. |
| code | Число | Код відповіді, наприклад, 200 для успішного запиту. |
| data | Object | Масив даних потоків, що відповідають запиту. |
| └ format | Рядок | Формат креативу (push, inpage, facebook, tiktok). |
| └ items | Масив | Масив об'єктів креативів. |
| └ id | Число | Унікальний ідентифікатор креативу. |
| └ title | Рядок | Текст заголовку креативу. |
| └ description | Рядок | Текст опису креативу. |
| └ category | Рядок | Формат/категорія креативу (push, inpage, facebook, tiktok). |
| └ country | Object | Об'єкт інформації про країну (code, name, iso_code_3). |
| └ code | Рядок | ISO 3166-1 alpha-2 код країни (наприклад, "UA" для України). |
| └ name | Рядок | Назва країни англійською. |
| └ iso_code_3 | Рядок | ISO 3166-1 alpha-3 код країни (наприклад, "UKR" для України). |
| └ file_size | Рядок | Форматований загальний розмір файлу. |
| └ icon_url | Рядок | URL зображення іконки креативу. |
| └ landing_url | Рядок | URL цільової сторінки. |
| └ created_at | Рядок | Дата створення креативу (формат Y-m-d). |
| └ advertising_networks | Масив | Масив назв рекламних мереж. |
| └ languages | Масив | Масив ISO кодів мов. |
| └ operating_systems | Масив | Масив значень операційних систем. |
| └ browsers | Масив | Масив назв браузерів. |
| └ devices | Масив | Масив типів пристроїв. |
| └ main_image_url | Рядок | URL основного зображення креативу. |
| └ is_adult | Boolean | Чи містить креатив контент для дорослих. |
| └ is_active | Boolean | Чи активний креатив наразі. |
| └ pagination | Object | Об'єкт інформації про пагінацію. |
| └ total | Число | Загальна кількість креативів, що відповідають фільтрам. |
| └ limit | Число | Кількість елементів на сторінці. |
| └ offset | Число | Поточне зміщення. |
| └ has_more | Boolean | Чи є ще доступні елементи. |
| └ returned_count | Число | Кількість елементів, повернутих у цій відповіді. |
| └ filters_applied | Object | Об'єкт з примененими фільтрами. |
| └ timestamp | Рядок | Мітка часу відповіді у форматі ISO 8601. |
<?php
function searchPushCreatives($params = [])
{
$ch = curl_init('https://spy.house/api/search/push');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_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($body, TRUE);
}
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' => [1, 2, 3], // IDs from /api/filters/countries
'lang_ids' => [1], // IDs from /api/filters/languages
'network_ids' => [5, 10], // IDs from /api/filters/advertising-networks
'browser_ids' => [1, 2], // IDs from /api/filters/browsers
'sort_by' => 'creation',
'sort_order' => 'desc',
];
$resultWithIds = searchPushCreatives($paramsWithIds);
// Note: ID-based filters take precedence over name-based filters
// If both country_ids and countries are provided, country_ids will be used
Пошук Inpage креативів
Пошук inpage-креативів з можливістю фільтрації за різними параметрами.
URL для запиту
| Параметр | Тип даних | Обов'язковий | Опис |
|---|---|---|---|
| api_key | Рядок | Так | Унікальний API ключ для автентифікації запиту. |
| limit | Число | Ні | Кількість елементів на сторінці (10-100). За замовчуванням: 10. |
| offset | Число | Ні | Кількість елементів для пропуску. Використовується для пагінації. За замовчуванням: 0. |
| keyword | Рядок | Ні | Ключове слово для фільтрації креативів за заголовком або описом. |
| countries | Масив | Ні | Масив ISO-2 кодів країн (наприклад, ["US", "GB", "DE"]). |
| country_ids | Масив | Ні | Масив ID країн з ендпоінту /api/filters/countries. Має пріоритет над countries. |
| languages | Масив | Ні | Масив ISO кодів мов (наприклад, ["EN", "UK", "DE"]). |
| lang_ids | Масив | Ні | Масив ID мов з ендпоінту /api/filters/languages. Має пріоритет над languages. |
| advertising_networks | Масив | Ні | Масив назв рекламних мереж. |
| network_ids | Масив | Ні | Масив ID мереж з ендпоінту /api/filters/advertising-networks. Має пріоритет над advertising_networks. |
| browsers | Масив | Ні | Масив назв браузерів. |
| browser_ids | Масив | Ні | Масив ID браузерів з ендпоінту /api/filters/browsers. Має пріоритет над browsers. |
| operating_systems | Масив | Ні | Масив значень операційних систем (наприклад, ["windows", "macos", "android"]). |
| devices | Масив | Ні | Масив типів пристроїв (наприклад, ["desktop", "mobile", "tablet"]). |
| date_from | Рядок | Ні | Початкова дата для фільтрації (формат: Y-m-d, наприклад, "2025-01-01"). |
| date_to | Рядок | Ні | Кінцева дата для фільтрації (формат: Y-m-d, наприклад, "2025-12-31"). |
| sort_by | Рядок | Ні | Поле сортування: creation, activity, popularity. |
| sort_order | Рядок | Ні | Напрямок сортування: asc або desc. |
| only_adult | Boolean | Ні | Фільтрувати лише контент для дорослих. Булеве значення (true/false). |
| Параметр | Тип даних | Опис |
|---|---|---|
| status | Рядок | Поле, що вказує на успішне виконання запиту ("success") або помилку ("error"). |
| msg | Рядок | Повідомлення про помилку або додаткова інформація про запит. |
| code | Число | Код відповіді, наприклад, 200 для успішного запиту. |
| data | Object | Масив даних потоків, що відповідають запиту. |
| └ format | Рядок | Формат креативу (push, inpage, facebook, tiktok). |
| └ items | Масив | Масив об'єктів креативів. |
| └ id | Число | Унікальний ідентифікатор креативу. |
| └ title | Рядок | Текст заголовку креативу. |
| └ description | Рядок | Текст опису креативу. |
| └ category | Рядок | Формат/категорія креативу (push, inpage, facebook, tiktok). |
| └ country | Object | Об'єкт інформації про країну (code, name, iso_code_3). |
| └ code | Рядок | ISO 3166-1 alpha-2 код країни (наприклад, "UA" для України). |
| └ name | Рядок | Назва країни англійською. |
| └ iso_code_3 | Рядок | ISO 3166-1 alpha-3 код країни (наприклад, "UKR" для України). |
| └ file_size | Рядок | Форматований загальний розмір файлу. |
| └ icon_url | Рядок | URL зображення іконки креативу. |
| └ landing_url | Рядок | URL цільової сторінки. |
| └ created_at | Рядок | Дата створення креативу (формат Y-m-d). |
| └ advertising_networks | Масив | Масив назв рекламних мереж. |
| └ languages | Масив | Масив ISO кодів мов. |
| └ operating_systems | Масив | Масив значень операційних систем. |
| └ browsers | Масив | Масив назв браузерів. |
| └ devices | Масив | Масив типів пристроїв. |
| └ main_image_url | Рядок | URL основного зображення креативу. |
| └ is_adult | Boolean | Чи містить креатив контент для дорослих. |
| └ is_active | Boolean | Чи активний креатив наразі. |
| └ pagination | Object | Об'єкт інформації про пагінацію. |
| └ total | Число | Загальна кількість креативів, що відповідають фільтрам. |
| └ limit | Число | Кількість елементів на сторінці. |
| └ offset | Число | Поточне зміщення. |
| └ has_more | Boolean | Чи є ще доступні елементи. |
| └ returned_count | Число | Кількість елементів, повернутих у цій відповіді. |
| └ filters_applied | Object | Об'єкт з примененими фільтрами. |
| └ timestamp | Рядок | Мітка часу відповіді у форматі ISO 8601. |
<?php
function searchInpageCreatives($params = [])
{
$ch = curl_init('https://spy.house/api/search/inpage');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_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($body, TRUE);
}
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' => [1, 2, 3], // IDs from /api/filters/countries
'lang_ids' => [1], // IDs from /api/filters/languages
'network_ids' => [5, 10], // IDs from /api/filters/advertising-networks
'browser_ids' => [1, 2], // 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 | Число | Ні | Кількість елементів на сторінці (10-100). За замовчуванням: 10. |
| offset | Число | Ні | Кількість елементів для пропуску. Використовується для пагінації. За замовчуванням: 0. |
| keyword | Рядок | Ні | Ключове слово для фільтрації креативів за заголовком або описом. |
| countries | Масив | Ні | Масив ISO-2 кодів країн (наприклад, ["US", "GB", "DE"]). |
| country_ids | Масив | Ні | Масив ID країн з ендпоінту /api/filters/countries. Має пріоритет над countries. |
| languages | Масив | Ні | Масив ISO кодів мов (наприклад, ["EN", "UK", "DE"]). |
| lang_ids | Масив | Ні | Масив ID мов з ендпоінту /api/filters/languages. Має пріоритет над languages. |
| advertising_networks | Масив | Ні | Масив назв рекламних мереж. |
| network_ids | Масив | Ні | Масив ID мереж з ендпоінту /api/filters/advertising-networks. Має пріоритет над advertising_networks. |
| browsers | Масив | Ні | Масив назв браузерів. |
| browser_ids | Масив | Ні | Масив ID браузерів з ендпоінту /api/filters/browsers. Має пріоритет над browsers. |
| operating_systems | Масив | Ні | Масив значень операційних систем (наприклад, ["windows", "macos", "android"]). |
| devices | Масив | Ні | Масив типів пристроїв (наприклад, ["desktop", "mobile", "tablet"]). |
| date_from | Рядок | Ні | Початкова дата для фільтрації (формат: Y-m-d, наприклад, "2025-01-01"). |
| date_to | Рядок | Ні | Кінцева дата для фільтрації (формат: Y-m-d, наприклад, "2025-12-31"). |
| sort_by | Рядок | Ні | Поле сортування: creation, activity, popularity. |
| sort_order | Рядок | Ні | Напрямок сортування: asc або desc. |
| Параметр | Тип даних | Опис |
|---|---|---|
| status | Рядок | Поле, що вказує на успішне виконання запиту ("success") або помилку ("error"). |
| msg | Рядок | Повідомлення про помилку або додаткова інформація про запит. |
| code | Число | Код відповіді, наприклад, 200 для успішного запиту. |
| data | Object | Масив даних потоків, що відповідають запиту. |
| └ format | Рядок | Формат креативу (push, inpage, facebook, tiktok). |
| └ items | Масив | Масив об'єктів креативів. |
| └ id | Число | Унікальний ідентифікатор креативу. |
| └ title | Рядок | Текст заголовку креативу. |
| └ description | Рядок | Текст опису креативу. |
| └ category | Рядок | Формат/категорія креативу (push, inpage, facebook, tiktok). |
| └ country | Object | Об'єкт інформації про країну (code, name, iso_code_3). |
| └ code | Рядок | ISO 3166-1 alpha-2 код країни (наприклад, "UA" для України). |
| └ name | Рядок | Назва країни англійською. |
| └ iso_code_3 | Рядок | ISO 3166-1 alpha-3 код країни (наприклад, "UKR" для України). |
| └ file_size | Рядок | Форматований загальний розмір файлу. |
| └ icon_url | Рядок | URL зображення іконки креативу. |
| └ 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($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_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($body, TRUE);
}
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' => [1, 2, 3], // IDs from /api/filters/countries
'lang_ids' => [1], // IDs from /api/filters/languages
'network_ids' => [5, 10], // IDs from /api/filters/advertising-networks
'browser_ids' => [1, 2], // 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 може запустити Live Search і повернути scrapingJob для опитування.
Якщо scrapingJob.needStartPolling дорівнює true, викликайте той самий ендпоінт з isPolling=true та job_id для отримання нових елементів. Якщо статус recently_completed або rejected, завдання не створюється і опитування не слід починати.
Live Search запускається лише коли у масиві countries вказано рівно одну країну.
Live Search запускається лише коли вказано непорожнє ключове слово.
URL для запиту
| Параметр | Тип даних | Обов'язковий | Опис |
|---|---|---|---|
| api_key | Рядок | Так | Унікальний API ключ для автентифікації запиту. |
| limit | Число | Ні | Кількість елементів на сторінці (10-100). За замовчуванням: 10. |
| offset | Число | Ні | Кількість елементів для пропуску. Використовується для пагінації. За замовчуванням: 0. |
| keyword | Рядок | Ні | Ключове слово для фільтрації креативів за заголовком або описом. |
| countries | Масив | Ні | Масив ISO-2 кодів країн (наприклад, ["US", "GB", "DE"]). |
| country_ids | Масив | Ні | Масив ID країн з ендпоінту /api/filters/countries. Має пріоритет над countries. |
| languages | Масив | Ні | Масив ISO кодів мов (наприклад, ["EN", "UK", "DE"]). |
| lang_ids | Масив | Ні | Масив ID мов з ендпоінту /api/filters/languages. Має пріоритет над languages. |
| date_from | Рядок | Ні | Початкова дата для фільтрації (формат: Y-m-d, наприклад, "2025-01-01"). |
| date_to | Рядок | Ні | Кінцева дата для фільтрації (формат: Y-m-d, наприклад, "2025-12-31"). |
| sort_by | Рядок | Ні | Поле сортування: creation, activity, popularity. |
| sort_order | Рядок | Ні | Напрямок сортування: asc або desc. |
| status | Рядок | Ні | Фільтр статусу реклами: ALL, ACTIVE, INACTIVE. |
| media_type | Рядок | Ні | Фільтр типу медіа: ALL, IMAGE, VIDEO. |
| search_type | Рядок | Ні | Тип пошуку: keyword_unordered, keyword_exact_phrase. |
| isPolling | Boolean | Ні | Увімкнути опитування для оновлень live search. Використовувати з job_id. |
| lastId | Число | Ні | Останній ID креативу для інкрементального опитування (необов'язково). |
| perPage | Число | Ні | Очікуваний розмір сторінки для виявлення малої кількості результатів (12-96). |
| job_id | Рядок | Ні | ID завдання live search з scrapingJob. Обов'язковий коли isPolling=true. |
| Параметр | Тип даних | Опис |
|---|---|---|
| status | Рядок | Поле, що вказує на успішне виконання запиту ("success") або помилку ("error"). |
| msg | Рядок | Повідомлення про помилку або додаткова інформація про запит. |
| code | Число | Код відповіді, наприклад, 200 для успішного запиту. |
| data | Object | Масив даних потоків, що відповідають запиту. |
| └ format | Рядок | Формат креативу (push, inpage, facebook, tiktok). |
| └ items | Масив | Масив об'єктів креативів. |
| └ id | Число | Унікальний ідентифікатор креативу. |
| └ title | Рядок | Текст заголовку креативу. |
| └ description | Рядок | Текст опису креативу. |
| └ category | Рядок | Формат/категорія креативу (push, inpage, facebook, tiktok). |
| └ country | Object | Об'єкт інформації про країну (code, name, iso_code_3). |
| └ code | Рядок | ISO 3166-1 alpha-2 код країни (наприклад, "UA" для України). |
| └ name | Рядок | Назва країни англійською. |
| └ iso_code_3 | Рядок | ISO 3166-1 alpha-3 код країни (наприклад, "UKR" для України). |
| └ file_size | Рядок | Форматований загальний розмір файлу. |
| └ icon_url | Рядок | URL зображення іконки креативу. |
| └ landing_url | Рядок | URL цільової сторінки. |
| └ created_at | Рядок | Дата створення креативу (формат Y-m-d). |
| └ advertising_networks | Масив | Масив назв рекламних мереж. |
| └ languages | Масив | Масив ISO кодів мов. |
| └ operating_systems | Масив | Масив значень операційних систем. |
| └ browsers | Масив | Масив назв браузерів. |
| └ devices | Масив | Масив типів пристроїв. |
| └ main_image_url | Рядок | URL основного зображення креативу. |
| └ has_video | Boolean | Чи містить креатив відео. |
| └ video_url | Рядок | URL відео (якщо has_video дорівнює true). |
| └ video_duration | Число | Тривалість відео в секундах (якщо застосовно). |
| └ social_likes | Число | Кількість лайків (для соціальної реклами). |
| └ social_comments | Число | Кількість коментарів (для соціальної реклами). |
| └ social_shares | Число | Кількість репостів (для соціальної реклами). |
| └ is_adult | Boolean | Чи містить креатив контент для дорослих. |
| └ is_active | Boolean | Чи активний креатив наразі. |
| └ pagination | Object | Об'єкт інформації про пагінацію. |
| └ total | Число | Загальна кількість креативів, що відповідають фільтрам. |
| └ limit | Число | Кількість елементів на сторінці. |
| └ offset | Число | Поточне зміщення. |
| └ has_more | Boolean | Чи є ще доступні елементи. |
| └ returned_count | Число | Кількість елементів, повернутих у цій відповіді. |
| └ filters_applied | Object | Об'єкт з примененими фільтрами. |
| └ scrapingJob | Object | Об'єкт завдання live search (присутній коли live search запущено або активний). |
| └ type | Рядок | Ідентифікатор типу live search (наприклад, facebook_search). |
| └ status | Рядок | Статус завдання: dispatched, running, post_processing, completed, failed, error, recently_completed, rejected. |
| └ needStartPolling | Boolean | Чи повинен клієнт почати опитування для оновлень. |
| └ needStopPolling | Boolean | Чи повинен клієнт припинити опитування. |
| └ job_id | Рядок | Ідентифікатор завдання для опитування (відсутній коли статус recently_completed або rejected). |
| └ polling_interval_seconds | Число | Рекомендований інтервал опитування в секундах. |
| └ estimatedDuration | Число | Орієнтовна тривалість в секундах (0 коли completed або recently_completed). |
| └ message | Рядок | Додаткове повідомлення про статус від сервера або парсера. |
| └ retry_after_seconds | Число | Скільки чекати перед повторною спробою коли recently_completed/rejected (якщо надано). |
| └ error | Рядок | Деталі помилки (присутні коли статус failed або error). |
| └ timestamp | Рядок | Мітка часу відповіді у форматі ISO 8601. |
<?php
function searchFacebookCreatives($params = [])
{
$ch = curl_init('https://spy.house/api/search/facebook');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_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($body, TRUE);
}
return null;
}
// Example 1: Basic search with API key
$params = [
'api_key' => 'YOUR_API_KEY',
'limit' => 20,
'offset' => 0,
'keyword' => 'casino',
'countries' => ['US'],
];
// Example 2: Social filters (status/media_type/search_type)
$paramsWithSocialFilters = [
'api_key' => 'YOUR_API_KEY',
'limit' => 20,
'offset' => 0,
'keyword' => 'casino',
'countries' => ['US'],
'status' => 'ACTIVE',
'media_type' => 'VIDEO',
'search_type' => 'keyword_unordered',
];
$result = searchFacebookCreatives($paramsWithSocialFilters);
// Example 3: Live search polling (when scrapingJob.needStartPolling is true)
$initial = searchFacebookCreatives([
'api_key' => 'YOUR_API_KEY',
'limit' => 10,
'offset' => 0,
'keyword' => 'casino',
'countries' => ['US'],
'status' => 'ACTIVE',
]);
if ($initial && !empty($initial['data']['scrapingJob'])) {
$scrapingJob = $initial['data']['scrapingJob'];
if (!empty($scrapingJob['needStartPolling']) && !empty($scrapingJob['job_id'])) {
$pollingResult = searchFacebookCreatives([
'api_key' => 'YOUR_API_KEY',
'isPolling' => true,
'job_id' => $scrapingJob['job_id'],
'limit' => 10,
'offset' => 0,
]);
}
}
// Note: If scrapingJob.status is "recently_completed" or "rejected",
// the job will not be created and polling should not be started.
Пошук TikTok креативів
Пошук TikTok-креативів з можливістю фільтрації за різними параметрами. При невеликій кількості результатів API може запустити Live Search і повернути scrapingJob для опитування.
Якщо scrapingJob.needStartPolling дорівнює true, викликайте той самий ендпоінт з isPolling=true та job_id для отримання нових елементів. Якщо статус recently_completed або rejected, завдання не створюється і опитування не слід починати.
Live Search запускається лише коли у масиві countries вказано рівно одну країну.
Live Search запускається лише коли вказано непорожнє ключове слово.
URL для запиту
| Параметр | Тип даних | Обов'язковий | Опис |
|---|---|---|---|
| api_key | Рядок | Так | Унікальний API ключ для автентифікації запиту. |
| limit | Число | Ні | Кількість елементів на сторінці (10-100). За замовчуванням: 10. |
| offset | Число | Ні | Кількість елементів для пропуску. Використовується для пагінації. За замовчуванням: 0. |
| keyword | Рядок | Ні | Ключове слово для фільтрації креативів за заголовком або описом. |
| countries | Масив | Ні | Масив ISO-2 кодів країн (наприклад, ["US", "GB", "DE"]). |
| country_ids | Масив | Ні | Масив ID країн з ендпоінту /api/filters/countries. Має пріоритет над countries. |
| languages | Масив | Ні | Масив ISO кодів мов (наприклад, ["EN", "UK", "DE"]). |
| lang_ids | Масив | Ні | Масив ID мов з ендпоінту /api/filters/languages. Має пріоритет над languages. |
| date_from | Рядок | Ні | Початкова дата для фільтрації (формат: Y-m-d, наприклад, "2025-01-01"). |
| date_to | Рядок | Ні | Кінцева дата для фільтрації (формат: Y-m-d, наприклад, "2025-12-31"). |
| sort_by | Рядок | Ні | Поле сортування: creation, activity, popularity. |
| sort_order | Рядок | Ні | Напрямок сортування: asc або desc. |
| video_duration | Рядок | Ні | Фільтр тривалості відео TikTok: ALL, SHORT, MEDIUM, LONG. |
| isPolling | Boolean | Ні | Увімкнути опитування для оновлень live search. Використовувати з job_id. |
| lastId | Число | Ні | Останній ID креативу для інкрементального опитування (необов'язково). |
| perPage | Число | Ні | Очікуваний розмір сторінки для виявлення малої кількості результатів (12-96). |
| job_id | Рядок | Ні | ID завдання live search з scrapingJob. Обов'язковий коли isPolling=true. |
| Параметр | Тип даних | Опис |
|---|---|---|
| status | Рядок | Поле, що вказує на успішне виконання запиту ("success") або помилку ("error"). |
| msg | Рядок | Повідомлення про помилку або додаткова інформація про запит. |
| code | Число | Код відповіді, наприклад, 200 для успішного запиту. |
| data | Object | Масив даних потоків, що відповідають запиту. |
| └ format | Рядок | Формат креативу (push, inpage, facebook, tiktok). |
| └ items | Масив | Масив об'єктів креативів. |
| └ id | Число | Унікальний ідентифікатор креативу. |
| └ title | Рядок | Текст заголовку креативу. |
| └ description | Рядок | Текст опису креативу. |
| └ category | Рядок | Формат/категорія креативу (push, inpage, facebook, tiktok). |
| └ country | Object | Об'єкт інформації про країну (code, name, iso_code_3). |
| └ code | Рядок | ISO 3166-1 alpha-2 код країни (наприклад, "UA" для України). |
| └ name | Рядок | Назва країни англійською. |
| └ iso_code_3 | Рядок | ISO 3166-1 alpha-3 код країни (наприклад, "UKR" для України). |
| └ file_size | Рядок | Форматований загальний розмір файлу. |
| └ icon_url | Рядок | URL зображення іконки креативу. |
| └ landing_url | Рядок | URL цільової сторінки. |
| └ created_at | Рядок | Дата створення креативу (формат Y-m-d). |
| └ advertising_networks | Масив | Масив назв рекламних мереж. |
| └ languages | Масив | Масив ISO кодів мов. |
| └ operating_systems | Масив | Масив значень операційних систем. |
| └ browsers | Масив | Масив назв браузерів. |
| └ devices | Масив | Масив типів пристроїв. |
| └ main_image_url | Рядок | URL основного зображення креативу. |
| └ has_video | Boolean | Чи містить креатив відео. |
| └ video_url | Рядок | URL відео (якщо has_video дорівнює true). |
| └ video_duration | Число | Тривалість відео в секундах (якщо застосовно). |
| └ social_likes | Число | Кількість лайків (для соціальної реклами). |
| └ social_comments | Число | Кількість коментарів (для соціальної реклами). |
| └ social_shares | Число | Кількість репостів (для соціальної реклами). |
| └ is_adult | Boolean | Чи містить креатив контент для дорослих. |
| └ is_active | Boolean | Чи активний креатив наразі. |
| └ pagination | Object | Об'єкт інформації про пагінацію. |
| └ total | Число | Загальна кількість креативів, що відповідають фільтрам. |
| └ limit | Число | Кількість елементів на сторінці. |
| └ offset | Число | Поточне зміщення. |
| └ has_more | Boolean | Чи є ще доступні елементи. |
| └ returned_count | Число | Кількість елементів, повернутих у цій відповіді. |
| └ filters_applied | Object | Об'єкт з примененими фільтрами. |
| └ scrapingJob | Object | Об'єкт завдання live search (присутній коли live search запущено або активний). |
| └ type | Рядок | Ідентифікатор типу live search (наприклад, facebook_search). |
| └ status | Рядок | Статус завдання: dispatched, running, post_processing, completed, failed, error, recently_completed, rejected. |
| └ needStartPolling | Boolean | Чи повинен клієнт почати опитування для оновлень. |
| └ needStopPolling | Boolean | Чи повинен клієнт припинити опитування. |
| └ job_id | Рядок | Ідентифікатор завдання для опитування (відсутній коли статус recently_completed або rejected). |
| └ polling_interval_seconds | Число | Рекомендований інтервал опитування в секундах. |
| └ estimatedDuration | Число | Орієнтовна тривалість в секундах (0 коли completed або recently_completed). |
| └ message | Рядок | Додаткове повідомлення про статус від сервера або парсера. |
| └ retry_after_seconds | Число | Скільки чекати перед повторною спробою коли recently_completed/rejected (якщо надано). |
| └ error | Рядок | Деталі помилки (присутні коли статус failed або error). |
| └ timestamp | Рядок | Мітка часу відповіді у форматі ISO 8601. |
<?php
function searchTikTokCreatives($params = [])
{
$ch = curl_init('https://spy.house/api/search/tiktok');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_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($body, TRUE);
}
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 отримувача переказу. Має бути дійсним. |
| Параметр | Тип даних | Опис |
|---|---|---|
| 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($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_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($body, TRUE);
}
}
$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($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_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($body, TRUE);
}
}
$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>';
}
Retrieving a list of white pages
URL для запиту
| Параметр | Тип даних | Обов'язковий | Опис |
|---|---|---|---|
| api_key | Рядок | Так | Унікальний API ключ для автентифікації запиту. |
| search | Рядок | Ні | String for searching by White Page name. |
| date_from | Рядок | Ні | Start date for filtering (format: Y-m-d). (YYYY-MM-DD) |
| date_to | Рядок | Ні | End date for filtering (format: Y-m-d). (YYYY-MM-DD) |
| limit | Число | Ні | Number of items per page (1 to 100). Default: 10. |
| page | Число | Ні | Page number, starting from 1. Default: 1. |
| Параметр | Тип даних | Опис |
|---|---|---|
| status | Рядок | Поле, що вказує на успішне виконання запиту ("success") або помилку ("error"). |
| msg | Рядок | Повідомлення про помилку або додаткова інформація про запит. |
| code | Число | Код відповіді, наприклад, 200 для успішного запиту. |
| data.items | Масив | Array of user's White Pages. |
| data.items[].id | Число | Unique identifier of the White Page. |
| data.items[].name | Рядок | Name of the White Page. |
| data.items[].status | Рядок | Status value: generating, pending, in_progress, completed, failed, error. |
| data.items[].status_label | Рядок | Translated status description. |
| data.items[].generator_label | Рядок | AI generator name. |
| data.items[].vertical_label | Рядок | Selected niche/vertical name. |
| data.items[].language_label | Рядок | Target language. |
| data.items[].theme_label | Рядок | Selected template/theme name. |
| data.items[].amount | Число | Price charged for generation (e.g., 5.00) or null. |
| data.items[].can_retry | Boolean | Whether generation can be retried. |
| data.items[].can_download | Boolean | Whether the zip archive is ready to download. |
| data.items[].error_message | Рядок | Localized error reason if generation failed. |
| data.items[].created_at | Рядок | Creation date and time. |
<?php
function get_white_pages($apiKey)
{
$ch = curl_init('https://spy.house/api/white-pages?api_key=' . $apiKey);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$body = curl_exec($ch);
curl_close($ch);
return json_decode($body, TRUE);
}
$result = get_white_pages('YOUR_API_KEY');
print_r($result);
Retrieving generator configuration options
URL для запиту
| Параметр | Тип даних | Обов'язковий | Опис |
|---|---|---|---|
| api_key | Рядок | Так | Унікальний API ключ для автентифікації запиту. |
| Параметр | Тип даних | Опис |
|---|---|---|
| status | Рядок | Поле, що вказує на успішне виконання запиту ("success") або помилку ("error"). |
| msg | Рядок | Повідомлення про помилку або додаткова інформація про запит. |
| code | Число | Код відповіді, наприклад, 200 для успішного запиту. |
| data.generators | Масив | List of available AI generators for id_generator param. |
| data.generators[].id | Число | Numeric ID of the option. |
| data.generators[].slug | Рядок | Slug/value of the option. |
| data.generators[].label | Рядок | Translated name of the option. |
| data.verticals | Масив | List of available niche verticals for id_vertical param. |
| data.verticals[].id | Число | Numeric ID of the option. |
| data.verticals[].slug | Рядок | Slug/value of the option. |
| data.verticals[].label | Рядок | Translated name of the option. |
| data.languages | Масив | List of target languages for id_language param. |
| data.languages[].id | Число | Numeric ID of the option. |
| data.languages[].slug | Рядок | Slug/value of the option. |
| data.languages[].label | Рядок | Translated name of the option. |
| data.themes | Object | Templates map grouped by id_generator key. |
<?php
function get_generator_options($apiKey)
{
$ch = curl_init('https://spy.house/api/white-pages/options?api_key=' . $apiKey);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$body = curl_exec($chcurl_close($ch);
return json_decode($body, TRUE);
}
$result = get_generator_options('YOUR_API_KEY');
print_r($result);
Generating a white page
URL для запиту
| Параметр | Тип даних | Обов'язковий | Опис |
|---|---|---|---|
| api_key | Рядок | Так | Унікальний API ключ для автентифікації запиту. |
| name | Рядок | Так | Name of the White Page (for reference, max 64 chars). |
| id_generator | Число | Так | Generator ID from options endpoint. |
| id_vertical | Число | Так | Vertical ID from options endpoint. |
| id_language | Число | Так | Language ID from options endpoint. |
| theme | Рядок | Так | Theme slug string corresponding to the selected generator. |
| wp_domain | Рядок | Ні | Optional target domain name. |
| wp_company | Рядок | Ні | Optional company name for copy/legal page sections. |
| wp_phone | Рядок | Ні | Optional contact phone number. |
| wp_email | Рядок | Ні | Optional contact email address. |
| wp_keywords | Рядок | Ні | Optional comma-separated keywords to tailor site content. |
| Параметр | Тип даних | Опис |
|---|---|---|
| status | Рядок | Поле, що вказує на успішне виконання запиту ("success") або помилку ("error"). |
| msg | Рядок | Повідомлення про помилку або додаткова інформація про запит. |
| code | Число | Код відповіді, наприклад, 200 для успішного запиту. |
| data.id | Число | Unique identifier of the White Page. |
| data.name | Рядок | Name of the White Page. |
| data.status | Рядок | Status value: generating, pending, in_progress, completed, failed, error. |
| data.status_label | Рядок | Translated status description. |
<?php
function generate_white_page($apiKey, $params)
{
$ch = curl_init('https://spy.house/api/white-pages/generate?api_key=' . $apiKey);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$body = curl_exec($ch);
curl_close($ch);
return json_decode($body, TRUE);
}
$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);
Retrieving generation status
URL для запиту
| Параметр | Тип даних | Обов'язковий | Опис |
|---|---|---|---|
| api_key | Рядок | Так | Унікальний API ключ для автентифікації запиту. |
| Параметр | Тип даних | Опис |
|---|---|---|
| status | Рядок | Поле, що вказує на успішне виконання запиту ("success") або помилку ("error"). |
| msg | Рядок | Повідомлення про помилку або додаткова інформація про запит. |
| code | Число | Код відповіді, наприклад, 200 для успішного запиту. |
| data.id | Число | Unique identifier of the White Page. |
| data.status | Рядок | Status value: generating, pending, in_progress, completed, failed, error. |
| data.status_label | Рядок | Translated status description. |
| data.can_retry | Boolean | Whether generation can be retried. |
| data.can_download | Boolean | Whether the zip archive is ready to download. |
| data.error_message | Рядок | Localized error reason if generation failed. |
<?php
function get_white_page_status($apiKey, $id)
{
$ch = curl_init('https://spy.house/api/white-pages/' . $id . '/status?api_key=' . $apiKey);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$body = curl_exec($ch);
curl_close($ch);
return json_decode($body, TRUE);
}
$result = get_white_page_status('YOUR_API_KEY'123);
print_r($result);
Retrieving download link
URL для запиту
| Параметр | Тип даних | Обов'язковий | Опис |
|---|---|---|---|
| api_key | Рядок | Так | Унікальний API ключ для автентифікації запиту. |
| Параметр | Тип даних | Опис |
|---|---|---|
| status | Рядок | Поле, що вказує на успішне виконання запиту ("success") або помилку ("error"). |
| msg | Рядок | Повідомлення про помилку або додаткова інформація про запит. |
| code | Число | Код відповіді, наприклад, 200 для успішного запиту. |
| data.download_url | Рядок | Temporary authenticated URL to download the zip file. |
<?php
function get_white_page_download_url($apiKey$id)
{
$ch = curl_init('https://spy.house/api/white-pages/' . $id . '/download');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(['api_key' => $apiKey]));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$body = curl_exec($ch);
curl_close($ch);
return json_decode($body, TRUE);
}
$result = get_white_page_download_url('YOUR_API_KEY', 123);
print_r($result);
Downloading white page file
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');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(['api_key' => $apiKey]));
curl_setopt($ch, CURLOPT_TIMEOUT, 300);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_exec($chcurl_close($ch);
fclose($fp);
}
download_white_page_file('YOUR_API_KEY', 123, '/path/to/save/archive.zip');
Deleting a white page
URL для запиту
| Параметр | Тип даних | Обов'язковий | Опис |
|---|---|---|---|
| api_key | Рядок | Так | Унікальний API ключ для автентифікації запиту. |
| Параметр | Тип даних | Опис |
|---|---|---|
| status | Рядок | Поле, що вказує на успішне виконання запиту ("success") або помилку ("error"). |
| msg | Рядок | Повідомлення про помилку або додаткова інформація про запит. |
| code | Число | Код відповіді, наприклад, 200 для успішного запиту. |
| data.deleted | Boolean | True if deletion succeeded. |
<?php
function delete_white_page($apiKey, $id)
{
$ch = curl_init('https://spy.house/api/white-pages/' . $id . '?api_key=' . $apiKey);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$body = curl_exec($ch);
curl_close($ch);
return json_decode($body, TRUE);
}
$result = delete_white_page('YOUR_API_KEY', 123);
print_r($result);
Retrying failed generation
URL для запиту
| Параметр | Тип даних | Обов'язковий | Опис |
|---|---|---|---|
| api_key | Рядок | Так | Унікальний API ключ для автентифікації запиту. |
| Параметр | Тип даних | Опис |
|---|---|---|
| status | Рядок | Поле, що вказує на успішне виконання запиту ("success") або помилку ("error"). |
| msg | Рядок | Повідомлення про помилку або додаткова інформація про запит. |
| code | Число | Код відповіді, наприклад, 200 для успішного запиту. |
| data.id | Число | Unique identifier of the White Page. |
| data.status | Рядок | Status value: generating, pending, in_progress, completed, failed, error. |
| data.generating_label | Рядок | Translated label for the new generating status. |
<?php
function retry_white_page($apiKey, $id)
{
$ch = curl_init('https://spy.house/api/white-pages/' . $id . '/retry?api_key=' . $apiKey);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$body = curl_exec($ch);
curl_close($ch);
return json_decode($body, TRUE);
}
$result = retry_white_page('YOUR_API_KEY', 123);
print_r($result);