API
ভাষা তালিকা পুনরুদ্ধার
অনুরোধ URL
| প্যারামিটার | ডেটা টাইপ | প্রয়োজনীয় | বিবরণ |
|---|---|---|---|
| api_key | স্ট্রিং | হ্যাঁ | অনুরোধ প্রমাণীকরণের জন্য অনন্য API কী। |
| প্যারামিটার | ডেটা টাইপ | বিবরণ |
|---|---|---|
| status | স্ট্রিং | অনুরোধের সফল সম্পাদন ("success") বা ত্রুটি ("error") নির্দেশক ক্ষেত্র। |
| msg | স্ট্রিং | ত্রুটি বার্তা বা অতিরিক্ত অনুরোধ তথ্য। |
| code | সংখ্যা | প্রতিক্রিয়া কোড, যেমন, সফল অনুরোধের জন্য 200। |
| data | অ্যারে | উপলব্ধ ভাষার অ্যারে। |
| └ lang_id | সংখ্যা | অনন্য ভাষা শনাক্তকারী। |
| └ name | স্ট্রিং | ইংরেজিতে ভাষার নাম। |
| └ iso_code | স্ট্রিং | ISO ভাষা কোড (যেমন, ইংরেজির জন্য "EN", বাংলার জন্য "BN")। |
<?php
function api_request($data = [])
{
$ch = curl_init('https://spy.house/api/filters/languages');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$body = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
if ( ! empty($info['http_code']) && $info['http_code'] == 200) {
return json_decode($body, TRUE);
}
}
$body_request = ['api_key' => 'YOUR_API_KEY'];
$api_request = api_request($body_request);
if ( ! empty($api_request['status'])) {
echo '<pre>';
print_r($api_request);
echo '</pre>';
}
দেশ তালিকা পুনরুদ্ধার
অনুরোধ URL
| প্যারামিটার | ডেটা টাইপ | প্রয়োজনীয় | বিবরণ |
|---|---|---|---|
| api_key | স্ট্রিং | হ্যাঁ | অনুরোধ প্রমাণীকরণের জন্য অনন্য API কী। |
| প্যারামিটার | ডেটা টাইপ | বিবরণ |
|---|---|---|
| status | স্ট্রিং | অনুরোধের সফল সম্পাদন ("success") বা ত্রুটি ("error") নির্দেশক ক্ষেত্র। |
| msg | স্ট্রিং | ত্রুটি বার্তা বা অতিরিক্ত অনুরোধ তথ্য। |
| code | সংখ্যা | প্রতিক্রিয়া কোড, যেমন, সফল অনুরোধের জন্য 200। |
| data | অ্যারে | উপলব্ধ দেশের অ্যারে। |
| └ country_id | সংখ্যা | অনন্য দেশ শনাক্তকারী। |
| └ name | স্ট্রিং | ইংরেজিতে দেশের নাম। |
| └ iso_code | স্ট্রিং | ISO 3166-1 alpha-2 দেশ কোড (যেমন, বাংলাদেশের জন্য "BD")। |
| └ iso_code_3 | স্ট্রিং | ISO 3166-1 alpha-3 দেশ কোড (যেমন, বাংলাদেশের জন্য "BGD")। |
<?php
function api_request($data = [])
{
$ch = curl_init('https://spy.house/api/filters/countries');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$body = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
if ( ! empty($info['http_code']) && $info['http_code'] == 200) {
return json_decode($body, TRUE);
}
}
$body_request = ['api_key' => 'YOUR_API_KEY'];
$api_request = api_request($body_request);
if ( ! empty($api_request['status'])) {
echo '<pre>';
print_r($api_request);
echo '</pre>';
}
ব্রাউজার তালিকা পুনরুদ্ধার
অনুরোধ URL
| প্যারামিটার | ডেটা টাইপ | প্রয়োজনীয় | বিবরণ |
|---|---|---|---|
| api_key | স্ট্রিং | হ্যাঁ | অনুরোধ প্রমাণীকরণের জন্য অনন্য API কী। |
| প্যারামিটার | ডেটা টাইপ | বিবরণ |
|---|---|---|
| status | স্ট্রিং | অনুরোধের সফল সম্পাদন ("success") বা ত্রুটি ("error") নির্দেশক ক্ষেত্র। |
| msg | স্ট্রিং | ত্রুটি বার্তা বা অতিরিক্ত অনুরোধ তথ্য। |
| code | সংখ্যা | প্রতিক্রিয়া কোড, যেমন, সফল অনুরোধের জন্য 200। |
| data | অ্যারে | উপলব্ধ ব্রাউজারের অ্যারে। |
| └ browser_id | সংখ্যা | অনন্য ব্রাউজার শনাক্তকারী। |
| └ name | স্ট্রিং | ব্রাউজারের নাম। |
<?php
function api_request($data = [])
{
$ch = curl_init('https://spy.house/api/filters/browsers');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$body = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
if ( ! empty($info['http_code']) && $info['http_code'] == 200) {
return json_decode($body, TRUE);
}
}
$body_request = ['api_key' => 'YOUR_API_KEY'];
$api_request = api_request($body_request);
if ( ! empty($api_request['status'])) {
echo '<pre>';
print_r($api_request);
echo '</pre>';
}
ডিভাইস তালিকা পুনরুদ্ধার
অনুরোধ URL
| প্যারামিটার | ডেটা টাইপ | প্রয়োজনীয় | বিবরণ |
|---|---|---|---|
| api_key | স্ট্রিং | হ্যাঁ | অনুরোধ প্রমাণীকরণের জন্য অনন্য API কী। |
| প্যারামিটার | ডেটা টাইপ | বিবরণ |
|---|---|---|
| status | স্ট্রিং | অনুরোধের সফল সম্পাদন ("success") বা ত্রুটি ("error") নির্দেশক ক্ষেত্র। |
| msg | স্ট্রিং | ত্রুটি বার্তা বা অতিরিক্ত অনুরোধ তথ্য। |
| code | সংখ্যা | প্রতিক্রিয়া কোড, যেমন, সফল অনুরোধের জন্য 200। |
| data | অ্যারে | উপলব্ধ ডিভাইস ধরনের অ্যারে। |
| └ device_id | সংখ্যা | অনন্য ডিভাইস ধরনের শনাক্তকারী। |
| └ name | স্ট্রিং | ডিভাইস ধরনের প্রদর্শন নাম। |
| └ value | স্ট্রিং | API অনুরোধের জন্য ডিভাইস ধরনের মান। |
<?php
function api_request($data = [])
{
$ch = curl_init('https://spy.house/api/filters/devices');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$body = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
if ( ! empty($info['http_code']) && $info['http_code'] == 200) {
return json_decode($body, TRUE);
}
}
$body_request = ['api_key' => 'YOUR_API_KEY'];
$api_request = api_request($body_request);
if ( ! empty($api_request['status'])) {
echo '<pre>';
print_r($api_request);
echo '</pre>';
}
অপারেটিং সিস্টেম তালিকা পুনরুদ্ধার
অনুরোধ URL
| প্যারামিটার | ডেটা টাইপ | প্রয়োজনীয় | বিবরণ |
|---|---|---|---|
| api_key | স্ট্রিং | হ্যাঁ | অনুরোধ প্রমাণীকরণের জন্য অনন্য API কী। |
| প্যারামিটার | ডেটা টাইপ | বিবরণ |
|---|---|---|
| status | স্ট্রিং | অনুরোধের সফল সম্পাদন ("success") বা ত্রুটি ("error") নির্দেশক ক্ষেত্র। |
| msg | স্ট্রিং | ত্রুটি বার্তা বা অতিরিক্ত অনুরোধ তথ্য। |
| code | সংখ্যা | প্রতিক্রিয়া কোড, যেমন, সফল অনুরোধের জন্য 200। |
| data | অ্যারে | উপলব্ধ অপারেটিং সিস্টেমের অ্যারে। |
| └ os_id | সংখ্যা | অনন্য অপারেটিং সিস্টেম শনাক্তকারী। |
| └ name | স্ট্রিং | অপারেটিং সিস্টেমের প্রদর্শন নাম। |
| └ value | স্ট্রিং | API অনুরোধের জন্য অপারেটিং সিস্টেমের মান। |
<?php
function api_request($data = [])
{
$ch = curl_init('https://spy.house/api/filters/operating_systems');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$body = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
if ( ! empty($info['http_code']) && $info['http_code'] == 200) {
return json_decode($body, TRUE);
}
}
$body_request = ['api_key' => 'YOUR_API_KEY'];
$api_request = api_request($body_request);
if ( ! empty($api_request['status'])) {
echo '<pre>';
print_r($api_request);
echo '</pre>';
}
বিজ্ঞাপন নেটওয়ার্ক তালিকা পুনরুদ্ধার
অনুরোধ URL
| প্যারামিটার | ডেটা টাইপ | প্রয়োজনীয় | বিবরণ |
|---|---|---|---|
| api_key | স্ট্রিং | হ্যাঁ | অনুরোধ প্রমাণীকরণের জন্য অনন্য API কী। |
| প্যারামিটার | ডেটা টাইপ | বিবরণ |
|---|---|---|
| status | স্ট্রিং | অনুরোধের সফল সম্পাদন ("success") বা ত্রুটি ("error") নির্দেশক ক্ষেত্র। |
| msg | স্ট্রিং | ত্রুটি বার্তা বা অতিরিক্ত অনুরোধ তথ্য। |
| code | সংখ্যা | প্রতিক্রিয়া কোড, যেমন, সফল অনুরোধের জন্য 200। |
| data | অ্যারে | উপলব্ধ বিজ্ঞাপন নেটওয়ার্কের অ্যারে। |
| └ network_id | সংখ্যা | অনন্য বিজ্ঞাপন নেটওয়ার্ক শনাক্তকারী। |
| └ name | স্ট্রিং | বিজ্ঞাপন নেটওয়ার্কের প্রদর্শন নাম। |
| └ value | স্ট্রিং | API অনুরোধের জন্য বিজ্ঞাপন নেটওয়ার্কের মান। |
| └ logo | স্ট্রিং | বিজ্ঞাপন নেটওয়ার্ক লোগো URL। |
<?php
function api_request($data = [])
{
$ch = curl_init('https://spy.house/api/filters/advertising_networks');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$body = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
if ( ! empty($info['http_code']) && $info['http_code'] == 200) {
return json_decode($body, TRUE);
}
}
$body_request = ['api_key' => 'YOUR_API_KEY'];
$api_request = api_request($body_request);
if ( ! empty($api_request['status'])) {
echo '<pre>';
print_r($api_request);
echo '</pre>';
}
Push ক্রিয়েটিভ অনুসন্ধান
বিভিন্ন ফিল্টার সহ push ক্রিয়েটিভ অনুসন্ধান।
অনুরোধ URL
| প্যারামিটার | ডেটা টাইপ | প্রয়োজনীয় | বিবরণ |
|---|---|---|---|
| api_key | স্ট্রিং | হ্যাঁ | অনুরোধ প্রমাণীকরণের জন্য অনন্য API কী। |
| limit | সংখ্যা | না | প্রতি পৃষ্ঠায় আইটেম সংখ্যা (10-100)। ডিফল্ট: 10। |
| offset | সংখ্যা | না | এড়িয়ে যাওয়া আইটেম সংখ্যা। পেজিনেশনের জন্য ব্যবহৃত। ডিফল্ট: 0। |
| keyword | স্ট্রিং | না | শিরোনাম বা বিবরণ দ্বারা ক্রিয়েটিভ ফিল্টার করতে অনুসন্ধান কীওয়ার্ড। |
| countries | অ্যারে | না | ISO-2 দেশ কোডের অ্যারে (যেমন, ["US", "GB", "DE"])। |
| country_ids | অ্যারে | না | /api/filters/countries এন্ডপয়েন্ট থেকে দেশ আইডির অ্যারে। countries এর উপর অগ্রাধিকার। |
| languages | অ্যারে | না | ISO ভাষা কোডের অ্যারে (যেমন, ["EN", "BN", "DE"])। |
| lang_ids | অ্যারে | না | /api/filters/languages এন্ডপয়েন্ট থেকে ভাষা আইডির অ্যারে। languages এর উপর অগ্রাধিকার। |
| advertising_networks | অ্যারে | না | বিজ্ঞাপন নেটওয়ার্ক নামের অ্যারে। |
| network_ids | অ্যারে | না | /api/filters/advertising-networks এন্ডপয়েন্ট থেকে নেটওয়ার্ক আইডির অ্যারে। advertising_networks এর উপর অগ্রাধিকার। |
| browsers | অ্যারে | না | ব্রাউজার নামের অ্যারে। |
| browser_ids | অ্যারে | না | /api/filters/browsers এন্ডপয়েন্ট থেকে ব্রাউজার আইডির অ্যারে। browsers এর উপর অগ্রাধিকার। |
| operating_systems | অ্যারে | না | অপারেটিং সিস্টেম মানের অ্যারে (যেমন, ["windows", "macos", "android"])। |
| devices | অ্যারে | না | ডিভাইস ধরনের অ্যারে (যেমন, ["desktop", "mobile", "tablet"])। |
| date_from | স্ট্রিং | না | ফিল্টারিংয়ের জন্য শুরুর তারিখ (ফরম্যাট: Y-m-d, যেমন, "2025-01-01")। |
| date_to | স্ট্রিং | না | ফিল্টারিংয়ের জন্য শেষ তারিখ (ফরম্যাট: Y-m-d, যেমন, "2025-12-31")। |
| sort_by | স্ট্রিং | না | সর্ট ফিল্ড: creation, activity, popularity। |
| sort_order | স্ট্রিং | না | সর্ট দিক: asc বা desc। |
| only_adult | Boolean | না | শুধুমাত্র প্রাপ্তবয়স্ক কন্টেন্ট ফিল্টার করুন। বুলিয়ান (true/false)। |
| প্যারামিটার | ডেটা টাইপ | বিবরণ |
|---|---|---|
| status | স্ট্রিং | অনুরোধের সফল সম্পাদন ("success") বা ত্রুটি ("error") নির্দেশক ক্ষেত্র। |
| msg | স্ট্রিং | ত্রুটি বার্তা বা অতিরিক্ত অনুরোধ তথ্য। |
| code | সংখ্যা | প্রতিক্রিয়া কোড, যেমন, সফল অনুরোধের জন্য 200। |
| data | Object | অনুরোধের সাথে মিলে যাওয়া ফ্লো ডেটার অ্যারে। |
| └ format | স্ট্রিং | ক্রিয়েটিভ ফরম্যাট (push, inpage, facebook, tiktok)। |
| └ items | অ্যারে | ক্রিয়েটিভ অবজেক্টের অ্যারে। |
| └ id | সংখ্যা | অনন্য ক্রিয়েটিভ শনাক্তকারী। |
| └ title | স্ট্রিং | ক্রিয়েটিভ শিরোনাম টেক্সট। |
| └ description | স্ট্রিং | ক্রিয়েটিভ বিবরণ টেক্সট। |
| └ category | স্ট্রিং | ক্রিয়েটিভ ফরম্যাট/ক্যাটাগরি (push, inpage, facebook, tiktok)। |
| └ country | Object | দেশ তথ্য অবজেক্ট (code, name, iso_code_3)। |
| └ code | স্ট্রিং | ISO 3166-1 alpha-2 দেশ কোড (যেমন, বাংলাদেশের জন্য "BD")। |
| └ name | স্ট্রিং | ইংরেজিতে দেশের নাম। |
| └ iso_code_3 | স্ট্রিং | ISO 3166-1 alpha-3 দেশ কোড (যেমন, বাংলাদেশের জন্য "BGD")। |
| └ file_size | স্ট্রিং | ফরম্যাট করা মোট ফাইল আকার। |
| └ icon_url | স্ট্রিং | ক্রিয়েটিভ আইকন ইমেজ URL। |
| └ landing_url | স্ট্রিং | ল্যান্ডিং পেজ URL। |
| └ created_at | স্ট্রিং | ক্রিয়েটিভ তৈরির তারিখ (Y-m-d ফরম্যাট)। |
| └ advertising_networks | অ্যারে | বিজ্ঞাপন নেটওয়ার্ক নামের অ্যারে। |
| └ languages | অ্যারে | ISO ভাষা কোডের অ্যারে। |
| └ operating_systems | অ্যারে | অপারেটিং সিস্টেম মানের অ্যারে। |
| └ browsers | অ্যারে | ব্রাউজার নামের অ্যারে। |
| └ devices | অ্যারে | ডিভাইস ধরনের অ্যারে। |
| └ main_image_url | স্ট্রিং | ক্রিয়েটিভ প্রধান ইমেজ URL। |
| └ is_adult | Boolean | ক্রিয়েটিভে প্রাপ্তবয়স্ক কন্টেন্ট আছে কিনা। |
| └ is_active | Boolean | ক্রিয়েটিভ বর্তমানে সক্রিয় কিনা। |
| └ pagination | Object | পেজিনেশন তথ্য অবজেক্ট। |
| └ total | সংখ্যা | ফিল্টারের সাথে মিলে যাওয়া মোট ক্রিয়েটিভ সংখ্যা। |
| └ limit | সংখ্যা | প্রতি পৃষ্ঠায় আইটেম সংখ্যা। |
| └ offset | সংখ্যা | বর্তমান অফসেট। |
| └ has_more | Boolean | আরও আইটেম উপলব্ধ আছে কিনা। |
| └ returned_count | সংখ্যা | এই প্রতিক্রিয়ায় ফেরত দেওয়া আইটেম সংখ্যা। |
| └ filters_applied | Object | প্রয়োগ করা ফিল্টার ধারণকারী অবজেক্ট। |
| └ timestamp | স্ট্রিং | ISO 8601 ফরম্যাটে প্রতিক্রিয়া টাইমস্ট্যাম্প। |
<?php
function searchPushCreatives($params = [])
{
$ch = curl_init('https://spy.house/api/search/push');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
$body = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
if (!empty($info['http_code']) && $info['http_code'] == 200) {
return json_decode($body, TRUE);
}
return null;
}
// Example 1: Basic search with API key
$params = [
'api_key' => 'YOUR_API_KEY',
'limit' => 20,
'offset' => 0,
];
$result = searchPushCreatives($params);
if ($result && $result['status'] === 'success') {
foreach ($result['data']['items'] as $creative) {
echo "ID: " . $creative['id'] . " - " . $creative['title'] . "\n";
}
echo "Total: " . $result['data']['pagination']['total'] . "\n";
}
// Example 2: Search with ISO codes/names filters
$paramsWithFilters = [
'api_key' => 'YOUR_API_KEY',
'limit' => 50,
'offset' => 0,
'keyword' => 'casino',
'countries' => ['US', 'GB', 'DE'], // ISO-2 codes
'languages' => ['EN'], // ISO codes
'browsers' => ['Chrome', 'Firefox'], // Browser names
'sort_by' => 'creation',
'sort_order' => 'desc',
];
$filteredResult = searchPushCreatives($paramsWithFilters);
// Example 3: Search with ID-based filters (recommended)
// Use IDs from /api/filters/* endpoints for better performance
$paramsWithIds = [
'api_key' => 'YOUR_API_KEY',
'limit' => 50,
'offset' => 0,
'keyword' => 'casino',
'country_ids' => [1, 2, 3], // IDs from /api/filters/countries
'lang_ids' => [1], // IDs from /api/filters/languages
'network_ids' => [5, 10], // IDs from /api/filters/advertising-networks
'browser_ids' => [1, 2], // IDs from /api/filters/browsers
'sort_by' => 'creation',
'sort_order' => 'desc',
];
$resultWithIds = searchPushCreatives($paramsWithIds);
// Note: ID-based filters take precedence over name-based filters
// If both country_ids and countries are provided, country_ids will be used
Inpage ক্রিয়েটিভ অনুসন্ধান
বিভিন্ন ফিল্টার সহ inpage ক্রিয়েটিভ অনুসন্ধান।
অনুরোধ URL
| প্যারামিটার | ডেটা টাইপ | প্রয়োজনীয় | বিবরণ |
|---|---|---|---|
| api_key | স্ট্রিং | হ্যাঁ | অনুরোধ প্রমাণীকরণের জন্য অনন্য API কী। |
| limit | সংখ্যা | না | প্রতি পৃষ্ঠায় আইটেম সংখ্যা (10-100)। ডিফল্ট: 10। |
| offset | সংখ্যা | না | এড়িয়ে যাওয়া আইটেম সংখ্যা। পেজিনেশনের জন্য ব্যবহৃত। ডিফল্ট: 0। |
| keyword | স্ট্রিং | না | শিরোনাম বা বিবরণ দ্বারা ক্রিয়েটিভ ফিল্টার করতে অনুসন্ধান কীওয়ার্ড। |
| countries | অ্যারে | না | ISO-2 দেশ কোডের অ্যারে (যেমন, ["US", "GB", "DE"])। |
| country_ids | অ্যারে | না | /api/filters/countries এন্ডপয়েন্ট থেকে দেশ আইডির অ্যারে। countries এর উপর অগ্রাধিকার। |
| languages | অ্যারে | না | ISO ভাষা কোডের অ্যারে (যেমন, ["EN", "BN", "DE"])। |
| lang_ids | অ্যারে | না | /api/filters/languages এন্ডপয়েন্ট থেকে ভাষা আইডির অ্যারে। languages এর উপর অগ্রাধিকার। |
| advertising_networks | অ্যারে | না | বিজ্ঞাপন নেটওয়ার্ক নামের অ্যারে। |
| network_ids | অ্যারে | না | /api/filters/advertising-networks এন্ডপয়েন্ট থেকে নেটওয়ার্ক আইডির অ্যারে। advertising_networks এর উপর অগ্রাধিকার। |
| browsers | অ্যারে | না | ব্রাউজার নামের অ্যারে। |
| browser_ids | অ্যারে | না | /api/filters/browsers এন্ডপয়েন্ট থেকে ব্রাউজার আইডির অ্যারে। browsers এর উপর অগ্রাধিকার। |
| operating_systems | অ্যারে | না | অপারেটিং সিস্টেম মানের অ্যারে (যেমন, ["windows", "macos", "android"])। |
| devices | অ্যারে | না | ডিভাইস ধরনের অ্যারে (যেমন, ["desktop", "mobile", "tablet"])। |
| date_from | স্ট্রিং | না | ফিল্টারিংয়ের জন্য শুরুর তারিখ (ফরম্যাট: Y-m-d, যেমন, "2025-01-01")। |
| date_to | স্ট্রিং | না | ফিল্টারিংয়ের জন্য শেষ তারিখ (ফরম্যাট: Y-m-d, যেমন, "2025-12-31")। |
| sort_by | স্ট্রিং | না | সর্ট ফিল্ড: creation, activity, popularity। |
| sort_order | স্ট্রিং | না | সর্ট দিক: asc বা desc। |
| only_adult | Boolean | না | শুধুমাত্র প্রাপ্তবয়স্ক কন্টেন্ট ফিল্টার করুন। বুলিয়ান (true/false)। |
| প্যারামিটার | ডেটা টাইপ | বিবরণ |
|---|---|---|
| status | স্ট্রিং | অনুরোধের সফল সম্পাদন ("success") বা ত্রুটি ("error") নির্দেশক ক্ষেত্র। |
| msg | স্ট্রিং | ত্রুটি বার্তা বা অতিরিক্ত অনুরোধ তথ্য। |
| code | সংখ্যা | প্রতিক্রিয়া কোড, যেমন, সফল অনুরোধের জন্য 200। |
| data | Object | অনুরোধের সাথে মিলে যাওয়া ফ্লো ডেটার অ্যারে। |
| └ format | স্ট্রিং | ক্রিয়েটিভ ফরম্যাট (push, inpage, facebook, tiktok)। |
| └ items | অ্যারে | ক্রিয়েটিভ অবজেক্টের অ্যারে। |
| └ id | সংখ্যা | অনন্য ক্রিয়েটিভ শনাক্তকারী। |
| └ title | স্ট্রিং | ক্রিয়েটিভ শিরোনাম টেক্সট। |
| └ description | স্ট্রিং | ক্রিয়েটিভ বিবরণ টেক্সট। |
| └ category | স্ট্রিং | ক্রিয়েটিভ ফরম্যাট/ক্যাটাগরি (push, inpage, facebook, tiktok)। |
| └ country | Object | দেশ তথ্য অবজেক্ট (code, name, iso_code_3)। |
| └ code | স্ট্রিং | ISO 3166-1 alpha-2 দেশ কোড (যেমন, বাংলাদেশের জন্য "BD")। |
| └ name | স্ট্রিং | ইংরেজিতে দেশের নাম। |
| └ iso_code_3 | স্ট্রিং | ISO 3166-1 alpha-3 দেশ কোড (যেমন, বাংলাদেশের জন্য "BGD")। |
| └ file_size | স্ট্রিং | ফরম্যাট করা মোট ফাইল আকার। |
| └ icon_url | স্ট্রিং | ক্রিয়েটিভ আইকন ইমেজ URL। |
| └ landing_url | স্ট্রিং | ল্যান্ডিং পেজ URL। |
| └ created_at | স্ট্রিং | ক্রিয়েটিভ তৈরির তারিখ (Y-m-d ফরম্যাট)। |
| └ advertising_networks | অ্যারে | বিজ্ঞাপন নেটওয়ার্ক নামের অ্যারে। |
| └ languages | অ্যারে | ISO ভাষা কোডের অ্যারে। |
| └ operating_systems | অ্যারে | অপারেটিং সিস্টেম মানের অ্যারে। |
| └ browsers | অ্যারে | ব্রাউজার নামের অ্যারে। |
| └ devices | অ্যারে | ডিভাইস ধরনের অ্যারে। |
| └ main_image_url | স্ট্রিং | ক্রিয়েটিভ প্রধান ইমেজ URL। |
| └ is_adult | Boolean | ক্রিয়েটিভে প্রাপ্তবয়স্ক কন্টেন্ট আছে কিনা। |
| └ is_active | Boolean | ক্রিয়েটিভ বর্তমানে সক্রিয় কিনা। |
| └ pagination | Object | পেজিনেশন তথ্য অবজেক্ট। |
| └ total | সংখ্যা | ফিল্টারের সাথে মিলে যাওয়া মোট ক্রিয়েটিভ সংখ্যা। |
| └ limit | সংখ্যা | প্রতি পৃষ্ঠায় আইটেম সংখ্যা। |
| └ offset | সংখ্যা | বর্তমান অফসেট। |
| └ has_more | Boolean | আরও আইটেম উপলব্ধ আছে কিনা। |
| └ returned_count | সংখ্যা | এই প্রতিক্রিয়ায় ফেরত দেওয়া আইটেম সংখ্যা। |
| └ filters_applied | Object | প্রয়োগ করা ফিল্টার ধারণকারী অবজেক্ট। |
| └ timestamp | স্ট্রিং | ISO 8601 ফরম্যাটে প্রতিক্রিয়া টাইমস্ট্যাম্প। |
<?php
function searchInpageCreatives($params = [])
{
$ch = curl_init('https://spy.house/api/search/inpage');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
$body = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
if (!empty($info['http_code']) && $info['http_code'] == 200) {
return json_decode($body, TRUE);
}
return null;
}
// Example 1: Basic search with API key
$params = [
'api_key' => 'YOUR_API_KEY',
'limit' => 20,
'offset' => 0,
];
$result = searchInpageCreatives($params);
if ($result && $result['status'] === 'success') {
foreach ($result['data']['items'] as $creative) {
echo "ID: " . $creative['id'] . " - " . $creative['title'] . "\n";
}
echo "Total: " . $result['data']['pagination']['total'] . "\n";
}
// Example 2: Search with ISO codes/names filters
$paramsWithFilters = [
'api_key' => 'YOUR_API_KEY',
'limit' => 50,
'offset' => 0,
'keyword' => 'casino',
'countries' => ['US', 'GB', 'DE'], // ISO-2 codes
'languages' => ['EN'], // ISO codes
'browsers' => ['Chrome', 'Firefox'], // Browser names
'sort_by' => 'creation',
'sort_order' => 'desc',
];
$filteredResult = searchInpageCreatives($paramsWithFilters);
// Example 3: Search with ID-based filters (recommended)
// Use IDs from /api/filters/* endpoints for better performance
$paramsWithIds = [
'api_key' => 'YOUR_API_KEY',
'limit' => 50,
'offset' => 0,
'keyword' => 'casino',
'country_ids' => [1, 2, 3], // IDs from /api/filters/countries
'lang_ids' => [1], // IDs from /api/filters/languages
'network_ids' => [5, 10], // IDs from /api/filters/advertising-networks
'browser_ids' => [1, 2], // IDs from /api/filters/browsers
'sort_by' => 'creation',
'sort_order' => 'desc',
];
$resultWithIds = searchInpageCreatives($paramsWithIds);
// Note: ID-based filters take precedence over name-based filters
// If both country_ids and countries are provided, country_ids will be used
Facebook ক্রিয়েটিভ অনুসন্ধান
বিভিন্ন ফিল্টার সহ Facebook ক্রিয়েটিভ অনুসন্ধান। ফলাফল কম হলে, API লাইভ সার্চ শুরু করতে পারে এবং পোলিংয়ের জন্য scrapingJob ফেরত দিতে পারে।
যদি scrapingJob.needStartPolling true হয়, নতুন আইটেম পেতে isPolling=true এবং job_id সহ একই এন্ডপয়েন্ট কল করুন। স্ট্যাটাস recently_completed বা rejected হলে, কোনো জব তৈরি হয় না এবং পোলিং শুরু করা উচিত নয়।
লাইভ সার্চ শুধুমাত্র তখনই শুরু হয় যখন countries অ্যারেতে ঠিক একটি দেশ নির্দিষ্ট করা হয়।
লাইভ সার্চ শুধুমাত্র তখনই শুরু হয় যখন একটি অ-শূন্য কীওয়ার্ড প্রদান করা হয়।
অনুরোধ URL
| প্যারামিটার | ডেটা টাইপ | প্রয়োজনীয় | বিবরণ |
|---|---|---|---|
| api_key | স্ট্রিং | হ্যাঁ | অনুরোধ প্রমাণীকরণের জন্য অনন্য API কী। |
| limit | সংখ্যা | না | প্রতি পৃষ্ঠায় আইটেম সংখ্যা (10-100)। ডিফল্ট: 10। |
| offset | সংখ্যা | না | এড়িয়ে যাওয়া আইটেম সংখ্যা। পেজিনেশনের জন্য ব্যবহৃত। ডিফল্ট: 0। |
| keyword | স্ট্রিং | না | শিরোনাম বা বিবরণ দ্বারা ক্রিয়েটিভ ফিল্টার করতে অনুসন্ধান কীওয়ার্ড। |
| countries | অ্যারে | না | ISO-2 দেশ কোডের অ্যারে (যেমন, ["US", "GB", "DE"])। |
| country_ids | অ্যারে | না | /api/filters/countries এন্ডপয়েন্ট থেকে দেশ আইডির অ্যারে। countries এর উপর অগ্রাধিকার। |
| languages | অ্যারে | না | ISO ভাষা কোডের অ্যারে (যেমন, ["EN", "BN", "DE"])। |
| lang_ids | অ্যারে | না | /api/filters/languages এন্ডপয়েন্ট থেকে ভাষা আইডির অ্যারে। languages এর উপর অগ্রাধিকার। |
| date_from | স্ট্রিং | না | ফিল্টারিংয়ের জন্য শুরুর তারিখ (ফরম্যাট: Y-m-d, যেমন, "2025-01-01")। |
| date_to | স্ট্রিং | না | ফিল্টারিংয়ের জন্য শেষ তারিখ (ফরম্যাট: Y-m-d, যেমন, "2025-12-31")। |
| sort_by | স্ট্রিং | না | সর্ট ফিল্ড: creation, activity, popularity। |
| sort_order | স্ট্রিং | না | সর্ট দিক: asc বা desc। |
| status | স্ট্রিং | না | বিজ্ঞাপন স্ট্যাটাস ফিল্টার: ALL, ACTIVE, INACTIVE। |
| media_type | স্ট্রিং | না | মিডিয়া ধরন ফিল্টার: ALL, IMAGE, VIDEO। |
| search_type | স্ট্রিং | না | অনুসন্ধান ধরন: keyword_unordered, keyword_exact_phrase। |
| isPolling | Boolean | না | লাইভ সার্চ আপডেটের জন্য পোলিং সক্ষম করুন। job_id সহ ব্যবহার করুন। |
| lastId | সংখ্যা | না | ইনক্রিমেন্টাল পোলিংয়ের জন্য সর্বশেষ প্রাপ্ত ক্রিয়েটিভ আইডি (ঐচ্ছিক)। |
| perPage | সংখ্যা | না | কম ফলাফল সনাক্তকরণের জন্য প্রত্যাশিত পৃষ্ঠা আকার (12-96)। |
| job_id | স্ট্রিং | না | scrapingJob থেকে লাইভ সার্চ জব আইডি। isPolling=true হলে প্রয়োজন। |
| প্যারামিটার | ডেটা টাইপ | বিবরণ |
|---|---|---|
| status | স্ট্রিং | অনুরোধের সফল সম্পাদন ("success") বা ত্রুটি ("error") নির্দেশক ক্ষেত্র। |
| msg | স্ট্রিং | ত্রুটি বার্তা বা অতিরিক্ত অনুরোধ তথ্য। |
| code | সংখ্যা | প্রতিক্রিয়া কোড, যেমন, সফল অনুরোধের জন্য 200। |
| data | Object | অনুরোধের সাথে মিলে যাওয়া ফ্লো ডেটার অ্যারে। |
| └ format | স্ট্রিং | ক্রিয়েটিভ ফরম্যাট (push, inpage, facebook, tiktok)। |
| └ items | অ্যারে | ক্রিয়েটিভ অবজেক্টের অ্যারে। |
| └ id | সংখ্যা | অনন্য ক্রিয়েটিভ শনাক্তকারী। |
| └ title | স্ট্রিং | ক্রিয়েটিভ শিরোনাম টেক্সট। |
| └ description | স্ট্রিং | ক্রিয়েটিভ বিবরণ টেক্সট। |
| └ category | স্ট্রিং | ক্রিয়েটিভ ফরম্যাট/ক্যাটাগরি (push, inpage, facebook, tiktok)। |
| └ country | Object | দেশ তথ্য অবজেক্ট (code, name, iso_code_3)। |
| └ code | স্ট্রিং | ISO 3166-1 alpha-2 দেশ কোড (যেমন, বাংলাদেশের জন্য "BD")। |
| └ name | স্ট্রিং | ইংরেজিতে দেশের নাম। |
| └ iso_code_3 | স্ট্রিং | ISO 3166-1 alpha-3 দেশ কোড (যেমন, বাংলাদেশের জন্য "BGD")। |
| └ file_size | স্ট্রিং | ফরম্যাট করা মোট ফাইল আকার। |
| └ icon_url | স্ট্রিং | ক্রিয়েটিভ আইকন ইমেজ URL। |
| └ landing_url | স্ট্রিং | ল্যান্ডিং পেজ URL। |
| └ created_at | স্ট্রিং | ক্রিয়েটিভ তৈরির তারিখ (Y-m-d ফরম্যাট)। |
| └ advertising_networks | অ্যারে | বিজ্ঞাপন নেটওয়ার্ক নামের অ্যারে। |
| └ languages | অ্যারে | ISO ভাষা কোডের অ্যারে। |
| └ operating_systems | অ্যারে | অপারেটিং সিস্টেম মানের অ্যারে। |
| └ browsers | অ্যারে | ব্রাউজার নামের অ্যারে। |
| └ devices | অ্যারে | ডিভাইস ধরনের অ্যারে। |
| └ main_image_url | স্ট্রিং | ক্রিয়েটিভ প্রধান ইমেজ URL। |
| └ has_video | Boolean | ক্রিয়েটিভে ভিডিও আছে কিনা। |
| └ video_url | স্ট্রিং | ভিডিও URL (যদি has_video true হয়)। |
| └ video_duration | সংখ্যা | সেকেন্ডে ভিডিও সময়কাল (যদি প্রযোজ্য)। |
| └ social_likes | সংখ্যা | লাইক সংখ্যা (সোশ্যাল বিজ্ঞাপনের জন্য)। |
| └ social_comments | সংখ্যা | মন্তব্য সংখ্যা (সোশ্যাল বিজ্ঞাপনের জন্য)। |
| └ social_shares | সংখ্যা | শেয়ার সংখ্যা (সোশ্যাল বিজ্ঞাপনের জন্য)। |
| └ is_adult | Boolean | ক্রিয়েটিভে প্রাপ্তবয়স্ক কন্টেন্ট আছে কিনা। |
| └ is_active | Boolean | ক্রিয়েটিভ বর্তমানে সক্রিয় কিনা। |
| └ pagination | Object | পেজিনেশন তথ্য অবজেক্ট। |
| └ total | সংখ্যা | ফিল্টারের সাথে মিলে যাওয়া মোট ক্রিয়েটিভ সংখ্যা। |
| └ limit | সংখ্যা | প্রতি পৃষ্ঠায় আইটেম সংখ্যা। |
| └ offset | সংখ্যা | বর্তমান অফসেট। |
| └ has_more | Boolean | আরও আইটেম উপলব্ধ আছে কিনা। |
| └ returned_count | সংখ্যা | এই প্রতিক্রিয়ায় ফেরত দেওয়া আইটেম সংখ্যা। |
| └ filters_applied | Object | প্রয়োগ করা ফিল্টার ধারণকারী অবজেক্ট। |
| └ scrapingJob | Object | লাইভ সার্চ জব অবজেক্ট (লাইভ সার্চ শুরু বা সক্রিয় হলে উপস্থিত)। |
| └ type | স্ট্রিং | লাইভ সার্চ ধরন শনাক্তকারী (যেমন, facebook_search)। |
| └ status | স্ট্রিং | জব স্ট্যাটাস: dispatched, running, post_processing, completed, failed, error, recently_completed, rejected। |
| └ needStartPolling | Boolean | ক্লায়েন্টকে আপডেটের জন্য পোলিং শুরু করা উচিত কিনা। |
| └ needStopPolling | Boolean | ক্লায়েন্টকে পোলিং বন্ধ করা উচিত কিনা। |
| └ job_id | স্ট্রিং | পোলিংয়ের জন্য জব শনাক্তকারী (স্ট্যাটাস recently_completed বা rejected হলে অনুপস্থিত)। |
| └ polling_interval_seconds | সংখ্যা | সেকেন্ডে প্রস্তাবিত পোলিং ব্যবধান। |
| └ estimatedDuration | সংখ্যা | সেকেন্ডে আনুমানিক সময়কাল (completed বা recently_completed হলে 0)। |
| └ message | স্ট্রিং | সার্ভার বা পার্সার থেকে অতিরিক্ত স্ট্যাটাস বার্তা। |
| └ retry_after_seconds | সংখ্যা | recently_completed/rejected হলে পুনরায় চেষ্টা করার আগে কতক্ষণ অপেক্ষা করতে হবে (যদি প্রদান করা হয়)। |
| └ error | স্ট্রিং | ত্রুটির বিবরণ (স্ট্যাটাস failed বা error হলে উপস্থিত)। |
| └ timestamp | স্ট্রিং | ISO 8601 ফরম্যাটে প্রতিক্রিয়া টাইমস্ট্যাম্প। |
<?php
function searchFacebookCreatives($params = [])
{
$ch = curl_init('https://spy.house/api/search/facebook');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
$body = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
if (!empty($info['http_code']) && $info['http_code'] == 200) {
return json_decode($body, TRUE);
}
return null;
}
// Example 1: Basic search with API key
$params = [
'api_key' => 'YOUR_API_KEY',
'limit' => 20,
'offset' => 0,
'keyword' => 'casino',
'countries' => ['US'],
];
// Example 2: Social filters (status/media_type/search_type)
$paramsWithSocialFilters = [
'api_key' => 'YOUR_API_KEY',
'limit' => 20,
'offset' => 0,
'keyword' => 'casino',
'countries' => ['US'],
'status' => 'ACTIVE',
'media_type' => 'VIDEO',
'search_type' => 'keyword_unordered',
];
$result = searchFacebookCreatives($paramsWithSocialFilters);
// Example 3: Live search polling (when scrapingJob.needStartPolling is true)
$initial = searchFacebookCreatives([
'api_key' => 'YOUR_API_KEY',
'limit' => 10,
'offset' => 0,
'keyword' => 'casino',
'countries' => ['US'],
'status' => 'ACTIVE',
]);
if ($initial && !empty($initial['data']['scrapingJob'])) {
$scrapingJob = $initial['data']['scrapingJob'];
if (!empty($scrapingJob['needStartPolling']) && !empty($scrapingJob['job_id'])) {
$pollingResult = searchFacebookCreatives([
'api_key' => 'YOUR_API_KEY',
'isPolling' => true,
'job_id' => $scrapingJob['job_id'],
'limit' => 10,
'offset' => 0,
]);
}
}
// Note: If scrapingJob.status is "recently_completed" or "rejected",
// the job will not be created and polling should not be started.
TikTok ক্রিয়েটিভ অনুসন্ধান
বিভিন্ন ফিল্টার সহ TikTok ক্রিয়েটিভ অনুসন্ধান। ফলাফল কম হলে, API লাইভ সার্চ শুরু করতে পারে এবং পোলিংয়ের জন্য scrapingJob ফেরত দিতে পারে।
যদি scrapingJob.needStartPolling true হয়, নতুন আইটেম পেতে isPolling=true এবং job_id সহ একই এন্ডপয়েন্ট কল করুন। স্ট্যাটাস recently_completed বা rejected হলে, কোনো জব তৈরি হয় না এবং পোলিং শুরু করা উচিত নয়।
লাইভ সার্চ শুধুমাত্র তখনই শুরু হয় যখন countries অ্যারেতে ঠিক একটি দেশ নির্দিষ্ট করা হয়।
লাইভ সার্চ শুধুমাত্র তখনই শুরু হয় যখন একটি অ-শূন্য কীওয়ার্ড প্রদান করা হয়।
অনুরোধ URL
| প্যারামিটার | ডেটা টাইপ | প্রয়োজনীয় | বিবরণ |
|---|---|---|---|
| api_key | স্ট্রিং | হ্যাঁ | অনুরোধ প্রমাণীকরণের জন্য অনন্য API কী। |
| limit | সংখ্যা | না | প্রতি পৃষ্ঠায় আইটেম সংখ্যা (10-100)। ডিফল্ট: 10। |
| offset | সংখ্যা | না | এড়িয়ে যাওয়া আইটেম সংখ্যা। পেজিনেশনের জন্য ব্যবহৃত। ডিফল্ট: 0। |
| keyword | স্ট্রিং | না | শিরোনাম বা বিবরণ দ্বারা ক্রিয়েটিভ ফিল্টার করতে অনুসন্ধান কীওয়ার্ড। |
| countries | অ্যারে | না | ISO-2 দেশ কোডের অ্যারে (যেমন, ["US", "GB", "DE"])। |
| country_ids | অ্যারে | না | /api/filters/countries এন্ডপয়েন্ট থেকে দেশ আইডির অ্যারে। countries এর উপর অগ্রাধিকার। |
| languages | অ্যারে | না | ISO ভাষা কোডের অ্যারে (যেমন, ["EN", "BN", "DE"])। |
| lang_ids | অ্যারে | না | /api/filters/languages এন্ডপয়েন্ট থেকে ভাষা আইডির অ্যারে। languages এর উপর অগ্রাধিকার। |
| date_from | স্ট্রিং | না | ফিল্টারিংয়ের জন্য শুরুর তারিখ (ফরম্যাট: Y-m-d, যেমন, "2025-01-01")। |
| date_to | স্ট্রিং | না | ফিল্টারিংয়ের জন্য শেষ তারিখ (ফরম্যাট: Y-m-d, যেমন, "2025-12-31")। |
| sort_by | স্ট্রিং | না | সর্ট ফিল্ড: creation, activity, popularity। |
| sort_order | স্ট্রিং | না | সর্ট দিক: asc বা desc। |
| video_duration | স্ট্রিং | না | TikTok ভিডিও সময়কাল ফিল্টার: ALL, SHORT, MEDIUM, LONG। |
| isPolling | Boolean | না | লাইভ সার্চ আপডেটের জন্য পোলিং সক্ষম করুন। job_id সহ ব্যবহার করুন। |
| lastId | সংখ্যা | না | ইনক্রিমেন্টাল পোলিংয়ের জন্য সর্বশেষ প্রাপ্ত ক্রিয়েটিভ আইডি (ঐচ্ছিক)। |
| perPage | সংখ্যা | না | কম ফলাফল সনাক্তকরণের জন্য প্রত্যাশিত পৃষ্ঠা আকার (12-96)। |
| job_id | স্ট্রিং | না | scrapingJob থেকে লাইভ সার্চ জব আইডি। isPolling=true হলে প্রয়োজন। |
| প্যারামিটার | ডেটা টাইপ | বিবরণ |
|---|---|---|
| status | স্ট্রিং | অনুরোধের সফল সম্পাদন ("success") বা ত্রুটি ("error") নির্দেশক ক্ষেত্র। |
| msg | স্ট্রিং | ত্রুটি বার্তা বা অতিরিক্ত অনুরোধ তথ্য। |
| code | সংখ্যা | প্রতিক্রিয়া কোড, যেমন, সফল অনুরোধের জন্য 200। |
| data | Object | অনুরোধের সাথে মিলে যাওয়া ফ্লো ডেটার অ্যারে। |
| └ format | স্ট্রিং | ক্রিয়েটিভ ফরম্যাট (push, inpage, facebook, tiktok)। |
| └ items | অ্যারে | ক্রিয়েটিভ অবজেক্টের অ্যারে। |
| └ id | সংখ্যা | অনন্য ক্রিয়েটিভ শনাক্তকারী। |
| └ title | স্ট্রিং | ক্রিয়েটিভ শিরোনাম টেক্সট। |
| └ description | স্ট্রিং | ক্রিয়েটিভ বিবরণ টেক্সট। |
| └ category | স্ট্রিং | ক্রিয়েটিভ ফরম্যাট/ক্যাটাগরি (push, inpage, facebook, tiktok)। |
| └ country | Object | দেশ তথ্য অবজেক্ট (code, name, iso_code_3)। |
| └ code | স্ট্রিং | ISO 3166-1 alpha-2 দেশ কোড (যেমন, বাংলাদেশের জন্য "BD")। |
| └ name | স্ট্রিং | ইংরেজিতে দেশের নাম। |
| └ iso_code_3 | স্ট্রিং | ISO 3166-1 alpha-3 দেশ কোড (যেমন, বাংলাদেশের জন্য "BGD")। |
| └ file_size | স্ট্রিং | ফরম্যাট করা মোট ফাইল আকার। |
| └ icon_url | স্ট্রিং | ক্রিয়েটিভ আইকন ইমেজ URL। |
| └ landing_url | স্ট্রিং | ল্যান্ডিং পেজ URL। |
| └ created_at | স্ট্রিং | ক্রিয়েটিভ তৈরির তারিখ (Y-m-d ফরম্যাট)। |
| └ advertising_networks | অ্যারে | বিজ্ঞাপন নেটওয়ার্ক নামের অ্যারে। |
| └ languages | অ্যারে | ISO ভাষা কোডের অ্যারে। |
| └ operating_systems | অ্যারে | অপারেটিং সিস্টেম মানের অ্যারে। |
| └ browsers | অ্যারে | ব্রাউজার নামের অ্যারে। |
| └ devices | অ্যারে | ডিভাইস ধরনের অ্যারে। |
| └ main_image_url | স্ট্রিং | ক্রিয়েটিভ প্রধান ইমেজ URL। |
| └ has_video | Boolean | ক্রিয়েটিভে ভিডিও আছে কিনা। |
| └ video_url | স্ট্রিং | ভিডিও URL (যদি has_video true হয়)। |
| └ video_duration | সংখ্যা | সেকেন্ডে ভিডিও সময়কাল (যদি প্রযোজ্য)। |
| └ social_likes | সংখ্যা | লাইক সংখ্যা (সোশ্যাল বিজ্ঞাপনের জন্য)। |
| └ social_comments | সংখ্যা | মন্তব্য সংখ্যা (সোশ্যাল বিজ্ঞাপনের জন্য)। |
| └ social_shares | সংখ্যা | শেয়ার সংখ্যা (সোশ্যাল বিজ্ঞাপনের জন্য)। |
| └ is_adult | Boolean | ক্রিয়েটিভে প্রাপ্তবয়স্ক কন্টেন্ট আছে কিনা। |
| └ is_active | Boolean | ক্রিয়েটিভ বর্তমানে সক্রিয় কিনা। |
| └ pagination | Object | পেজিনেশন তথ্য অবজেক্ট। |
| └ total | সংখ্যা | ফিল্টারের সাথে মিলে যাওয়া মোট ক্রিয়েটিভ সংখ্যা। |
| └ limit | সংখ্যা | প্রতি পৃষ্ঠায় আইটেম সংখ্যা। |
| └ offset | সংখ্যা | বর্তমান অফসেট। |
| └ has_more | Boolean | আরও আইটেম উপলব্ধ আছে কিনা। |
| └ returned_count | সংখ্যা | এই প্রতিক্রিয়ায় ফেরত দেওয়া আইটেম সংখ্যা। |
| └ filters_applied | Object | প্রয়োগ করা ফিল্টার ধারণকারী অবজেক্ট। |
| └ scrapingJob | Object | লাইভ সার্চ জব অবজেক্ট (লাইভ সার্চ শুরু বা সক্রিয় হলে উপস্থিত)। |
| └ type | স্ট্রিং | লাইভ সার্চ ধরন শনাক্তকারী (যেমন, facebook_search)। |
| └ status | স্ট্রিং | জব স্ট্যাটাস: dispatched, running, post_processing, completed, failed, error, recently_completed, rejected। |
| └ needStartPolling | Boolean | ক্লায়েন্টকে আপডেটের জন্য পোলিং শুরু করা উচিত কিনা। |
| └ needStopPolling | Boolean | ক্লায়েন্টকে পোলিং বন্ধ করা উচিত কিনা। |
| └ job_id | স্ট্রিং | পোলিংয়ের জন্য জব শনাক্তকারী (স্ট্যাটাস recently_completed বা rejected হলে অনুপস্থিত)। |
| └ polling_interval_seconds | সংখ্যা | সেকেন্ডে প্রস্তাবিত পোলিং ব্যবধান। |
| └ estimatedDuration | সংখ্যা | সেকেন্ডে আনুমানিক সময়কাল (completed বা recently_completed হলে 0)। |
| └ message | স্ট্রিং | সার্ভার বা পার্সার থেকে অতিরিক্ত স্ট্যাটাস বার্তা। |
| └ retry_after_seconds | সংখ্যা | recently_completed/rejected হলে পুনরায় চেষ্টা করার আগে কতক্ষণ অপেক্ষা করতে হবে (যদি প্রদান করা হয়)। |
| └ error | স্ট্রিং | ত্রুটির বিবরণ (স্ট্যাটাস failed বা error হলে উপস্থিত)। |
| └ timestamp | স্ট্রিং | ISO 8601 ফরম্যাটে প্রতিক্রিয়া টাইমস্ট্যাম্প। |
<?php
function searchTikTokCreatives($params = [])
{
$ch = curl_init('https://spy.house/api/search/tiktok');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
$body = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
if (!empty($info['http_code']) && $info['http_code'] == 200) {
return json_decode($body, TRUE);
}
return null;
}
// Example 1: Basic search with API key
$params = [
'api_key' => 'YOUR_API_KEY',
'limit' => 20,
'offset' => 0,
'keyword' => 'casino',
'countries' => ['US'],
];
// Example 2: TikTok filter (video_duration)
$paramsWithVideoDuration = [
'api_key' => 'YOUR_API_KEY',
'limit' => 20,
'offset' => 0,
'keyword' => 'casino',
'countries' => ['US'],
'video_duration' => 'SHORT',
];
$result = searchTikTokCreatives($paramsWithVideoDuration);
// Example 3: Live search polling (when scrapingJob.needStartPolling is true)
$initial = searchTikTokCreatives([
'api_key' => 'YOUR_API_KEY',
'limit' => 10,
'offset' => 0,
'keyword' => 'casino',
'countries' => ['US'],
]);
if ($initial && !empty($initial['data']['scrapingJob'])) {
$scrapingJob = $initial['data']['scrapingJob'];
if (!empty($scrapingJob['needStartPolling']) && !empty($scrapingJob['job_id'])) {
$pollingResult = searchTikTokCreatives([
'api_key' => 'YOUR_API_KEY',
'isPolling' => true,
'job_id' => $scrapingJob['job_id'],
'limit' => 10,
'offset' => 0,
]);
}
}
// Note: If scrapingJob.status is "recently_completed" or "rejected",
// the job will not be created and polling should not be started.
তহবিল স্থানান্তর
অনুরোধ URL
| প্যারামিটার | ডেটা টাইপ | প্রয়োজনীয় | বিবরণ |
|---|---|---|---|
| api_key | স্ট্রিং | হ্যাঁ | অনুরোধ প্রমাণীকরণের জন্য অনন্য API কী। |
| amount | সংখ্যা | হ্যাঁ | স্থানান্তর পরিমাণ (সর্বনিম্ন 10 USD)। |
| স্ট্রিং | হ্যাঁ | প্রাপকের ইমেইল। বৈধ হতে হবে। |
| প্যারামিটার | ডেটা টাইপ | বিবরণ |
|---|---|---|
| status | স্ট্রিং | অনুরোধের সফল সম্পাদন ("success") বা ত্রুটি ("error") নির্দেশক ক্ষেত্র। |
| msg | স্ট্রিং | ত্রুটি বার্তা বা অতিরিক্ত অনুরোধ তথ্য। |
| code | সংখ্যা | প্রতিক্রিয়া কোড, যেমন, সফল অনুরোধের জন্য 200। |
| transaction_number | স্ট্রিং | স্থানান্তরের সাথে সম্পর্কিত অনন্য লেনদেন নম্বর। |
<?php
function api_request($data = [])
{
$ch = curl_init('https://spy.house/api/accounts/transfer_funds');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$body = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
if ( ! empty($info['http_code']) && $info['http_code'] == 200) {
return json_decode($body, TRUE);
}
}
$body_request = [
'api_key' => 'YOUR_API_KEY',
'amount' => 100,
'email' => '[email protected]'
];
$api_request = api_request($body_request);
if ( ! empty($api_request['status'])) {
echo '<pre>';
print_r($api_request);
echo '</pre>';
}
অ্যাকাউন্ট ব্যালেন্স পুনরুদ্ধার
অনুরোধ URL
| প্যারামিটার | ডেটা টাইপ | প্রয়োজনীয় | বিবরণ |
|---|---|---|---|
| api_key | স্ট্রিং | হ্যাঁ | অনুরোধ প্রমাণীকরণের জন্য অনন্য API কী। |
| প্যারামিটার | ডেটা টাইপ | বিবরণ |
|---|---|---|
| status | স্ট্রিং | অনুরোধের সফল সম্পাদন ("success") বা ত্রুটি ("error") নির্দেশক ক্ষেত্র। |
| msg | স্ট্রিং | ত্রুটি বার্তা বা অতিরিক্ত অনুরোধ তথ্য। |
| code | সংখ্যা | প্রতিক্রিয়া কোড, যেমন, সফল অনুরোধের জন্য 200। |
| balance | সংখ্যা | ব্যবহারকারীর বর্তমান অ্যাকাউন্ট ব্যালেন্স। |
<?php
function api_request($data = [])
{
$ch = curl_init('https://spy.house/api/accounts/balance');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$body = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
if ( ! empty($info['http_code']) && $info['http_code'] == 200) {
return json_decode($body, TRUE);
}
}
$body_request = [
'api_key' => 'YOUR_API_KEY'
];
$api_request = api_request($body_request);
if ( ! empty($api_request['status'])) {
echo '<pre>';
print_r($api_request);
echo '</pre>';
}