API
Sprachenliste abrufen
Anfrage-URL
| Parameter | Datentyp | Erforderlich | Beschreibung |
|---|---|---|---|
| api_key | String | Ja | Eindeutiger API-Schlüssel zur Anfrage-Authentifizierung. |
| Parameter | Datentyp | Beschreibung |
|---|---|---|
| status | String | Feld, das die erfolgreiche Ausführung ("success") oder einen Fehler ("error") anzeigt. |
| msg | String | Fehlermeldung oder zusätzliche Anfrageinformationen. |
| code | Nummer | Antwortcode, z.B. 200 für eine erfolgreiche Anfrage. |
| data | Array | Array verfügbarer Sprachen. |
| └ lang_id | Nummer | Eindeutige Sprachkennung. |
| └ name | String | Sprachname auf Englisch. |
| └ iso_code | String | ISO-Sprachcode (z.B. "EN" für Englisch, "DE" für Deutsch). |
<?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>';
}
Länderliste abrufen
Anfrage-URL
| Parameter | Datentyp | Erforderlich | Beschreibung |
|---|---|---|---|
| api_key | String | Ja | Eindeutiger API-Schlüssel zur Anfrage-Authentifizierung. |
| Parameter | Datentyp | Beschreibung |
|---|---|---|
| status | String | Feld, das die erfolgreiche Ausführung ("success") oder einen Fehler ("error") anzeigt. |
| msg | String | Fehlermeldung oder zusätzliche Anfrageinformationen. |
| code | Nummer | Antwortcode, z.B. 200 für eine erfolgreiche Anfrage. |
| data | Array | Array verfügbarer Länder. |
| └ country_id | Nummer | Eindeutige Länderkennung. |
| └ name | String | Ländername auf Englisch. |
| └ iso_code | String | ISO 3166-1 alpha-2 Ländercode (z.B. "DE" für Deutschland). |
| └ iso_code_3 | String | ISO 3166-1 alpha-3 Ländercode (z.B. "DEU" für Deutschland). |
<?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>';
}
Browserliste abrufen
Anfrage-URL
| Parameter | Datentyp | Erforderlich | Beschreibung |
|---|---|---|---|
| api_key | String | Ja | Eindeutiger API-Schlüssel zur Anfrage-Authentifizierung. |
| Parameter | Datentyp | Beschreibung |
|---|---|---|
| status | String | Feld, das die erfolgreiche Ausführung ("success") oder einen Fehler ("error") anzeigt. |
| msg | String | Fehlermeldung oder zusätzliche Anfrageinformationen. |
| code | Nummer | Antwortcode, z.B. 200 für eine erfolgreiche Anfrage. |
| data | Array | Array verfügbarer Browser. |
| └ browser_id | Nummer | Eindeutige Browserkennung. |
| └ name | String | Browsername. |
<?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>';
}
Geräteliste abrufen
Anfrage-URL
| Parameter | Datentyp | Erforderlich | Beschreibung |
|---|---|---|---|
| api_key | String | Ja | Eindeutiger API-Schlüssel zur Anfrage-Authentifizierung. |
| Parameter | Datentyp | Beschreibung |
|---|---|---|
| status | String | Feld, das die erfolgreiche Ausführung ("success") oder einen Fehler ("error") anzeigt. |
| msg | String | Fehlermeldung oder zusätzliche Anfrageinformationen. |
| code | Nummer | Antwortcode, z.B. 200 für eine erfolgreiche Anfrage. |
| data | Array | Array verfügbarer Gerätetypen. |
| └ device_id | Nummer | Eindeutige Gerätetyp-Kennung. |
| └ name | String | Anzeigename des Gerätetyps. |
| └ value | String | Gerätetyp-Wert für API-Anfragen. |
<?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>';
}
Betriebssystemliste abrufen
Anfrage-URL
| Parameter | Datentyp | Erforderlich | Beschreibung |
|---|---|---|---|
| api_key | String | Ja | Eindeutiger API-Schlüssel zur Anfrage-Authentifizierung. |
| Parameter | Datentyp | Beschreibung |
|---|---|---|
| status | String | Feld, das die erfolgreiche Ausführung ("success") oder einen Fehler ("error") anzeigt. |
| msg | String | Fehlermeldung oder zusätzliche Anfrageinformationen. |
| code | Nummer | Antwortcode, z.B. 200 für eine erfolgreiche Anfrage. |
| data | Array | Array verfügbarer Betriebssysteme. |
| └ os_id | Nummer | Eindeutige Betriebssystem-Kennung. |
| └ name | String | Anzeigename des Betriebssystems. |
| └ value | String | Betriebssystem-Wert für API-Anfragen. |
<?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>';
}
Werbenetzwerkliste abrufen
Anfrage-URL
| Parameter | Datentyp | Erforderlich | Beschreibung |
|---|---|---|---|
| api_key | String | Ja | Eindeutiger API-Schlüssel zur Anfrage-Authentifizierung. |
| Parameter | Datentyp | Beschreibung |
|---|---|---|
| status | String | Feld, das die erfolgreiche Ausführung ("success") oder einen Fehler ("error") anzeigt. |
| msg | String | Fehlermeldung oder zusätzliche Anfrageinformationen. |
| code | Nummer | Antwortcode, z.B. 200 für eine erfolgreiche Anfrage. |
| data | Array | Array verfügbarer Werbenetzwerke. |
| └ network_id | Nummer | Eindeutige Werbenetzwerk-Kennung. |
| └ name | String | Anzeigename des Werbenetzwerks. |
| └ value | String | Werbenetzwerk-Wert für API-Anfragen. |
| └ logo | String | URL zum Werbenetzwerk-Logo. |
<?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-Creatives suchen
Suche nach Push-Creatives mit verschiedenen Filtern.
Anfrage-URL
| Parameter | Datentyp | Erforderlich | Beschreibung |
|---|---|---|---|
| api_key | String | Ja | Eindeutiger API-Schlüssel zur Anfrage-Authentifizierung. |
| limit | Nummer | Nein | Anzahl der Elemente pro Seite (10-100). Standard: 10. |
| offset | Nummer | Nein | Anzahl der zu überspringenden Elemente. Wird für Paginierung verwendet. Standard: 0. |
| keyword | String | Nein | Suchbegriff zum Filtern von Creatives nach Titel oder Beschreibung. |
| countries | Array | Nein | Array von ISO-2-Ländercodes (z.B. ["US", "GB", "DE"]). |
| country_ids | Array | Nein | Array von Länder-IDs vom Endpunkt /api/filters/countries. Hat Vorrang vor countries. |
| languages | Array | Nein | Array von ISO-Sprachcodes (z.B. ["EN", "DE", "FR"]). |
| lang_ids | Array | Nein | Array von Sprach-IDs vom Endpunkt /api/filters/languages. Hat Vorrang vor languages. |
| advertising_networks | Array | Nein | Array von Werbenetzwerk-Namen. |
| network_ids | Array | Nein | Array von Netzwerk-IDs vom Endpunkt /api/filters/advertising-networks. Hat Vorrang vor advertising_networks. |
| browsers | Array | Nein | Array von Browser-Namen. |
| browser_ids | Array | Nein | Array von Browser-IDs vom Endpunkt /api/filters/browsers. Hat Vorrang vor browsers. |
| operating_systems | Array | Nein | Array von Betriebssystem-Werten (z.B. ["windows", "macos", "android"]). |
| devices | Array | Nein | Array von Gerätetypen (z.B. ["desktop", "mobile", "tablet"]). |
| date_from | String | Nein | Startdatum für Filterung (Format: Y-m-d, z.B. "2025-01-01"). |
| date_to | String | Nein | Enddatum für Filterung (Format: Y-m-d, z.B. "2025-12-31"). |
| sort_by | String | Nein | Sortierfeld: creation, activity, popularity. |
| sort_order | String | Nein | Sortierrichtung: asc oder desc. |
| only_adult | Boolean | Nein | Nur Erwachsenen-Inhalte filtern. Boolean (true/false). |
| Parameter | Datentyp | Beschreibung |
|---|---|---|
| status | String | Feld, das die erfolgreiche Ausführung ("success") oder einen Fehler ("error") anzeigt. |
| msg | String | Fehlermeldung oder zusätzliche Anfrageinformationen. |
| code | Nummer | Antwortcode, z.B. 200 für eine erfolgreiche Anfrage. |
| data | Object | Array von Flow-Daten, die der Anfrage entsprechen. |
| └ format | String | Creative-Format (push, inpage, facebook, tiktok). |
| └ items | Array | Array von Creative-Objekten. |
| └ id | Nummer | Eindeutige Creative-Kennung. |
| └ title | String | Creative-Titeltext. |
| └ description | String | Creative-Beschreibungstext. |
| └ category | String | Creative-Format/Kategorie (push, inpage, facebook, tiktok). |
| └ country | Object | Länderinformations-Objekt (code, name, iso_code_3). |
| └ code | String | ISO 3166-1 alpha-2 Ländercode (z.B. "DE" für Deutschland). |
| └ name | String | Ländername auf Englisch. |
| └ iso_code_3 | String | ISO 3166-1 alpha-3 Ländercode (z.B. "DEU" für Deutschland). |
| └ file_size | String | Formatierte Gesamtdateigröße. |
| └ icon_url | String | URL zum Creative-Icon-Bild. |
| └ landing_url | String | Landingpage-URL. |
| └ created_at | String | Creative-Erstellungsdatum (Y-m-d Format). |
| └ advertising_networks | Array | Array von Werbenetzwerk-Namen. |
| └ languages | Array | Array von ISO-Sprachcodes. |
| └ operating_systems | Array | Array von Betriebssystem-Werten. |
| └ browsers | Array | Array von Browser-Namen. |
| └ devices | Array | Array von Gerätetypen. |
| └ main_image_url | String | URL zum Hauptbild des Creative. |
| └ is_adult | Boolean | Ob das Creative Erwachsenen-Inhalt enthält. |
| └ is_active | Boolean | Ob das Creative derzeit aktiv ist. |
| └ pagination | Object | Paginierungsinformations-Objekt. |
| └ total | Nummer | Gesamtzahl der Creatives, die den Filtern entsprechen. |
| └ limit | Nummer | Anzahl der Elemente pro Seite. |
| └ offset | Nummer | Aktueller Offset. |
| └ has_more | Boolean | Ob weitere Elemente verfügbar sind. |
| └ returned_count | Nummer | Anzahl der in dieser Antwort zurückgegebenen Elemente. |
| └ filters_applied | Object | Objekt mit den angewendeten Filtern. |
| └ timestamp | String | Antwort-Zeitstempel im ISO 8601-Format. |
<?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-Creatives suchen
Suche nach Inpage-Creatives mit verschiedenen Filtern.
Anfrage-URL
| Parameter | Datentyp | Erforderlich | Beschreibung |
|---|---|---|---|
| api_key | String | Ja | Eindeutiger API-Schlüssel zur Anfrage-Authentifizierung. |
| limit | Nummer | Nein | Anzahl der Elemente pro Seite (10-100). Standard: 10. |
| offset | Nummer | Nein | Anzahl der zu überspringenden Elemente. Wird für Paginierung verwendet. Standard: 0. |
| keyword | String | Nein | Suchbegriff zum Filtern von Creatives nach Titel oder Beschreibung. |
| countries | Array | Nein | Array von ISO-2-Ländercodes (z.B. ["US", "GB", "DE"]). |
| country_ids | Array | Nein | Array von Länder-IDs vom Endpunkt /api/filters/countries. Hat Vorrang vor countries. |
| languages | Array | Nein | Array von ISO-Sprachcodes (z.B. ["EN", "DE", "FR"]). |
| lang_ids | Array | Nein | Array von Sprach-IDs vom Endpunkt /api/filters/languages. Hat Vorrang vor languages. |
| advertising_networks | Array | Nein | Array von Werbenetzwerk-Namen. |
| network_ids | Array | Nein | Array von Netzwerk-IDs vom Endpunkt /api/filters/advertising-networks. Hat Vorrang vor advertising_networks. |
| browsers | Array | Nein | Array von Browser-Namen. |
| browser_ids | Array | Nein | Array von Browser-IDs vom Endpunkt /api/filters/browsers. Hat Vorrang vor browsers. |
| operating_systems | Array | Nein | Array von Betriebssystem-Werten (z.B. ["windows", "macos", "android"]). |
| devices | Array | Nein | Array von Gerätetypen (z.B. ["desktop", "mobile", "tablet"]). |
| date_from | String | Nein | Startdatum für Filterung (Format: Y-m-d, z.B. "2025-01-01"). |
| date_to | String | Nein | Enddatum für Filterung (Format: Y-m-d, z.B. "2025-12-31"). |
| sort_by | String | Nein | Sortierfeld: creation, activity, popularity. |
| sort_order | String | Nein | Sortierrichtung: asc oder desc. |
| only_adult | Boolean | Nein | Nur Erwachsenen-Inhalte filtern. Boolean (true/false). |
| Parameter | Datentyp | Beschreibung |
|---|---|---|
| status | String | Feld, das die erfolgreiche Ausführung ("success") oder einen Fehler ("error") anzeigt. |
| msg | String | Fehlermeldung oder zusätzliche Anfrageinformationen. |
| code | Nummer | Antwortcode, z.B. 200 für eine erfolgreiche Anfrage. |
| data | Object | Array von Flow-Daten, die der Anfrage entsprechen. |
| └ format | String | Creative-Format (push, inpage, facebook, tiktok). |
| └ items | Array | Array von Creative-Objekten. |
| └ id | Nummer | Eindeutige Creative-Kennung. |
| └ title | String | Creative-Titeltext. |
| └ description | String | Creative-Beschreibungstext. |
| └ category | String | Creative-Format/Kategorie (push, inpage, facebook, tiktok). |
| └ country | Object | Länderinformations-Objekt (code, name, iso_code_3). |
| └ code | String | ISO 3166-1 alpha-2 Ländercode (z.B. "DE" für Deutschland). |
| └ name | String | Ländername auf Englisch. |
| └ iso_code_3 | String | ISO 3166-1 alpha-3 Ländercode (z.B. "DEU" für Deutschland). |
| └ file_size | String | Formatierte Gesamtdateigröße. |
| └ icon_url | String | URL zum Creative-Icon-Bild. |
| └ landing_url | String | Landingpage-URL. |
| └ created_at | String | Creative-Erstellungsdatum (Y-m-d Format). |
| └ advertising_networks | Array | Array von Werbenetzwerk-Namen. |
| └ languages | Array | Array von ISO-Sprachcodes. |
| └ operating_systems | Array | Array von Betriebssystem-Werten. |
| └ browsers | Array | Array von Browser-Namen. |
| └ devices | Array | Array von Gerätetypen. |
| └ main_image_url | String | URL zum Hauptbild des Creative. |
| └ is_adult | Boolean | Ob das Creative Erwachsenen-Inhalt enthält. |
| └ is_active | Boolean | Ob das Creative derzeit aktiv ist. |
| └ pagination | Object | Paginierungsinformations-Objekt. |
| └ total | Nummer | Gesamtzahl der Creatives, die den Filtern entsprechen. |
| └ limit | Nummer | Anzahl der Elemente pro Seite. |
| └ offset | Nummer | Aktueller Offset. |
| └ has_more | Boolean | Ob weitere Elemente verfügbar sind. |
| └ returned_count | Nummer | Anzahl der in dieser Antwort zurückgegebenen Elemente. |
| └ filters_applied | Object | Objekt mit den angewendeten Filtern. |
| └ timestamp | String | Antwort-Zeitstempel im ISO 8601-Format. |
<?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-Creatives suchen
Suche nach Facebook-Creatives mit verschiedenen Filtern. Bei wenigen Ergebnissen kann die API eine Live-Suche starten und einen scrapingJob für Polling zurückgeben.
Wenn scrapingJob.needStartPolling true ist, rufen Sie denselben Endpunkt mit isPolling=true und job_id auf, um neue Elemente zu erhalten. Wenn der Status recently_completed oder rejected ist, wird kein Job erstellt und Polling sollte nicht gestartet werden.
Live-Suche startet nur, wenn genau ein Land im countries-Array angegeben ist.
Live-Suche startet nur, wenn ein nicht-leeres Keyword angegeben ist.
Anfrage-URL
| Parameter | Datentyp | Erforderlich | Beschreibung |
|---|---|---|---|
| api_key | String | Ja | Eindeutiger API-Schlüssel zur Anfrage-Authentifizierung. |
| limit | Nummer | Nein | Anzahl der Elemente pro Seite (10-100). Standard: 10. |
| offset | Nummer | Nein | Anzahl der zu überspringenden Elemente. Wird für Paginierung verwendet. Standard: 0. |
| keyword | String | Nein | Suchbegriff zum Filtern von Creatives nach Titel oder Beschreibung. |
| countries | Array | Nein | Array von ISO-2-Ländercodes (z.B. ["US", "GB", "DE"]). |
| country_ids | Array | Nein | Array von Länder-IDs vom Endpunkt /api/filters/countries. Hat Vorrang vor countries. |
| languages | Array | Nein | Array von ISO-Sprachcodes (z.B. ["EN", "DE", "FR"]). |
| lang_ids | Array | Nein | Array von Sprach-IDs vom Endpunkt /api/filters/languages. Hat Vorrang vor languages. |
| date_from | String | Nein | Startdatum für Filterung (Format: Y-m-d, z.B. "2025-01-01"). |
| date_to | String | Nein | Enddatum für Filterung (Format: Y-m-d, z.B. "2025-12-31"). |
| sort_by | String | Nein | Sortierfeld: creation, activity, popularity. |
| sort_order | String | Nein | Sortierrichtung: asc oder desc. |
| status | String | Nein | Anzeigenstatus-Filter: ALL, ACTIVE, INACTIVE. |
| media_type | String | Nein | Medientyp-Filter: ALL, IMAGE, VIDEO. |
| search_type | String | Nein | Suchtyp: keyword_unordered, keyword_exact_phrase. |
| isPolling | Boolean | Nein | Polling für Live-Suche-Updates aktivieren. Mit job_id verwenden. |
| lastId | Nummer | Nein | Letzte Creative-ID für inkrementelles Polling (optional). |
| perPage | Nummer | Nein | Erwartete Seitengröße für Erkennung weniger Ergebnisse (12-96). |
| job_id | String | Nein | Live-Suche-Job-ID aus scrapingJob. Erforderlich wenn isPolling=true. |
| Parameter | Datentyp | Beschreibung |
|---|---|---|
| status | String | Feld, das die erfolgreiche Ausführung ("success") oder einen Fehler ("error") anzeigt. |
| msg | String | Fehlermeldung oder zusätzliche Anfrageinformationen. |
| code | Nummer | Antwortcode, z.B. 200 für eine erfolgreiche Anfrage. |
| data | Object | Array von Flow-Daten, die der Anfrage entsprechen. |
| └ format | String | Creative-Format (push, inpage, facebook, tiktok). |
| └ items | Array | Array von Creative-Objekten. |
| └ id | Nummer | Eindeutige Creative-Kennung. |
| └ title | String | Creative-Titeltext. |
| └ description | String | Creative-Beschreibungstext. |
| └ category | String | Creative-Format/Kategorie (push, inpage, facebook, tiktok). |
| └ country | Object | Länderinformations-Objekt (code, name, iso_code_3). |
| └ code | String | ISO 3166-1 alpha-2 Ländercode (z.B. "DE" für Deutschland). |
| └ name | String | Ländername auf Englisch. |
| └ iso_code_3 | String | ISO 3166-1 alpha-3 Ländercode (z.B. "DEU" für Deutschland). |
| └ file_size | String | Formatierte Gesamtdateigröße. |
| └ icon_url | String | URL zum Creative-Icon-Bild. |
| └ landing_url | String | Landingpage-URL. |
| └ created_at | String | Creative-Erstellungsdatum (Y-m-d Format). |
| └ advertising_networks | Array | Array von Werbenetzwerk-Namen. |
| └ languages | Array | Array von ISO-Sprachcodes. |
| └ operating_systems | Array | Array von Betriebssystem-Werten. |
| └ browsers | Array | Array von Browser-Namen. |
| └ devices | Array | Array von Gerätetypen. |
| └ main_image_url | String | URL zum Hauptbild des Creative. |
| └ has_video | Boolean | Ob das Creative Video enthält. |
| └ video_url | String | URL zum Video (wenn has_video true ist). |
| └ video_duration | Nummer | Videodauer in Sekunden (falls zutreffend). |
| └ social_likes | Nummer | Anzahl der Likes (für Social Ads). |
| └ social_comments | Nummer | Anzahl der Kommentare (für Social Ads). |
| └ social_shares | Nummer | Anzahl der Shares (für Social Ads). |
| └ is_adult | Boolean | Ob das Creative Erwachsenen-Inhalt enthält. |
| └ is_active | Boolean | Ob das Creative derzeit aktiv ist. |
| └ pagination | Object | Paginierungsinformations-Objekt. |
| └ total | Nummer | Gesamtzahl der Creatives, die den Filtern entsprechen. |
| └ limit | Nummer | Anzahl der Elemente pro Seite. |
| └ offset | Nummer | Aktueller Offset. |
| └ has_more | Boolean | Ob weitere Elemente verfügbar sind. |
| └ returned_count | Nummer | Anzahl der in dieser Antwort zurückgegebenen Elemente. |
| └ filters_applied | Object | Objekt mit den angewendeten Filtern. |
| └ scrapingJob | Object | Live-Suche-Job-Objekt (vorhanden wenn Live-Suche gestartet oder aktiv ist). |
| └ type | String | Live-Suche-Typ-Identifier (z.B. facebook_search). |
| └ status | String | Job-Status: dispatched, running, post_processing, completed, failed, error, recently_completed, rejected. |
| └ needStartPolling | Boolean | Ob der Client mit dem Polling für Updates beginnen soll. |
| └ needStopPolling | Boolean | Ob der Client das Polling beenden soll. |
| └ job_id | String | Job-Identifier für Polling (nicht vorhanden wenn Status recently_completed oder rejected ist). |
| └ polling_interval_seconds | Nummer | Empfohlenes Polling-Intervall in Sekunden. |
| └ estimatedDuration | Nummer | Geschätzte Dauer in Sekunden (0 bei completed oder recently_completed). |
| └ message | String | Zusätzliche Statusnachricht vom Server oder Parser. |
| └ retry_after_seconds | Nummer | Wie lange vor erneutem Versuch bei recently_completed/rejected warten (falls angegeben). |
| └ error | String | Fehlerdetails (vorhanden wenn Status failed oder error ist). |
| └ timestamp | String | Antwort-Zeitstempel im ISO 8601-Format. |
<?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-Creatives suchen
Suche nach TikTok-Creatives mit verschiedenen Filtern. Bei wenigen Ergebnissen kann die API eine Live-Suche starten und einen scrapingJob für Polling zurückgeben.
Wenn scrapingJob.needStartPolling true ist, rufen Sie denselben Endpunkt mit isPolling=true und job_id auf, um neue Elemente zu erhalten. Wenn der Status recently_completed oder rejected ist, wird kein Job erstellt und Polling sollte nicht gestartet werden.
Live-Suche startet nur, wenn genau ein Land im countries-Array angegeben ist.
Live-Suche startet nur, wenn ein nicht-leeres Keyword angegeben ist.
Anfrage-URL
| Parameter | Datentyp | Erforderlich | Beschreibung |
|---|---|---|---|
| api_key | String | Ja | Eindeutiger API-Schlüssel zur Anfrage-Authentifizierung. |
| limit | Nummer | Nein | Anzahl der Elemente pro Seite (10-100). Standard: 10. |
| offset | Nummer | Nein | Anzahl der zu überspringenden Elemente. Wird für Paginierung verwendet. Standard: 0. |
| keyword | String | Nein | Suchbegriff zum Filtern von Creatives nach Titel oder Beschreibung. |
| countries | Array | Nein | Array von ISO-2-Ländercodes (z.B. ["US", "GB", "DE"]). |
| country_ids | Array | Nein | Array von Länder-IDs vom Endpunkt /api/filters/countries. Hat Vorrang vor countries. |
| languages | Array | Nein | Array von ISO-Sprachcodes (z.B. ["EN", "DE", "FR"]). |
| lang_ids | Array | Nein | Array von Sprach-IDs vom Endpunkt /api/filters/languages. Hat Vorrang vor languages. |
| date_from | String | Nein | Startdatum für Filterung (Format: Y-m-d, z.B. "2025-01-01"). |
| date_to | String | Nein | Enddatum für Filterung (Format: Y-m-d, z.B. "2025-12-31"). |
| sort_by | String | Nein | Sortierfeld: creation, activity, popularity. |
| sort_order | String | Nein | Sortierrichtung: asc oder desc. |
| video_duration | String | Nein | TikTok-Videodauer-Filter: ALL, SHORT, MEDIUM, LONG. |
| isPolling | Boolean | Nein | Polling für Live-Suche-Updates aktivieren. Mit job_id verwenden. |
| lastId | Nummer | Nein | Letzte Creative-ID für inkrementelles Polling (optional). |
| perPage | Nummer | Nein | Erwartete Seitengröße für Erkennung weniger Ergebnisse (12-96). |
| job_id | String | Nein | Live-Suche-Job-ID aus scrapingJob. Erforderlich wenn isPolling=true. |
| Parameter | Datentyp | Beschreibung |
|---|---|---|
| status | String | Feld, das die erfolgreiche Ausführung ("success") oder einen Fehler ("error") anzeigt. |
| msg | String | Fehlermeldung oder zusätzliche Anfrageinformationen. |
| code | Nummer | Antwortcode, z.B. 200 für eine erfolgreiche Anfrage. |
| data | Object | Array von Flow-Daten, die der Anfrage entsprechen. |
| └ format | String | Creative-Format (push, inpage, facebook, tiktok). |
| └ items | Array | Array von Creative-Objekten. |
| └ id | Nummer | Eindeutige Creative-Kennung. |
| └ title | String | Creative-Titeltext. |
| └ description | String | Creative-Beschreibungstext. |
| └ category | String | Creative-Format/Kategorie (push, inpage, facebook, tiktok). |
| └ country | Object | Länderinformations-Objekt (code, name, iso_code_3). |
| └ code | String | ISO 3166-1 alpha-2 Ländercode (z.B. "DE" für Deutschland). |
| └ name | String | Ländername auf Englisch. |
| └ iso_code_3 | String | ISO 3166-1 alpha-3 Ländercode (z.B. "DEU" für Deutschland). |
| └ file_size | String | Formatierte Gesamtdateigröße. |
| └ icon_url | String | URL zum Creative-Icon-Bild. |
| └ landing_url | String | Landingpage-URL. |
| └ created_at | String | Creative-Erstellungsdatum (Y-m-d Format). |
| └ advertising_networks | Array | Array von Werbenetzwerk-Namen. |
| └ languages | Array | Array von ISO-Sprachcodes. |
| └ operating_systems | Array | Array von Betriebssystem-Werten. |
| └ browsers | Array | Array von Browser-Namen. |
| └ devices | Array | Array von Gerätetypen. |
| └ main_image_url | String | URL zum Hauptbild des Creative. |
| └ has_video | Boolean | Ob das Creative Video enthält. |
| └ video_url | String | URL zum Video (wenn has_video true ist). |
| └ video_duration | Nummer | Videodauer in Sekunden (falls zutreffend). |
| └ social_likes | Nummer | Anzahl der Likes (für Social Ads). |
| └ social_comments | Nummer | Anzahl der Kommentare (für Social Ads). |
| └ social_shares | Nummer | Anzahl der Shares (für Social Ads). |
| └ is_adult | Boolean | Ob das Creative Erwachsenen-Inhalt enthält. |
| └ is_active | Boolean | Ob das Creative derzeit aktiv ist. |
| └ pagination | Object | Paginierungsinformations-Objekt. |
| └ total | Nummer | Gesamtzahl der Creatives, die den Filtern entsprechen. |
| └ limit | Nummer | Anzahl der Elemente pro Seite. |
| └ offset | Nummer | Aktueller Offset. |
| └ has_more | Boolean | Ob weitere Elemente verfügbar sind. |
| └ returned_count | Nummer | Anzahl der in dieser Antwort zurückgegebenen Elemente. |
| └ filters_applied | Object | Objekt mit den angewendeten Filtern. |
| └ scrapingJob | Object | Live-Suche-Job-Objekt (vorhanden wenn Live-Suche gestartet oder aktiv ist). |
| └ type | String | Live-Suche-Typ-Identifier (z.B. facebook_search). |
| └ status | String | Job-Status: dispatched, running, post_processing, completed, failed, error, recently_completed, rejected. |
| └ needStartPolling | Boolean | Ob der Client mit dem Polling für Updates beginnen soll. |
| └ needStopPolling | Boolean | Ob der Client das Polling beenden soll. |
| └ job_id | String | Job-Identifier für Polling (nicht vorhanden wenn Status recently_completed oder rejected ist). |
| └ polling_interval_seconds | Nummer | Empfohlenes Polling-Intervall in Sekunden. |
| └ estimatedDuration | Nummer | Geschätzte Dauer in Sekunden (0 bei completed oder recently_completed). |
| └ message | String | Zusätzliche Statusnachricht vom Server oder Parser. |
| └ retry_after_seconds | Nummer | Wie lange vor erneutem Versuch bei recently_completed/rejected warten (falls angegeben). |
| └ error | String | Fehlerdetails (vorhanden wenn Status failed oder error ist). |
| └ timestamp | String | Antwort-Zeitstempel im ISO 8601-Format. |
<?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.
Geld überweisen
Anfrage-URL
| Parameter | Datentyp | Erforderlich | Beschreibung |
|---|---|---|---|
| api_key | String | Ja | Eindeutiger API-Schlüssel zur Anfrage-Authentifizierung. |
| amount | Nummer | Ja | Überweisungsbetrag (mindestens 10 USD). |
| String | Ja | E-Mail des Empfängers. Muss gültig sein. |
| Parameter | Datentyp | Beschreibung |
|---|---|---|
| status | String | Feld, das die erfolgreiche Ausführung ("success") oder einen Fehler ("error") anzeigt. |
| msg | String | Fehlermeldung oder zusätzliche Anfrageinformationen. |
| code | Nummer | Antwortcode, z.B. 200 für eine erfolgreiche Anfrage. |
| transaction_number | String | Eindeutige Transaktionsnummer der Überweisung. |
<?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>';
}
Kontostand abrufen
Anfrage-URL
| Parameter | Datentyp | Erforderlich | Beschreibung |
|---|---|---|---|
| api_key | String | Ja | Eindeutiger API-Schlüssel zur Anfrage-Authentifizierung. |
| Parameter | Datentyp | Beschreibung |
|---|---|---|
| status | String | Feld, das die erfolgreiche Ausführung ("success") oder einen Fehler ("error") anzeigt. |
| msg | String | Fehlermeldung oder zusätzliche Anfrageinformationen. |
| code | Nummer | Antwortcode, z.B. 200 für eine erfolgreiche Anfrage. |
| balance | Nummer | Aktueller Kontostand des Benutzers. |
<?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>';
}