API
Dil listesi alma
İstek URL'si
| Parametre | Veri tipi | Gerekli | Açıklama |
|---|---|---|---|
| api_key | String | Evet | İstek doğrulama için benzersiz API anahtarı. |
| Parametre | Veri tipi | Açıklama |
|---|---|---|
| status | String | İsteğin başarılı yürütülmesini ("success") veya hatayı ("error") gösteren alan. |
| msg | String | Hata mesajı veya ek istek bilgisi. |
| code | Sayı | Yanıt kodu, örn., başarılı istek için 200. |
| data | Dizi | Mevcut dillerin dizisi. |
| └ lang_id | Sayı | Benzersiz dil tanımlayıcısı. |
| └ name | String | İngilizce dil adı. |
| └ iso_code | String | ISO dil kodu (örn., İngilizce için "EN", Türkçe için "TR"). |
<?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>';
}
Ülke listesi alma
İstek URL'si
| Parametre | Veri tipi | Gerekli | Açıklama |
|---|---|---|---|
| api_key | String | Evet | İstek doğrulama için benzersiz API anahtarı. |
| Parametre | Veri tipi | Açıklama |
|---|---|---|
| status | String | İsteğin başarılı yürütülmesini ("success") veya hatayı ("error") gösteren alan. |
| msg | String | Hata mesajı veya ek istek bilgisi. |
| code | Sayı | Yanıt kodu, örn., başarılı istek için 200. |
| data | Dizi | Mevcut ülkelerin dizisi. |
| └ country_id | Sayı | Benzersiz ülke tanımlayıcısı. |
| └ name | String | İngilizce ülke adı. |
| └ iso_code | String | ISO 3166-1 alpha-2 ülke kodu (örn., Türkiye için "TR"). |
| └ iso_code_3 | String | ISO 3166-1 alpha-3 ülke kodu (örn., Türkiye için "TUR"). |
<?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>';
}
Tarayıcı listesi alma
İstek URL'si
| Parametre | Veri tipi | Gerekli | Açıklama |
|---|---|---|---|
| api_key | String | Evet | İstek doğrulama için benzersiz API anahtarı. |
| Parametre | Veri tipi | Açıklama |
|---|---|---|
| status | String | İsteğin başarılı yürütülmesini ("success") veya hatayı ("error") gösteren alan. |
| msg | String | Hata mesajı veya ek istek bilgisi. |
| code | Sayı | Yanıt kodu, örn., başarılı istek için 200. |
| data | Dizi | Mevcut tarayıcıların dizisi. |
| └ browser_id | Sayı | Benzersiz tarayıcı tanımlayıcısı. |
| └ name | String | Tarayıcı adı. |
<?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>';
}
Cihaz listesi alma
İstek URL'si
| Parametre | Veri tipi | Gerekli | Açıklama |
|---|---|---|---|
| api_key | String | Evet | İstek doğrulama için benzersiz API anahtarı. |
| Parametre | Veri tipi | Açıklama |
|---|---|---|
| status | String | İsteğin başarılı yürütülmesini ("success") veya hatayı ("error") gösteren alan. |
| msg | String | Hata mesajı veya ek istek bilgisi. |
| code | Sayı | Yanıt kodu, örn., başarılı istek için 200. |
| data | Dizi | Mevcut cihaz türlerinin dizisi. |
| └ device_id | Sayı | Benzersiz cihaz türü tanımlayıcısı. |
| └ name | String | Cihaz türü görüntüleme adı. |
| └ value | String | API istekleri için cihaz türü değeri. |
<?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>';
}
İşletim sistemi listesi alma
İstek URL'si
| Parametre | Veri tipi | Gerekli | Açıklama |
|---|---|---|---|
| api_key | String | Evet | İstek doğrulama için benzersiz API anahtarı. |
| Parametre | Veri tipi | Açıklama |
|---|---|---|
| status | String | İsteğin başarılı yürütülmesini ("success") veya hatayı ("error") gösteren alan. |
| msg | String | Hata mesajı veya ek istek bilgisi. |
| code | Sayı | Yanıt kodu, örn., başarılı istek için 200. |
| data | Dizi | Mevcut işletim sistemlerinin dizisi. |
| └ os_id | Sayı | Benzersiz işletim sistemi tanımlayıcısı. |
| └ name | String | İşletim sistemi görüntüleme adı. |
| └ value | String | API istekleri için işletim sistemi değeri. |
<?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>';
}
Reklam ağı listesi alma
İstek URL'si
| Parametre | Veri tipi | Gerekli | Açıklama |
|---|---|---|---|
| api_key | String | Evet | İstek doğrulama için benzersiz API anahtarı. |
| Parametre | Veri tipi | Açıklama |
|---|---|---|
| status | String | İsteğin başarılı yürütülmesini ("success") veya hatayı ("error") gösteren alan. |
| msg | String | Hata mesajı veya ek istek bilgisi. |
| code | Sayı | Yanıt kodu, örn., başarılı istek için 200. |
| data | Dizi | Mevcut reklam ağlarının dizisi. |
| └ network_id | Sayı | Benzersiz reklam ağı tanımlayıcısı. |
| └ name | String | Reklam ağı görüntüleme adı. |
| └ value | String | API istekleri için reklam ağı değeri. |
| └ logo | String | Reklam ağı logosu URL'si. |
<?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 reklamları ara
Çeşitli filtrelerle push reklamları arama.
İstek URL'si
| Parametre | Veri tipi | Gerekli | Açıklama |
|---|---|---|---|
| api_key | String | Evet | İstek doğrulama için benzersiz API anahtarı. |
| limit | Sayı | Hayır | Sayfa başına öğe sayısı (10-100). Varsayılan: 10. |
| offset | Sayı | Hayır | Atlanacak öğe sayısı. Sayfalama için kullanılır. Varsayılan: 0. |
| keyword | String | Hayır | Reklamları başlık veya açıklamaya göre filtrelemek için arama anahtar kelimesi. |
| countries | Dizi | Hayır | ISO-2 ülke kodları dizisi (örn., ["US", "GB", "DE"]). |
| country_ids | Dizi | Hayır | /api/filters/countries endpoint'inden ülke ID'leri dizisi. countries'den önceliklidir. |
| languages | Dizi | Hayır | ISO dil kodları dizisi (örn., ["EN", "TR", "DE"]). |
| lang_ids | Dizi | Hayır | /api/filters/languages endpoint'inden dil ID'leri dizisi. languages'den önceliklidir. |
| advertising_networks | Dizi | Hayır | Reklam ağı adları dizisi. |
| network_ids | Dizi | Hayır | /api/filters/advertising-networks endpoint'inden ağ ID'leri dizisi. advertising_networks'den önceliklidir. |
| browsers | Dizi | Hayır | Tarayıcı adları dizisi. |
| browser_ids | Dizi | Hayır | /api/filters/browsers endpoint'inden tarayıcı ID'leri dizisi. browsers'dan önceliklidir. |
| operating_systems | Dizi | Hayır | İşletim sistemi değerleri dizisi (örn., ["windows", "macos", "android"]). |
| devices | Dizi | Hayır | Cihaz türleri dizisi (örn., ["desktop", "mobile", "tablet"]). |
| date_from | String | Hayır | Filtreleme için başlangıç tarihi (format: Y-m-d, örn., "2025-01-01"). |
| date_to | String | Hayır | Filtreleme için bitiş tarihi (format: Y-m-d, örn., "2025-12-31"). |
| sort_by | String | Hayır | Sıralama alanı: creation, activity, popularity. |
| sort_order | String | Hayır | Sıralama yönü: asc veya desc. |
| only_adult | Boolean | Hayır | Yalnızca yetişkin içeriği filtrele. Boolean (true/false). |
| Parametre | Veri tipi | Açıklama |
|---|---|---|
| status | String | İsteğin başarılı yürütülmesini ("success") veya hatayı ("error") gösteren alan. |
| msg | String | Hata mesajı veya ek istek bilgisi. |
| code | Sayı | Yanıt kodu, örn., başarılı istek için 200. |
| data | Object | İstekle eşleşen akış verisi dizisi. |
| └ format | String | Reklam formatı (push, inpage, facebook, tiktok). |
| └ items | Dizi | Reklam nesneleri dizisi. |
| └ id | Sayı | Benzersiz reklam tanımlayıcısı. |
| └ title | String | Reklam başlık metni. |
| └ description | String | Reklam açıklama metni. |
| └ category | String | Reklam formatı/kategorisi (push, inpage, facebook, tiktok). |
| └ country | Object | Ülke bilgisi nesnesi (code, name, iso_code_3). |
| └ code | String | ISO 3166-1 alpha-2 ülke kodu (örn., Türkiye için "TR"). |
| └ name | String | İngilizce ülke adı. |
| └ iso_code_3 | String | ISO 3166-1 alpha-3 ülke kodu (örn., Türkiye için "TUR"). |
| └ file_size | String | Formatlanmış toplam dosya boyutu. |
| └ icon_url | String | Reklam simge resminin URL'si. |
| └ landing_url | String | Hedef sayfa URL'si. |
| └ created_at | String | Reklam oluşturma tarihi (Y-m-d formatında). |
| └ advertising_networks | Dizi | Reklam ağı adları dizisi. |
| └ languages | Dizi | ISO dil kodları dizisi. |
| └ operating_systems | Dizi | İşletim sistemi değerleri dizisi. |
| └ browsers | Dizi | Tarayıcı adları dizisi. |
| └ devices | Dizi | Cihaz türleri dizisi. |
| └ main_image_url | String | Reklamın ana resminin URL'si. |
| └ is_adult | Boolean | Reklamın yetişkin içeriği içerip içermediği. |
| └ is_active | Boolean | Reklamın şu anda aktif olup olmadığı. |
| └ pagination | Object | Sayfalama bilgisi nesnesi. |
| └ total | Sayı | Filtrelere uyan toplam reklam sayısı. |
| └ limit | Sayı | Sayfa başına öğe sayısı. |
| └ offset | Sayı | Mevcut offset. |
| └ has_more | Boolean | Daha fazla öğe mevcut olup olmadığı. |
| └ returned_count | Sayı | Bu yanıtta döndürülen öğe sayısı. |
| └ filters_applied | Object | Uygulanan filtreleri içeren nesne. |
| └ timestamp | String | ISO 8601 formatında yanıt zaman damgası. |
<?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 reklamları ara
Çeşitli filtrelerle inpage reklamları arama.
İstek URL'si
| Parametre | Veri tipi | Gerekli | Açıklama |
|---|---|---|---|
| api_key | String | Evet | İstek doğrulama için benzersiz API anahtarı. |
| limit | Sayı | Hayır | Sayfa başına öğe sayısı (10-100). Varsayılan: 10. |
| offset | Sayı | Hayır | Atlanacak öğe sayısı. Sayfalama için kullanılır. Varsayılan: 0. |
| keyword | String | Hayır | Reklamları başlık veya açıklamaya göre filtrelemek için arama anahtar kelimesi. |
| countries | Dizi | Hayır | ISO-2 ülke kodları dizisi (örn., ["US", "GB", "DE"]). |
| country_ids | Dizi | Hayır | /api/filters/countries endpoint'inden ülke ID'leri dizisi. countries'den önceliklidir. |
| languages | Dizi | Hayır | ISO dil kodları dizisi (örn., ["EN", "TR", "DE"]). |
| lang_ids | Dizi | Hayır | /api/filters/languages endpoint'inden dil ID'leri dizisi. languages'den önceliklidir. |
| advertising_networks | Dizi | Hayır | Reklam ağı adları dizisi. |
| network_ids | Dizi | Hayır | /api/filters/advertising-networks endpoint'inden ağ ID'leri dizisi. advertising_networks'den önceliklidir. |
| browsers | Dizi | Hayır | Tarayıcı adları dizisi. |
| browser_ids | Dizi | Hayır | /api/filters/browsers endpoint'inden tarayıcı ID'leri dizisi. browsers'dan önceliklidir. |
| operating_systems | Dizi | Hayır | İşletim sistemi değerleri dizisi (örn., ["windows", "macos", "android"]). |
| devices | Dizi | Hayır | Cihaz türleri dizisi (örn., ["desktop", "mobile", "tablet"]). |
| date_from | String | Hayır | Filtreleme için başlangıç tarihi (format: Y-m-d, örn., "2025-01-01"). |
| date_to | String | Hayır | Filtreleme için bitiş tarihi (format: Y-m-d, örn., "2025-12-31"). |
| sort_by | String | Hayır | Sıralama alanı: creation, activity, popularity. |
| sort_order | String | Hayır | Sıralama yönü: asc veya desc. |
| only_adult | Boolean | Hayır | Yalnızca yetişkin içeriği filtrele. Boolean (true/false). |
| Parametre | Veri tipi | Açıklama |
|---|---|---|
| status | String | İsteğin başarılı yürütülmesini ("success") veya hatayı ("error") gösteren alan. |
| msg | String | Hata mesajı veya ek istek bilgisi. |
| code | Sayı | Yanıt kodu, örn., başarılı istek için 200. |
| data | Object | İstekle eşleşen akış verisi dizisi. |
| └ format | String | Reklam formatı (push, inpage, facebook, tiktok). |
| └ items | Dizi | Reklam nesneleri dizisi. |
| └ id | Sayı | Benzersiz reklam tanımlayıcısı. |
| └ title | String | Reklam başlık metni. |
| └ description | String | Reklam açıklama metni. |
| └ category | String | Reklam formatı/kategorisi (push, inpage, facebook, tiktok). |
| └ country | Object | Ülke bilgisi nesnesi (code, name, iso_code_3). |
| └ code | String | ISO 3166-1 alpha-2 ülke kodu (örn., Türkiye için "TR"). |
| └ name | String | İngilizce ülke adı. |
| └ iso_code_3 | String | ISO 3166-1 alpha-3 ülke kodu (örn., Türkiye için "TUR"). |
| └ file_size | String | Formatlanmış toplam dosya boyutu. |
| └ icon_url | String | Reklam simge resminin URL'si. |
| └ landing_url | String | Hedef sayfa URL'si. |
| └ created_at | String | Reklam oluşturma tarihi (Y-m-d formatında). |
| └ advertising_networks | Dizi | Reklam ağı adları dizisi. |
| └ languages | Dizi | ISO dil kodları dizisi. |
| └ operating_systems | Dizi | İşletim sistemi değerleri dizisi. |
| └ browsers | Dizi | Tarayıcı adları dizisi. |
| └ devices | Dizi | Cihaz türleri dizisi. |
| └ main_image_url | String | Reklamın ana resminin URL'si. |
| └ is_adult | Boolean | Reklamın yetişkin içeriği içerip içermediği. |
| └ is_active | Boolean | Reklamın şu anda aktif olup olmadığı. |
| └ pagination | Object | Sayfalama bilgisi nesnesi. |
| └ total | Sayı | Filtrelere uyan toplam reklam sayısı. |
| └ limit | Sayı | Sayfa başına öğe sayısı. |
| └ offset | Sayı | Mevcut offset. |
| └ has_more | Boolean | Daha fazla öğe mevcut olup olmadığı. |
| └ returned_count | Sayı | Bu yanıtta döndürülen öğe sayısı. |
| └ filters_applied | Object | Uygulanan filtreleri içeren nesne. |
| └ timestamp | String | ISO 8601 formatında yanıt zaman damgası. |
<?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
Facebook reklamları ara
Çeşitli filtrelerle Facebook reklamları arama. Sonuçlar az olduğunda, API canlı arama başlatabilir ve polling için scrapingJob döndürebilir.
scrapingJob.needStartPolling true ise, yeni öğeler almak için aynı endpoint'i isPolling=true ve job_id ile çağırın. Durum recently_completed veya rejected ise, job oluşturulmaz ve polling başlatılmamalıdır.
Canlı arama yalnızca countries dizisinde tam olarak bir ülke belirtildiğinde başlar.
Canlı arama yalnızca boş olmayan bir anahtar kelime sağlandığında başlar.
İstek URL'si
| Parametre | Veri tipi | Gerekli | Açıklama |
|---|---|---|---|
| api_key | String | Evet | İstek doğrulama için benzersiz API anahtarı. |
| limit | Sayı | Hayır | Sayfa başına öğe sayısı (10-100). Varsayılan: 10. |
| offset | Sayı | Hayır | Atlanacak öğe sayısı. Sayfalama için kullanılır. Varsayılan: 0. |
| keyword | String | Hayır | Reklamları başlık veya açıklamaya göre filtrelemek için arama anahtar kelimesi. |
| countries | Dizi | Hayır | ISO-2 ülke kodları dizisi (örn., ["US", "GB", "DE"]). |
| country_ids | Dizi | Hayır | /api/filters/countries endpoint'inden ülke ID'leri dizisi. countries'den önceliklidir. |
| languages | Dizi | Hayır | ISO dil kodları dizisi (örn., ["EN", "TR", "DE"]). |
| lang_ids | Dizi | Hayır | /api/filters/languages endpoint'inden dil ID'leri dizisi. languages'den önceliklidir. |
| date_from | String | Hayır | Filtreleme için başlangıç tarihi (format: Y-m-d, örn., "2025-01-01"). |
| date_to | String | Hayır | Filtreleme için bitiş tarihi (format: Y-m-d, örn., "2025-12-31"). |
| sort_by | String | Hayır | Sıralama alanı: creation, activity, popularity. |
| sort_order | String | Hayır | Sıralama yönü: asc veya desc. |
| status | String | Hayır | Reklam durumu filtresi: ALL, ACTIVE, INACTIVE. |
| media_type | String | Hayır | Medya türü filtresi: ALL, IMAGE, VIDEO. |
| search_type | String | Hayır | Arama türü: keyword_unordered, keyword_exact_phrase. |
| isPolling | Boolean | Hayır | Canlı arama güncellemeleri için polling'i etkinleştir. job_id ile kullanın. |
| lastId | Sayı | Hayır | Artımlı polling için alınan son reklam ID'si (isteğe bağlı). |
| perPage | Sayı | Hayır | Düşük sonuç tespiti için beklenen sayfa boyutu (12-96). |
| job_id | String | Hayır | scrapingJob'dan canlı arama job ID'si. isPolling=true olduğunda gereklidir. |
| Parametre | Veri tipi | Açıklama |
|---|---|---|
| status | String | İsteğin başarılı yürütülmesini ("success") veya hatayı ("error") gösteren alan. |
| msg | String | Hata mesajı veya ek istek bilgisi. |
| code | Sayı | Yanıt kodu, örn., başarılı istek için 200. |
| data | Object | İstekle eşleşen akış verisi dizisi. |
| └ format | String | Reklam formatı (push, inpage, facebook, tiktok). |
| └ items | Dizi | Reklam nesneleri dizisi. |
| └ id | Sayı | Benzersiz reklam tanımlayıcısı. |
| └ title | String | Reklam başlık metni. |
| └ description | String | Reklam açıklama metni. |
| └ category | String | Reklam formatı/kategorisi (push, inpage, facebook, tiktok). |
| └ country | Object | Ülke bilgisi nesnesi (code, name, iso_code_3). |
| └ code | String | ISO 3166-1 alpha-2 ülke kodu (örn., Türkiye için "TR"). |
| └ name | String | İngilizce ülke adı. |
| └ iso_code_3 | String | ISO 3166-1 alpha-3 ülke kodu (örn., Türkiye için "TUR"). |
| └ file_size | String | Formatlanmış toplam dosya boyutu. |
| └ icon_url | String | Reklam simge resminin URL'si. |
| └ landing_url | String | Hedef sayfa URL'si. |
| └ created_at | String | Reklam oluşturma tarihi (Y-m-d formatında). |
| └ advertising_networks | Dizi | Reklam ağı adları dizisi. |
| └ languages | Dizi | ISO dil kodları dizisi. |
| └ operating_systems | Dizi | İşletim sistemi değerleri dizisi. |
| └ browsers | Dizi | Tarayıcı adları dizisi. |
| └ devices | Dizi | Cihaz türleri dizisi. |
| └ main_image_url | String | Reklamın ana resminin URL'si. |
| └ has_video | Boolean | Reklamın video içerip içermediği. |
| └ video_url | String | Video URL'si (has_video true ise). |
| └ video_duration | Sayı | Video süresi saniye cinsinden (uygunsa). |
| └ social_likes | Sayı | Beğeni sayısı (sosyal reklamlar için). |
| └ social_comments | Sayı | Yorum sayısı (sosyal reklamlar için). |
| └ social_shares | Sayı | Paylaşım sayısı (sosyal reklamlar için). |
| └ is_adult | Boolean | Reklamın yetişkin içeriği içerip içermediği. |
| └ is_active | Boolean | Reklamın şu anda aktif olup olmadığı. |
| └ pagination | Object | Sayfalama bilgisi nesnesi. |
| └ total | Sayı | Filtrelere uyan toplam reklam sayısı. |
| └ limit | Sayı | Sayfa başına öğe sayısı. |
| └ offset | Sayı | Mevcut offset. |
| └ has_more | Boolean | Daha fazla öğe mevcut olup olmadığı. |
| └ returned_count | Sayı | Bu yanıtta döndürülen öğe sayısı. |
| └ filters_applied | Object | Uygulanan filtreleri içeren nesne. |
| └ scrapingJob | Object | Canlı arama job nesnesi (canlı arama başlatıldığında veya aktif olduğunda mevcut). |
| └ type | String | Canlı arama türü tanımlayıcısı (örn., facebook_search). |
| └ status | String | Job durumu: dispatched, running, post_processing, completed, failed, error, recently_completed, rejected. |
| └ needStartPolling | Boolean | İstemcinin güncellemeler için polling başlatması gerekip gerekmediği. |
| └ needStopPolling | Boolean | İstemcinin polling'i durdurması gerekip gerekmediği. |
| └ job_id | String | Polling için job tanımlayıcısı (durum recently_completed veya rejected olduğunda mevcut değil). |
| └ polling_interval_seconds | Sayı | Önerilen polling aralığı saniye cinsinden. |
| └ estimatedDuration | Sayı | Tahmini süre saniye cinsinden (completed veya recently_completed olduğunda 0). |
| └ message | String | Sunucudan veya parser'dan ek durum mesajı. |
| └ retry_after_seconds | Sayı | recently_completed/rejected durumunda yeniden denemeden önce beklenecek süre (sağlanmışsa). |
| └ error | String | Hata detayları (durum failed veya error olduğunda mevcut). |
| └ timestamp | String | ISO 8601 formatında yanıt zaman damgası. |
<?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 reklamları ara
Çeşitli filtrelerle TikTok reklamları arama. Sonuçlar az olduğunda, API canlı arama başlatabilir ve polling için scrapingJob döndürebilir.
scrapingJob.needStartPolling true ise, yeni öğeler almak için aynı endpoint'i isPolling=true ve job_id ile çağırın. Durum recently_completed veya rejected ise, job oluşturulmaz ve polling başlatılmamalıdır.
Canlı arama yalnızca countries dizisinde tam olarak bir ülke belirtildiğinde başlar.
Canlı arama yalnızca boş olmayan bir anahtar kelime sağlandığında başlar.
İstek URL'si
| Parametre | Veri tipi | Gerekli | Açıklama |
|---|---|---|---|
| api_key | String | Evet | İstek doğrulama için benzersiz API anahtarı. |
| limit | Sayı | Hayır | Sayfa başına öğe sayısı (10-100). Varsayılan: 10. |
| offset | Sayı | Hayır | Atlanacak öğe sayısı. Sayfalama için kullanılır. Varsayılan: 0. |
| keyword | String | Hayır | Reklamları başlık veya açıklamaya göre filtrelemek için arama anahtar kelimesi. |
| countries | Dizi | Hayır | ISO-2 ülke kodları dizisi (örn., ["US", "GB", "DE"]). |
| country_ids | Dizi | Hayır | /api/filters/countries endpoint'inden ülke ID'leri dizisi. countries'den önceliklidir. |
| languages | Dizi | Hayır | ISO dil kodları dizisi (örn., ["EN", "TR", "DE"]). |
| lang_ids | Dizi | Hayır | /api/filters/languages endpoint'inden dil ID'leri dizisi. languages'den önceliklidir. |
| date_from | String | Hayır | Filtreleme için başlangıç tarihi (format: Y-m-d, örn., "2025-01-01"). |
| date_to | String | Hayır | Filtreleme için bitiş tarihi (format: Y-m-d, örn., "2025-12-31"). |
| sort_by | String | Hayır | Sıralama alanı: creation, activity, popularity. |
| sort_order | String | Hayır | Sıralama yönü: asc veya desc. |
| video_duration | String | Hayır | TikTok video süresi filtresi: ALL, SHORT, MEDIUM, LONG. |
| isPolling | Boolean | Hayır | Canlı arama güncellemeleri için polling'i etkinleştir. job_id ile kullanın. |
| lastId | Sayı | Hayır | Artımlı polling için alınan son reklam ID'si (isteğe bağlı). |
| perPage | Sayı | Hayır | Düşük sonuç tespiti için beklenen sayfa boyutu (12-96). |
| job_id | String | Hayır | scrapingJob'dan canlı arama job ID'si. isPolling=true olduğunda gereklidir. |
| Parametre | Veri tipi | Açıklama |
|---|---|---|
| status | String | İsteğin başarılı yürütülmesini ("success") veya hatayı ("error") gösteren alan. |
| msg | String | Hata mesajı veya ek istek bilgisi. |
| code | Sayı | Yanıt kodu, örn., başarılı istek için 200. |
| data | Object | İstekle eşleşen akış verisi dizisi. |
| └ format | String | Reklam formatı (push, inpage, facebook, tiktok). |
| └ items | Dizi | Reklam nesneleri dizisi. |
| └ id | Sayı | Benzersiz reklam tanımlayıcısı. |
| └ title | String | Reklam başlık metni. |
| └ description | String | Reklam açıklama metni. |
| └ category | String | Reklam formatı/kategorisi (push, inpage, facebook, tiktok). |
| └ country | Object | Ülke bilgisi nesnesi (code, name, iso_code_3). |
| └ code | String | ISO 3166-1 alpha-2 ülke kodu (örn., Türkiye için "TR"). |
| └ name | String | İngilizce ülke adı. |
| └ iso_code_3 | String | ISO 3166-1 alpha-3 ülke kodu (örn., Türkiye için "TUR"). |
| └ file_size | String | Formatlanmış toplam dosya boyutu. |
| └ icon_url | String | Reklam simge resminin URL'si. |
| └ landing_url | String | Hedef sayfa URL'si. |
| └ created_at | String | Reklam oluşturma tarihi (Y-m-d formatında). |
| └ advertising_networks | Dizi | Reklam ağı adları dizisi. |
| └ languages | Dizi | ISO dil kodları dizisi. |
| └ operating_systems | Dizi | İşletim sistemi değerleri dizisi. |
| └ browsers | Dizi | Tarayıcı adları dizisi. |
| └ devices | Dizi | Cihaz türleri dizisi. |
| └ main_image_url | String | Reklamın ana resminin URL'si. |
| └ has_video | Boolean | Reklamın video içerip içermediği. |
| └ video_url | String | Video URL'si (has_video true ise). |
| └ video_duration | Sayı | Video süresi saniye cinsinden (uygunsa). |
| └ social_likes | Sayı | Beğeni sayısı (sosyal reklamlar için). |
| └ social_comments | Sayı | Yorum sayısı (sosyal reklamlar için). |
| └ social_shares | Sayı | Paylaşım sayısı (sosyal reklamlar için). |
| └ is_adult | Boolean | Reklamın yetişkin içeriği içerip içermediği. |
| └ is_active | Boolean | Reklamın şu anda aktif olup olmadığı. |
| └ pagination | Object | Sayfalama bilgisi nesnesi. |
| └ total | Sayı | Filtrelere uyan toplam reklam sayısı. |
| └ limit | Sayı | Sayfa başına öğe sayısı. |
| └ offset | Sayı | Mevcut offset. |
| └ has_more | Boolean | Daha fazla öğe mevcut olup olmadığı. |
| └ returned_count | Sayı | Bu yanıtta döndürülen öğe sayısı. |
| └ filters_applied | Object | Uygulanan filtreleri içeren nesne. |
| └ scrapingJob | Object | Canlı arama job nesnesi (canlı arama başlatıldığında veya aktif olduğunda mevcut). |
| └ type | String | Canlı arama türü tanımlayıcısı (örn., facebook_search). |
| └ status | String | Job durumu: dispatched, running, post_processing, completed, failed, error, recently_completed, rejected. |
| └ needStartPolling | Boolean | İstemcinin güncellemeler için polling başlatması gerekip gerekmediği. |
| └ needStopPolling | Boolean | İstemcinin polling'i durdurması gerekip gerekmediği. |
| └ job_id | String | Polling için job tanımlayıcısı (durum recently_completed veya rejected olduğunda mevcut değil). |
| └ polling_interval_seconds | Sayı | Önerilen polling aralığı saniye cinsinden. |
| └ estimatedDuration | Sayı | Tahmini süre saniye cinsinden (completed veya recently_completed olduğunda 0). |
| └ message | String | Sunucudan veya parser'dan ek durum mesajı. |
| └ retry_after_seconds | Sayı | recently_completed/rejected durumunda yeniden denemeden önce beklenecek süre (sağlanmışsa). |
| └ error | String | Hata detayları (durum failed veya error olduğunda mevcut). |
| └ timestamp | String | ISO 8601 formatında yanıt zaman damgası. |
<?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.
Para transferi
İstek URL'si
| Parametre | Veri tipi | Gerekli | Açıklama |
|---|---|---|---|
| api_key | String | Evet | İstek doğrulama için benzersiz API anahtarı. |
| amount | Sayı | Evet | Transfer tutarı (minimum 10 USD). |
| String | Evet | Alıcının e-posta adresi. Geçerli olmalıdır. |
| Parametre | Veri tipi | Açıklama |
|---|---|---|
| status | String | İsteğin başarılı yürütülmesini ("success") veya hatayı ("error") gösteren alan. |
| msg | String | Hata mesajı veya ek istek bilgisi. |
| code | Sayı | Yanıt kodu, örn., başarılı istek için 200. |
| transaction_number | String | Transferle ilişkili benzersiz işlem numarası. |
<?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>';
}
Hesap bakiyesi alma
İstek URL'si
| Parametre | Veri tipi | Gerekli | Açıklama |
|---|---|---|---|
| api_key | String | Evet | İstek doğrulama için benzersiz API anahtarı. |
| Parametre | Veri tipi | Açıklama |
|---|---|---|
| status | String | İsteğin başarılı yürütülmesini ("success") veya hatayı ("error") gösteren alan. |
| msg | String | Hata mesajı veya ek istek bilgisi. |
| code | Sayı | Yanıt kodu, örn., başarılı istek için 200. |
| balance | Sayı | Kullanıcının mevcut hesap bakiyesi. |
<?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
İstek URL'si
| Parametre | Veri tipi | Gerekli | Açıklama |
|---|---|---|---|
| api_key | String | Evet | İstek doğrulama için benzersiz API anahtarı. |
| search | String | Hayır | String for searching by White Page name. |
| date_from | String | Hayır | Start date for filtering (format: Y-m-d). (YYYY-MM-DD) |
| date_to | String | Hayır | End date for filtering (format: Y-m-d). (YYYY-MM-DD) |
| limit | Sayı | Hayır | Number of items per page (1 to 100). Default: 10. |
| page | Sayı | Hayır | Page number, starting from 1. Default: 1. |
| Parametre | Veri tipi | Açıklama |
|---|---|---|
| status | String | İsteğin başarılı yürütülmesini ("success") veya hatayı ("error") gösteren alan. |
| msg | String | Hata mesajı veya ek istek bilgisi. |
| code | Sayı | Yanıt kodu, örn., başarılı istek için 200. |
| data.items | Dizi | Array of user's White Pages. |
| data.items[].id | Sayı | Unique identifier of the White Page. |
| data.items[].name | String | Name of the White Page. |
| data.items[].status | String | Status value: generating, pending, in_progress, completed, failed, error. |
| data.items[].status_label | String | Translated status description. |
| data.items[].generator_label | String | AI generator name. |
| data.items[].vertical_label | String | Selected niche/vertical name. |
| data.items[].language_label | String | Target language. |
| data.items[].theme_label | String | Selected template/theme name. |
| data.items[].amount | Sayı | 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 | String | Localized error reason if generation failed. |
| data.items[].created_at | String | 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
İstek URL'si
| Parametre | Veri tipi | Gerekli | Açıklama |
|---|---|---|---|
| api_key | String | Evet | İstek doğrulama için benzersiz API anahtarı. |
| Parametre | Veri tipi | Açıklama |
|---|---|---|
| status | String | İsteğin başarılı yürütülmesini ("success") veya hatayı ("error") gösteren alan. |
| msg | String | Hata mesajı veya ek istek bilgisi. |
| code | Sayı | Yanıt kodu, örn., başarılı istek için 200. |
| data.generators | Dizi | List of available AI generators for id_generator param. |
| data.generators[].id | Sayı | Numeric ID of the option. |
| data.generators[].slug | String | Slug/value of the option. |
| data.generators[].label | String | Translated name of the option. |
| data.verticals | Dizi | List of available niche verticals for id_vertical param. |
| data.verticals[].id | Sayı | Numeric ID of the option. |
| data.verticals[].slug | String | Slug/value of the option. |
| data.verticals[].label | String | Translated name of the option. |
| data.languages | Dizi | List of target languages for id_language param. |
| data.languages[].id | Sayı | Numeric ID of the option. |
| data.languages[].slug | String | Slug/value of the option. |
| data.languages[].label | String | 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
İstek URL'si
| Parametre | Veri tipi | Gerekli | Açıklama |
|---|---|---|---|
| api_key | String | Evet | İstek doğrulama için benzersiz API anahtarı. |
| name | String | Evet | Name of the White Page (for reference, max 64 chars). |
| id_generator | Sayı | Evet | Generator ID from options endpoint. |
| id_vertical | Sayı | Evet | Vertical ID from options endpoint. |
| id_language | Sayı | Evet | Language ID from options endpoint. |
| theme | String | Evet | Theme slug string corresponding to the selected generator. |
| wp_domain | String | Hayır | Optional target domain name. |
| wp_company | String | Hayır | Optional company name for copy/legal page sections. |
| wp_phone | String | Hayır | Optional contact phone number. |
| wp_email | String | Hayır | Optional contact email address. |
| wp_keywords | String | Hayır | Optional comma-separated keywords to tailor site content. |
| Parametre | Veri tipi | Açıklama |
|---|---|---|
| status | String | İsteğin başarılı yürütülmesini ("success") veya hatayı ("error") gösteren alan. |
| msg | String | Hata mesajı veya ek istek bilgisi. |
| code | Sayı | Yanıt kodu, örn., başarılı istek için 200. |
| data.id | Sayı | Unique identifier of the White Page. |
| data.name | String | Name of the White Page. |
| data.status | String | Status value: generating, pending, in_progress, completed, failed, error. |
| data.status_label | String | 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
İstek URL'si
| Parametre | Veri tipi | Gerekli | Açıklama |
|---|---|---|---|
| api_key | String | Evet | İstek doğrulama için benzersiz API anahtarı. |
| Parametre | Veri tipi | Açıklama |
|---|---|---|
| status | String | İsteğin başarılı yürütülmesini ("success") veya hatayı ("error") gösteren alan. |
| msg | String | Hata mesajı veya ek istek bilgisi. |
| code | Sayı | Yanıt kodu, örn., başarılı istek için 200. |
| data.id | Sayı | Unique identifier of the White Page. |
| data.status | String | Status value: generating, pending, in_progress, completed, failed, error. |
| data.status_label | String | 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 | String | 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
İstek URL'si
| Parametre | Veri tipi | Gerekli | Açıklama |
|---|---|---|---|
| api_key | String | Evet | İstek doğrulama için benzersiz API anahtarı. |
| Parametre | Veri tipi | Açıklama |
|---|---|---|
| status | String | İsteğin başarılı yürütülmesini ("success") veya hatayı ("error") gösteren alan. |
| msg | String | Hata mesajı veya ek istek bilgisi. |
| code | Sayı | Yanıt kodu, örn., başarılı istek için 200. |
| data.download_url | String | 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?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_download_url('YOUR_API_KEY', 123);
print_r($result);
Downloading white page file
İstek URL'si
| Parametre | Veri tipi | Gerekli | Açıklama |
|---|---|---|---|
| api_key | String | Evet | İstek doğrulama için benzersiz API anahtarı. |
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($ch, CURLOPT_FILE, $fp);
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
İstek URL'si
| Parametre | Veri tipi | Gerekli | Açıklama |
|---|---|---|---|
| api_key | String | Evet | İstek doğrulama için benzersiz API anahtarı. |
| Parametre | Veri tipi | Açıklama |
|---|---|---|
| status | String | İsteğin başarılı yürütülmesini ("success") veya hatayı ("error") gösteren alan. |
| msg | String | Hata mesajı veya ek istek bilgisi. |
| code | Sayı | Yanıt kodu, örn., başarılı istek için 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
İstek URL'si
| Parametre | Veri tipi | Gerekli | Açıklama |
|---|---|---|---|
| api_key | String | Evet | İstek doğrulama için benzersiz API anahtarı. |
| Parametre | Veri tipi | Açıklama |
|---|---|---|
| status | String | İsteğin başarılı yürütülmesini ("success") veya hatayı ("error") gösteren alan. |
| msg | String | Hata mesajı veya ek istek bilgisi. |
| code | Sayı | Yanıt kodu, örn., başarılı istek için 200. |
| data.id | Sayı | Unique identifier of the White Page. |
| data.status | String | Status value: generating, pending, in_progress, completed, failed, error. |
| data.generating_label | String | 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);