TR TR
Giriş yap

API

API'mize erişim açmak için Telegram üzerinden destek hizmetimizle iletişime geçin: @Spy_House

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($chCURLOPT_RETURNTRANSFERTRUE);
        
curl_setopt($chCURLOPT_CUSTOMREQUEST'POST');
        
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
        
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);
        
curl_setopt($chCURLOPT_POSTFIELDShttp_build_query($data));

        
$body curl_exec($ch);
        
$info curl_getinfo($ch);

        
curl_close($ch);

        if ( ! empty(
$info['http_code']) && $info['http_code'] == 200) {
            return 
json_decode($bodyTRUE);
        }
    }


    
$body_request = ['api_key' => 'YOUR_API_KEY'];


    
$api_request api_request($body_request);
    if ( ! empty(
$api_request['status'])) {
        echo 
'<pre>';
        
print_r($api_request);
        echo 
'</pre>';
    }

Ü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($chCURLOPT_RETURNTRANSFERTRUE);
        
curl_setopt($chCURLOPT_CUSTOMREQUEST'POST');
        
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
        
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);
        
curl_setopt($chCURLOPT_POSTFIELDShttp_build_query($data));

        
$body curl_exec($ch);
        
$info curl_getinfo($ch);

        
curl_close($ch);

        if ( ! empty(
$info['http_code']) && $info['http_code'] == 200) {
            return 
json_decode($bodyTRUE);
        }
    }


    
$body_request = ['api_key' => 'YOUR_API_KEY'];


    
$api_request api_request($body_request);
    if ( ! empty(
$api_request['status'])) {
        echo 
'<pre>';
        
print_r($api_request);
        echo 
'</pre>';
    }

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($chCURLOPT_RETURNTRANSFERTRUE);
        
curl_setopt($chCURLOPT_CUSTOMREQUEST'POST');
        
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
        
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);
        
curl_setopt($chCURLOPT_POSTFIELDShttp_build_query($data));

        
$body curl_exec($ch);
        
$info curl_getinfo($ch);

        
curl_close($ch);

        if ( ! empty(
$info['http_code']) && $info['http_code'] == 200) {
            return 
json_decode($bodyTRUE);
        }
    }


    
$body_request = ['api_key' => 'YOUR_API_KEY'];


    
$api_request api_request($body_request);
    if ( ! empty(
$api_request['status'])) {
        echo 
'<pre>';
        
print_r($api_request);
        echo 
'</pre>';
    }

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($chCURLOPT_RETURNTRANSFERTRUE);
        
curl_setopt($chCURLOPT_CUSTOMREQUEST'POST');
        
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
        
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);
        
curl_setopt($chCURLOPT_POSTFIELDShttp_build_query($data));

        
$body curl_exec($ch);
        
$info curl_getinfo($ch);

        
curl_close($ch);

        if ( ! empty(
$info['http_code']) && $info['http_code'] == 200) {
            return 
json_decode($bodyTRUE);
        }
    }


    
$body_request = ['api_key' => 'YOUR_API_KEY'];


    
$api_request api_request($body_request);
    if ( ! empty(
$api_request['status'])) {
        echo 
'<pre>';
        
print_r($api_request);
        echo 
'</pre>';
    }

İş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($chCURLOPT_RETURNTRANSFERTRUE);
        
curl_setopt($chCURLOPT_CUSTOMREQUEST'POST');
        
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
        
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);
        
curl_setopt($chCURLOPT_POSTFIELDShttp_build_query($data));

        
$body curl_exec($ch);
        
$info curl_getinfo($ch);

        
curl_close($ch);

        if ( ! empty(
$info['http_code']) && $info['http_code'] == 200) {
            return 
json_decode($bodyTRUE);
        }
    }


    
$body_request = ['api_key' => 'YOUR_API_KEY'];


    
$api_request api_request($body_request);
    if ( ! empty(
$api_request['status'])) {
        echo 
'<pre>';
        
print_r($api_request);
        echo 
'</pre>';
    }

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($chCURLOPT_RETURNTRANSFERTRUE);
        
curl_setopt($chCURLOPT_CUSTOMREQUEST'POST');
        
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
        
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);
        
curl_setopt($chCURLOPT_POSTFIELDShttp_build_query($data));

        
$body curl_exec($ch);
        
$info curl_getinfo($ch);

        
curl_close($ch);

        if ( ! empty(
$info['http_code']) && $info['http_code'] == 200) {
            return 
json_decode($bodyTRUE);
        }
    }


    
$body_request = ['api_key' => 'YOUR_API_KEY'];


    
$api_request api_request($body_request);
    if ( ! empty(
$api_request['status'])) {
        echo 
'<pre>';
        
print_r($api_request);
        echo 
'</pre>';
    }

Push 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($chCURLOPT_RETURNTRANSFERTRUE);
    
curl_setopt($chCURLOPT_CUSTOMREQUEST'POST');
    
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
    
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);
    
curl_setopt($chCURLOPT_POSTFIELDShttp_build_query($params));

    
$body curl_exec($ch);
    
$info curl_getinfo($ch);

    
curl_close($ch);

    if (!empty(
$info['http_code']) && $info['http_code'] == 200) {
        return 
json_decode($bodyTRUE);
    }
    return 
null;
}

// Example 1: Basic search with API key
$params = [
    
'api_key' => 'YOUR_API_KEY',
    
'limit' => 20,
    
'offset' => 0,
];

$result searchPushCreatives($params);

if (
$result && $result['status'] === 'success') {
    foreach (
$result['data']['items'] as $creative) {
        echo 
"ID: " $creative['id'] . " - " $creative['title'] . "\n";
    }
    echo 
"Total: " $result['data']['pagination']['total'] . "\n";
}

// Example 2: Search with ISO codes/names filters
$paramsWithFilters = [
    
'api_key' => 'YOUR_API_KEY',
    
'limit' => 50,
    
'offset' => 0,
    
'keyword' => 'casino',
    
'countries' => ['US''GB''DE'],  // ISO-2 codes
    
'languages' => ['EN'],                 // ISO codes
    
'browsers' => ['Chrome''Firefox'],    // Browser names
    
'sort_by' => 'creation',
    
'sort_order' => 'desc',
];

$filteredResult searchPushCreatives($paramsWithFilters);

// Example 3: Search with ID-based filters (recommended)
// Use IDs from /api/filters/* endpoints for better performance
$paramsWithIds = [
    
'api_key' => 'YOUR_API_KEY',
    
'limit' => 50,
    
'offset' => 0,
    
'keyword' => 'casino',
    
'country_ids' => [123],              // IDs from /api/filters/countries
    
'lang_ids' => [1],                      // IDs from /api/filters/languages
    
'network_ids' => [510],              // IDs from /api/filters/advertising-networks
    
'browser_ids' => [12],               // IDs from /api/filters/browsers
    
'sort_by' => 'creation',
    
'sort_order' => 'desc',
];

$resultWithIds searchPushCreatives($paramsWithIds);

// Note: ID-based filters take precedence over name-based filters
// If both country_ids and countries are provided, country_ids will be used

Inpage 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($chCURLOPT_RETURNTRANSFERTRUE);
    
curl_setopt($chCURLOPT_CUSTOMREQUEST'POST');
    
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
    
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);
    
curl_setopt($chCURLOPT_POSTFIELDShttp_build_query($params));

    
$body curl_exec($ch);
    
$info curl_getinfo($ch);

    
curl_close($ch);

    if (!empty(
$info['http_code']) && $info['http_code'] == 200) {
        return 
json_decode($bodyTRUE);
    }
    return 
null;
}

// Example 1: Basic search with API key
$params = [
    
'api_key' => 'YOUR_API_KEY',
    
'limit' => 20,
    
'offset' => 0,
];

$result searchInpageCreatives($params);

if (
$result && $result['status'] === 'success') {
    foreach (
$result['data']['items'] as $creative) {
        echo 
"ID: " $creative['id'] . " - " $creative['title'] . "\n";
    }
    echo 
"Total: " $result['data']['pagination']['total'] . "\n";
}

// Example 2: Search with ISO codes/names filters
$paramsWithFilters = [
    
'api_key' => 'YOUR_API_KEY',
    
'limit' => 50,
    
'offset' => 0,
    
'keyword' => 'casino',
    
'countries' => ['US''GB''DE'],  // ISO-2 codes
    
'languages' => ['EN'],                 // ISO codes
    
'browsers' => ['Chrome''Firefox'],    // Browser names
    
'sort_by' => 'creation',
    
'sort_order' => 'desc',
];

$filteredResult searchInpageCreatives($paramsWithFilters);

// Example 3: Search with ID-based filters (recommended)
// Use IDs from /api/filters/* endpoints for better performance
$paramsWithIds = [
    
'api_key' => 'YOUR_API_KEY',
    
'limit' => 50,
    
'offset' => 0,
    
'keyword' => 'casino',
    
'country_ids' => [123],              // IDs from /api/filters/countries
    
'lang_ids' => [1],                      // IDs from /api/filters/languages
    
'network_ids' => [510],              // IDs from /api/filters/advertising-networks
    
'browser_ids' => [12],               // IDs from /api/filters/browsers
    
'sort_by' => 'creation',
    
'sort_order' => 'desc',
];

$resultWithIds searchInpageCreatives($paramsWithIds);

// Note: ID-based filters take precedence over name-based filters
// If both country_ids and countries are provided, country_ids will be used

Facebook 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($chCURLOPT_RETURNTRANSFERTRUE);
    
curl_setopt($chCURLOPT_CUSTOMREQUEST'POST');
    
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
    
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);
    
curl_setopt($chCURLOPT_POSTFIELDShttp_build_query($params));

    
$body curl_exec($ch);
    
$info curl_getinfo($ch);

    
curl_close($ch);

    if (!empty(
$info['http_code']) && $info['http_code'] == 200) {
        return 
json_decode($bodyTRUE);
    }
    return 
null;
}

// Example 1: Basic search with API key
$params = [
    
'api_key' => 'YOUR_API_KEY',
    
'limit' => 20,
    
'offset' => 0,
    
'keyword' => 'casino',
    
'countries' => ['US'],
];

// Example 2: Social filters (status/media_type/search_type)
$paramsWithSocialFilters = [
    
'api_key' => 'YOUR_API_KEY',
    
'limit' => 20,
    
'offset' => 0,
    
'keyword' => 'casino',
    
'countries' => ['US'],
    
'status' => 'ACTIVE',
    
'media_type' => 'VIDEO',
    
'search_type' => 'keyword_unordered',
];

$result searchFacebookCreatives($paramsWithSocialFilters);

// Example 3: Live search polling (when scrapingJob.needStartPolling is true)
$initial searchFacebookCreatives([
    
'api_key' => 'YOUR_API_KEY',
    
'limit' => 10,
    
'offset' => 0,
    
'keyword' => 'casino',
    
'countries' => ['US'],
    
'status' => 'ACTIVE',
]);

if (
$initial && !empty($initial['data']['scrapingJob'])) {
    
$scrapingJob $initial['data']['scrapingJob'];

    if (!empty(
$scrapingJob['needStartPolling']) && !empty($scrapingJob['job_id'])) {
        
$pollingResult searchFacebookCreatives([
            
'api_key' => 'YOUR_API_KEY',
            
'isPolling' => true,
            
'job_id' => $scrapingJob['job_id'],
            
'limit' => 10,
            
'offset' => 0,
        ]);
    }
}

// Note: If scrapingJob.status is "recently_completed" or "rejected", 
// the job will not be created and polling should not be started.

TikTok 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($chCURLOPT_RETURNTRANSFERTRUE);
    
curl_setopt($chCURLOPT_CUSTOMREQUEST'POST');
    
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
    
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);
    
curl_setopt($chCURLOPT_POSTFIELDShttp_build_query($params));

    
$body curl_exec($ch);
    
$info curl_getinfo($ch);

    
curl_close($ch);

    if (!empty(
$info['http_code']) && $info['http_code'] == 200) {
        return 
json_decode($bodyTRUE);
    }
    return 
null;
}

// Example 1: Basic search with API key
$params = [
    
'api_key' => 'YOUR_API_KEY',
    
'limit' => 20,
    
'offset' => 0,
    
'keyword' => 'casino',
    
'countries' => ['US'],
];

// Example 2: TikTok filter (video_duration)
$paramsWithVideoDuration = [
    
'api_key' => 'YOUR_API_KEY',
    
'limit' => 20,
    
'offset' => 0,
    
'keyword' => 'casino',
    
'countries' => ['US'],
    
'video_duration' => 'SHORT',
];

$result searchTikTokCreatives($paramsWithVideoDuration);

// Example 3: Live search polling (when scrapingJob.needStartPolling is true)
$initial searchTikTokCreatives([
    
'api_key' => 'YOUR_API_KEY',
    
'limit' => 10,
    
'offset' => 0,
    
'keyword' => 'casino',
    
'countries' => ['US'],
]);

if (
$initial && !empty($initial['data']['scrapingJob'])) {
    
$scrapingJob $initial['data']['scrapingJob'];

    if (!empty(
$scrapingJob['needStartPolling']) && !empty($scrapingJob['job_id'])) {
        
$pollingResult searchTikTokCreatives([
            
'api_key' => 'YOUR_API_KEY',
            
'isPolling' => true,
            
'job_id' => $scrapingJob['job_id'],
            
'limit' => 10,
            
'offset' => 0,
        ]);
    }
}

// Note: If scrapingJob.status is "recently_completed" or "rejected", 
// the job will not be created and polling should not be started.

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).
email 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($chCURLOPT_RETURNTRANSFERTRUE);
        
curl_setopt($chCURLOPT_CUSTOMREQUEST'POST');
        
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
        
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);
        
curl_setopt($chCURLOPT_POSTFIELDShttp_build_query($data));

        
$body curl_exec($ch);
        
$info curl_getinfo($ch);

        
curl_close($ch);

        if ( ! empty(
$info['http_code']) && $info['http_code'] == 200) {
            return 
json_decode($bodyTRUE);
        }
    }


    
$body_request = [
        
'api_key' => 'YOUR_API_KEY',
        
'amount' => 100,
        
'email' => '[email protected]'
    ];


    
$api_request api_request($body_request);
    if ( ! empty(
$api_request['status'])) {
        echo 
'<pre>';
        
print_r($api_request);
        echo 
'</pre>';
    }

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($chCURLOPT_RETURNTRANSFERTRUE);
        
curl_setopt($chCURLOPT_CUSTOMREQUEST'POST');
        
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
        
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);
        
curl_setopt($chCURLOPT_POSTFIELDShttp_build_query($data));

        
$body curl_exec($ch);
        
$info curl_getinfo($ch);

        
curl_close($ch);

        if ( ! empty(
$info['http_code']) && $info['http_code'] == 200) {
            return 
json_decode($bodyTRUE);
        }
    }


    
$body_request = [
        
'api_key' => 'YOUR_API_KEY'
    ];


    
$api_request api_request($body_request);
    if ( ! empty(
$api_request['status'])) {
        echo 
'<pre>';
        
print_r($api_request);
        echo 
'</pre>';
    }