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>';
}