PT PT
Entrar

API

Para obter acesso à nossa API, entre em contato com nosso serviço de suporte via Telegram no link: @Spy_House

Obter lista de idiomas

URL da requisição

Parâmetro Tipo de dados Obrigatório Descrição
api_key String Sim Chave API única para autenticação de requisições.
Parâmetro Tipo de dados Descrição
status String Campo indicando execução bem-sucedida ("success") ou erro ("error").
msg String Mensagem de erro ou informações adicionais da requisição.
code Número Código de resposta, ex., 200 para requisição bem-sucedida.
data Array Array de idiomas disponíveis.
└ lang_id Número Identificador único do idioma.
└ name String Nome do idioma em inglês.
└ iso_code String Código ISO do idioma (ex., "EN" para inglês, "PT" para português).
<?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>';
    }

Obter lista de países

URL da requisição

Parâmetro Tipo de dados Obrigatório Descrição
api_key String Sim Chave API única para autenticação de requisições.
Parâmetro Tipo de dados Descrição
status String Campo indicando execução bem-sucedida ("success") ou erro ("error").
msg String Mensagem de erro ou informações adicionais da requisição.
code Número Código de resposta, ex., 200 para requisição bem-sucedida.
data Array Array de países disponíveis.
└ country_id Número Identificador único do país.
└ name String Nome do país em inglês.
└ iso_code String Código ISO 3166-1 alpha-2 do país (ex., "BR" para Brasil).
└ iso_code_3 String Código ISO 3166-1 alpha-3 do país (ex., "BRA" para Brasil).
<?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>';
    }

Obter lista de navegadores

URL da requisição

Parâmetro Tipo de dados Obrigatório Descrição
api_key String Sim Chave API única para autenticação de requisições.
Parâmetro Tipo de dados Descrição
status String Campo indicando execução bem-sucedida ("success") ou erro ("error").
msg String Mensagem de erro ou informações adicionais da requisição.
code Número Código de resposta, ex., 200 para requisição bem-sucedida.
data Array Array de navegadores disponíveis.
└ browser_id Número Identificador único do navegador.
└ name String Nome do navegador.
<?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>';
    }

Obter lista de dispositivos

URL da requisição

Parâmetro Tipo de dados Obrigatório Descrição
api_key String Sim Chave API única para autenticação de requisições.
Parâmetro Tipo de dados Descrição
status String Campo indicando execução bem-sucedida ("success") ou erro ("error").
msg String Mensagem de erro ou informações adicionais da requisição.
code Número Código de resposta, ex., 200 para requisição bem-sucedida.
data Array Array de tipos de dispositivos disponíveis.
└ device_id Número Identificador único do tipo de dispositivo.
└ name String Nome de exibição do tipo de dispositivo.
└ value String Valor do tipo de dispositivo para requisições API.
<?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>';
    }

Obter lista de sistemas operacionais

URL da requisição

Parâmetro Tipo de dados Obrigatório Descrição
api_key String Sim Chave API única para autenticação de requisições.
Parâmetro Tipo de dados Descrição
status String Campo indicando execução bem-sucedida ("success") ou erro ("error").
msg String Mensagem de erro ou informações adicionais da requisição.
code Número Código de resposta, ex., 200 para requisição bem-sucedida.
data Array Array de sistemas operacionais disponíveis.
└ os_id Número Identificador único do sistema operacional.
└ name String Nome de exibição do sistema operacional.
└ value String Valor do sistema operacional para requisições API.
<?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>';
    }

Obter lista de redes de publicidade

URL da requisição

Parâmetro Tipo de dados Obrigatório Descrição
api_key String Sim Chave API única para autenticação de requisições.
Parâmetro Tipo de dados Descrição
status String Campo indicando execução bem-sucedida ("success") ou erro ("error").
msg String Mensagem de erro ou informações adicionais da requisição.
code Número Código de resposta, ex., 200 para requisição bem-sucedida.
data Array Array de redes de publicidade disponíveis.
└ network_id Número Identificador único da rede de publicidade.
└ name String Nome de exibição da rede de publicidade.
└ value String Valor da rede de publicidade para requisições API.
└ logo String URL do logo da rede de publicidade.
<?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>';
    }

Pesquisar criativos Push

Pesquisa de criativos push com vários filtros.

URL da requisição

Parâmetro Tipo de dados Obrigatório Descrição
api_key String Sim Chave API única para autenticação de requisições.
limit Número Não Número de itens por página (10-100). Padrão: 10.
offset Número Não Número de itens a pular. Usado para paginação. Padrão: 0.
keyword String Não Palavra-chave de pesquisa para filtrar criativos por título ou descrição.
countries Array Não Array de códigos ISO-2 de países (ex., ["US", "GB", "DE"]).
country_ids Array Não Array de IDs de países do endpoint /api/filters/countries. Tem prioridade sobre countries.
languages Array Não Array de códigos ISO de idiomas (ex., ["EN", "PT", "DE"]).
lang_ids Array Não Array de IDs de idiomas do endpoint /api/filters/languages. Tem prioridade sobre languages.
advertising_networks Array Não Array de nomes de redes de publicidade.
network_ids Array Não Array de IDs de redes do endpoint /api/filters/advertising-networks. Tem prioridade sobre advertising_networks.
browsers Array Não Array de nomes de navegadores.
browser_ids Array Não Array de IDs de navegadores do endpoint /api/filters/browsers. Tem prioridade sobre browsers.
operating_systems Array Não Array de valores de sistemas operacionais (ex., ["windows", "macos", "android"]).
devices Array Não Array de tipos de dispositivos (ex., ["desktop", "mobile", "tablet"]).
date_from String Não Data inicial para filtragem (formato: Y-m-d, ex., "2025-01-01").
date_to String Não Data final para filtragem (formato: Y-m-d, ex., "2025-12-31").
sort_by String Não Campo de ordenação: creation, activity, popularity.
sort_order String Não Direção de ordenação: asc ou desc.
only_adult Boolean Não Filtrar apenas conteúdo adulto. Booleano (true/false).
Parâmetro Tipo de dados Descrição
status String Campo indicando execução bem-sucedida ("success") ou erro ("error").
msg String Mensagem de erro ou informações adicionais da requisição.
code Número Código de resposta, ex., 200 para requisição bem-sucedida.
data Object Array de dados de fluxos correspondentes à requisição.
└ format String Formato do criativo (push, inpage, facebook, tiktok).
└ items Array Array de objetos de criativos.
  └ id Número Identificador único do criativo.
  └ title String Texto do título do criativo.
  └ description String Texto de descrição do criativo.
  └ category String Formato/categoria do criativo (push, inpage, facebook, tiktok).
  └ country Object Objeto de informações do país (code, name, iso_code_3).
    └ code String Código ISO 3166-1 alpha-2 do país (ex., "BR" para Brasil).
    └ name String Nome do país em inglês.
    └ iso_code_3 String Código ISO 3166-1 alpha-3 do país (ex., "BRA" para Brasil).
  └ file_size String Tamanho total do arquivo formatado.
  └ icon_url String URL da imagem do ícone do criativo.
  └ landing_url String URL da página de destino.
  └ created_at String Data de criação do criativo (formato Y-m-d).
  └ advertising_networks Array Array de nomes de redes de publicidade.
  └ languages Array Array de códigos ISO de idiomas.
  └ operating_systems Array Array de valores de sistemas operacionais.
  └ browsers Array Array de nomes de navegadores.
  └ devices Array Array de tipos de dispositivos.
  └ main_image_url String URL da imagem principal do criativo.
  └ is_adult Boolean Se o criativo contém conteúdo adulto.
  └ is_active Boolean Se o criativo está atualmente ativo.
└ pagination Object Objeto de informações de paginação.
  └ total Número Número total de criativos que correspondem aos filtros.
  └ limit Número Número de itens por página.
  └ offset Número Offset atual.
  └ has_more Boolean Se há mais itens disponíveis.
  └ returned_count Número Número de itens retornados nesta resposta.
└ filters_applied Object Objeto contendo os filtros aplicados.
└ timestamp String Timestamp da resposta no formato ISO 8601.
<?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

Pesquisar criativos Inpage

Pesquisa de criativos inpage com vários filtros.

URL da requisição

Parâmetro Tipo de dados Obrigatório Descrição
api_key String Sim Chave API única para autenticação de requisições.
limit Número Não Número de itens por página (10-100). Padrão: 10.
offset Número Não Número de itens a pular. Usado para paginação. Padrão: 0.
keyword String Não Palavra-chave de pesquisa para filtrar criativos por título ou descrição.
countries Array Não Array de códigos ISO-2 de países (ex., ["US", "GB", "DE"]).
country_ids Array Não Array de IDs de países do endpoint /api/filters/countries. Tem prioridade sobre countries.
languages Array Não Array de códigos ISO de idiomas (ex., ["EN", "PT", "DE"]).
lang_ids Array Não Array de IDs de idiomas do endpoint /api/filters/languages. Tem prioridade sobre languages.
advertising_networks Array Não Array de nomes de redes de publicidade.
network_ids Array Não Array de IDs de redes do endpoint /api/filters/advertising-networks. Tem prioridade sobre advertising_networks.
browsers Array Não Array de nomes de navegadores.
browser_ids Array Não Array de IDs de navegadores do endpoint /api/filters/browsers. Tem prioridade sobre browsers.
operating_systems Array Não Array de valores de sistemas operacionais (ex., ["windows", "macos", "android"]).
devices Array Não Array de tipos de dispositivos (ex., ["desktop", "mobile", "tablet"]).
date_from String Não Data inicial para filtragem (formato: Y-m-d, ex., "2025-01-01").
date_to String Não Data final para filtragem (formato: Y-m-d, ex., "2025-12-31").
sort_by String Não Campo de ordenação: creation, activity, popularity.
sort_order String Não Direção de ordenação: asc ou desc.
only_adult Boolean Não Filtrar apenas conteúdo adulto. Booleano (true/false).
Parâmetro Tipo de dados Descrição
status String Campo indicando execução bem-sucedida ("success") ou erro ("error").
msg String Mensagem de erro ou informações adicionais da requisição.
code Número Código de resposta, ex., 200 para requisição bem-sucedida.
data Object Array de dados de fluxos correspondentes à requisição.
└ format String Formato do criativo (push, inpage, facebook, tiktok).
└ items Array Array de objetos de criativos.
  └ id Número Identificador único do criativo.
  └ title String Texto do título do criativo.
  └ description String Texto de descrição do criativo.
  └ category String Formato/categoria do criativo (push, inpage, facebook, tiktok).
  └ country Object Objeto de informações do país (code, name, iso_code_3).
    └ code String Código ISO 3166-1 alpha-2 do país (ex., "BR" para Brasil).
    └ name String Nome do país em inglês.
    └ iso_code_3 String Código ISO 3166-1 alpha-3 do país (ex., "BRA" para Brasil).
  └ file_size String Tamanho total do arquivo formatado.
  └ icon_url String URL da imagem do ícone do criativo.
  └ landing_url String URL da página de destino.
  └ created_at String Data de criação do criativo (formato Y-m-d).
  └ advertising_networks Array Array de nomes de redes de publicidade.
  └ languages Array Array de códigos ISO de idiomas.
  └ operating_systems Array Array de valores de sistemas operacionais.
  └ browsers Array Array de nomes de navegadores.
  └ devices Array Array de tipos de dispositivos.
  └ main_image_url String URL da imagem principal do criativo.
  └ is_adult Boolean Se o criativo contém conteúdo adulto.
  └ is_active Boolean Se o criativo está atualmente ativo.
└ pagination Object Objeto de informações de paginação.
  └ total Número Número total de criativos que correspondem aos filtros.
  └ limit Número Número de itens por página.
  └ offset Número Offset atual.
  └ has_more Boolean Se há mais itens disponíveis.
  └ returned_count Número Número de itens retornados nesta resposta.
└ filters_applied Object Objeto contendo os filtros aplicados.
└ timestamp String Timestamp da resposta no formato ISO 8601.
<?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

Pesquisar criativos Facebook

Pesquisa de criativos do Facebook com vários filtros. Quando os resultados são poucos, a API pode iniciar uma pesquisa ao vivo e retornar um scrapingJob para polling.

Se scrapingJob.needStartPolling for true, chame o mesmo endpoint com isPolling=true e job_id para receber novos itens. Se o status for recently_completed ou rejected, nenhum job é criado e o polling não deve ser iniciado.

A pesquisa ao vivo inicia apenas quando exatamente um país é especificado no array countries.

A pesquisa ao vivo inicia apenas quando uma palavra-chave não vazia é fornecida.

URL da requisição

Parâmetro Tipo de dados Obrigatório Descrição
api_key String Sim Chave API única para autenticação de requisições.
limit Número Não Número de itens por página (10-100). Padrão: 10.
offset Número Não Número de itens a pular. Usado para paginação. Padrão: 0.
keyword String Não Palavra-chave de pesquisa para filtrar criativos por título ou descrição.
countries Array Não Array de códigos ISO-2 de países (ex., ["US", "GB", "DE"]).
country_ids Array Não Array de IDs de países do endpoint /api/filters/countries. Tem prioridade sobre countries.
languages Array Não Array de códigos ISO de idiomas (ex., ["EN", "PT", "DE"]).
lang_ids Array Não Array de IDs de idiomas do endpoint /api/filters/languages. Tem prioridade sobre languages.
date_from String Não Data inicial para filtragem (formato: Y-m-d, ex., "2025-01-01").
date_to String Não Data final para filtragem (formato: Y-m-d, ex., "2025-12-31").
sort_by String Não Campo de ordenação: creation, activity, popularity.
sort_order String Não Direção de ordenação: asc ou desc.
status String Não Filtro de status do anúncio: ALL, ACTIVE, INACTIVE.
media_type String Não Filtro de tipo de mídia: ALL, IMAGE, VIDEO.
search_type String Não Tipo de pesquisa: keyword_unordered, keyword_exact_phrase.
isPolling Boolean Não Ativar polling para atualizações de pesquisa ao vivo. Usar com job_id.
lastId Número Não Último ID de criativo recebido para polling incremental (opcional).
perPage Número Não Tamanho de página esperado para detecção de poucos resultados (12-96).
job_id String Não ID de job de pesquisa ao vivo do scrapingJob. Obrigatório quando isPolling=true.
Parâmetro Tipo de dados Descrição
status String Campo indicando execução bem-sucedida ("success") ou erro ("error").
msg String Mensagem de erro ou informações adicionais da requisição.
code Número Código de resposta, ex., 200 para requisição bem-sucedida.
data Object Array de dados de fluxos correspondentes à requisição.
└ format String Formato do criativo (push, inpage, facebook, tiktok).
└ items Array Array de objetos de criativos.
  └ id Número Identificador único do criativo.
  └ title String Texto do título do criativo.
  └ description String Texto de descrição do criativo.
  └ category String Formato/categoria do criativo (push, inpage, facebook, tiktok).
  └ country Object Objeto de informações do país (code, name, iso_code_3).
    └ code String Código ISO 3166-1 alpha-2 do país (ex., "BR" para Brasil).
    └ name String Nome do país em inglês.
    └ iso_code_3 String Código ISO 3166-1 alpha-3 do país (ex., "BRA" para Brasil).
  └ file_size String Tamanho total do arquivo formatado.
  └ icon_url String URL da imagem do ícone do criativo.
  └ landing_url String URL da página de destino.
  └ created_at String Data de criação do criativo (formato Y-m-d).
  └ advertising_networks Array Array de nomes de redes de publicidade.
  └ languages Array Array de códigos ISO de idiomas.
  └ operating_systems Array Array de valores de sistemas operacionais.
  └ browsers Array Array de nomes de navegadores.
  └ devices Array Array de tipos de dispositivos.
  └ main_image_url String URL da imagem principal do criativo.
  └ has_video Boolean Se o criativo contém vídeo.
  └ video_url String URL do vídeo (se has_video for true).
  └ video_duration Número Duração do vídeo em segundos (se aplicável).
  └ social_likes Número Número de likes (para anúncios sociais).
  └ social_comments Número Número de comentários (para anúncios sociais).
  └ social_shares Número Número de compartilhamentos (para anúncios sociais).
  └ is_adult Boolean Se o criativo contém conteúdo adulto.
  └ is_active Boolean Se o criativo está atualmente ativo.
└ pagination Object Objeto de informações de paginação.
  └ total Número Número total de criativos que correspondem aos filtros.
  └ limit Número Número de itens por página.
  └ offset Número Offset atual.
  └ has_more Boolean Se há mais itens disponíveis.
  └ returned_count Número Número de itens retornados nesta resposta.
└ filters_applied Object Objeto contendo os filtros aplicados.
└ scrapingJob Object Objeto de job de pesquisa ao vivo (presente quando a pesquisa ao vivo está iniciada ou ativa).
  └ type String Identificador de tipo de pesquisa ao vivo (ex., facebook_search).
  └ status String Status do job: dispatched, running, post_processing, completed, failed, error, recently_completed, rejected.
  └ needStartPolling Boolean Se o cliente deve começar o polling para atualizações.
  └ needStopPolling Boolean Se o cliente deve parar o polling.
  └ job_id String Identificador do job para polling (ausente quando o status é recently_completed ou rejected).
  └ polling_interval_seconds Número Intervalo de polling recomendado em segundos.
  └ estimatedDuration Número Duração estimada em segundos (0 quando completed ou recently_completed).
  └ message String Mensagem de status adicional do servidor ou parser.
  └ retry_after_seconds Número Quanto esperar antes de tentar novamente quando recently_completed/rejected (se fornecido).
  └ error String Detalhes do erro (presente quando o status é failed ou error).
└ timestamp String Timestamp da resposta no formato ISO 8601.
<?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.

Pesquisar criativos TikTok

Pesquisa de criativos do TikTok com vários filtros. Quando os resultados são poucos, a API pode iniciar uma pesquisa ao vivo e retornar um scrapingJob para polling.

Se scrapingJob.needStartPolling for true, chame o mesmo endpoint com isPolling=true e job_id para receber novos itens. Se o status for recently_completed ou rejected, nenhum job é criado e o polling não deve ser iniciado.

A pesquisa ao vivo inicia apenas quando exatamente um país é especificado no array countries.

A pesquisa ao vivo inicia apenas quando uma palavra-chave não vazia é fornecida.

URL da requisição

Parâmetro Tipo de dados Obrigatório Descrição
api_key String Sim Chave API única para autenticação de requisições.
limit Número Não Número de itens por página (10-100). Padrão: 10.
offset Número Não Número de itens a pular. Usado para paginação. Padrão: 0.
keyword String Não Palavra-chave de pesquisa para filtrar criativos por título ou descrição.
countries Array Não Array de códigos ISO-2 de países (ex., ["US", "GB", "DE"]).
country_ids Array Não Array de IDs de países do endpoint /api/filters/countries. Tem prioridade sobre countries.
languages Array Não Array de códigos ISO de idiomas (ex., ["EN", "PT", "DE"]).
lang_ids Array Não Array de IDs de idiomas do endpoint /api/filters/languages. Tem prioridade sobre languages.
date_from String Não Data inicial para filtragem (formato: Y-m-d, ex., "2025-01-01").
date_to String Não Data final para filtragem (formato: Y-m-d, ex., "2025-12-31").
sort_by String Não Campo de ordenação: creation, activity, popularity.
sort_order String Não Direção de ordenação: asc ou desc.
video_duration String Não Filtro de duração de vídeo TikTok: ALL, SHORT, MEDIUM, LONG.
isPolling Boolean Não Ativar polling para atualizações de pesquisa ao vivo. Usar com job_id.
lastId Número Não Último ID de criativo recebido para polling incremental (opcional).
perPage Número Não Tamanho de página esperado para detecção de poucos resultados (12-96).
job_id String Não ID de job de pesquisa ao vivo do scrapingJob. Obrigatório quando isPolling=true.
Parâmetro Tipo de dados Descrição
status String Campo indicando execução bem-sucedida ("success") ou erro ("error").
msg String Mensagem de erro ou informações adicionais da requisição.
code Número Código de resposta, ex., 200 para requisição bem-sucedida.
data Object Array de dados de fluxos correspondentes à requisição.
└ format String Formato do criativo (push, inpage, facebook, tiktok).
└ items Array Array de objetos de criativos.
  └ id Número Identificador único do criativo.
  └ title String Texto do título do criativo.
  └ description String Texto de descrição do criativo.
  └ category String Formato/categoria do criativo (push, inpage, facebook, tiktok).
  └ country Object Objeto de informações do país (code, name, iso_code_3).
    └ code String Código ISO 3166-1 alpha-2 do país (ex., "BR" para Brasil).
    └ name String Nome do país em inglês.
    └ iso_code_3 String Código ISO 3166-1 alpha-3 do país (ex., "BRA" para Brasil).
  └ file_size String Tamanho total do arquivo formatado.
  └ icon_url String URL da imagem do ícone do criativo.
  └ landing_url String URL da página de destino.
  └ created_at String Data de criação do criativo (formato Y-m-d).
  └ advertising_networks Array Array de nomes de redes de publicidade.
  └ languages Array Array de códigos ISO de idiomas.
  └ operating_systems Array Array de valores de sistemas operacionais.
  └ browsers Array Array de nomes de navegadores.
  └ devices Array Array de tipos de dispositivos.
  └ main_image_url String URL da imagem principal do criativo.
  └ has_video Boolean Se o criativo contém vídeo.
  └ video_url String URL do vídeo (se has_video for true).
  └ video_duration Número Duração do vídeo em segundos (se aplicável).
  └ social_likes Número Número de likes (para anúncios sociais).
  └ social_comments Número Número de comentários (para anúncios sociais).
  └ social_shares Número Número de compartilhamentos (para anúncios sociais).
  └ is_adult Boolean Se o criativo contém conteúdo adulto.
  └ is_active Boolean Se o criativo está atualmente ativo.
└ pagination Object Objeto de informações de paginação.
  └ total Número Número total de criativos que correspondem aos filtros.
  └ limit Número Número de itens por página.
  └ offset Número Offset atual.
  └ has_more Boolean Se há mais itens disponíveis.
  └ returned_count Número Número de itens retornados nesta resposta.
└ filters_applied Object Objeto contendo os filtros aplicados.
└ scrapingJob Object Objeto de job de pesquisa ao vivo (presente quando a pesquisa ao vivo está iniciada ou ativa).
  └ type String Identificador de tipo de pesquisa ao vivo (ex., facebook_search).
  └ status String Status do job: dispatched, running, post_processing, completed, failed, error, recently_completed, rejected.
  └ needStartPolling Boolean Se o cliente deve começar o polling para atualizações.
  └ needStopPolling Boolean Se o cliente deve parar o polling.
  └ job_id String Identificador do job para polling (ausente quando o status é recently_completed ou rejected).
  └ polling_interval_seconds Número Intervalo de polling recomendado em segundos.
  └ estimatedDuration Número Duração estimada em segundos (0 quando completed ou recently_completed).
  └ message String Mensagem de status adicional do servidor ou parser.
  └ retry_after_seconds Número Quanto esperar antes de tentar novamente quando recently_completed/rejected (se fornecido).
  └ error String Detalhes do erro (presente quando o status é failed ou error).
└ timestamp String Timestamp da resposta no formato ISO 8601.
<?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.

Transferir fundos

URL da requisição

Parâmetro Tipo de dados Obrigatório Descrição
api_key String Sim Chave API única para autenticação de requisições.
amount Número Sim Valor da transferência (mínimo 10 USD).
email String Sim Email do destinatário da transferência. Deve ser válido.
Parâmetro Tipo de dados Descrição
status String Campo indicando execução bem-sucedida ("success") ou erro ("error").
msg String Mensagem de erro ou informações adicionais da requisição.
code Número Código de resposta, ex., 200 para requisição bem-sucedida.
transaction_number String Número de transação único associado à transferência.
<?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>';
    }

Obter saldo da conta

URL da requisição

Parâmetro Tipo de dados Obrigatório Descrição
api_key String Sim Chave API única para autenticação de requisições.
Parâmetro Tipo de dados Descrição
status String Campo indicando execução bem-sucedida ("success") ou erro ("error").
msg String Mensagem de erro ou informações adicionais da requisição.
code Número Código de resposta, ex., 200 para requisição bem-sucedida.
balance Número Saldo atual da conta do usuário.
<?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>';
    }

Retrieving a list of white pages

URL da requisição

Parâmetro Tipo de dados Obrigatório Descrição
api_key String Sim Chave API única para autenticação de requisições.
search String Não String for searching by White Page name.
date_from String Não Start date for filtering (format: Y-m-d). (YYYY-MM-DD)
date_to String Não End date for filtering (format: Y-m-d). (YYYY-MM-DD)
limit Número Não Number of items per page (1 to 100). Default: 10.
page Número Não Page number, starting from 1. Default: 1.
Parâmetro Tipo de dados Descrição
status String Campo indicando execução bem-sucedida ("success") ou erro ("error").
msg String Mensagem de erro ou informações adicionais da requisição.
code Número Código de resposta, ex., 200 para requisição bem-sucedida.
data.items Array Array of user's White Pages.
data.items[].id Número Unique identifier of the White Page.
data.items[].name String Name of the White Page.
data.items[].status String Status value: generating, pending, in_progress, completed, failed, error.
data.items[].status_label String Translated status description.
data.items[].generator_label String AI generator name.
data.items[].vertical_label String Selected niche/vertical name.
data.items[].language_label String Target language.
data.items[].theme_label String Selected template/theme name.
data.items[].amount Número Price charged for generation (e.g., 5.00) or null.
data.items[].can_retry Boolean Whether generation can be retried.
data.items[].can_download Boolean Whether the zip archive is ready to download.
data.items[].error_message String Localized error reason if generation failed.
data.items[].created_at String Creation date and time.
<?php

function get_white_pages($apiKey)
    {
        
$ch curl_init('https://spy.house/api/white-pages?api_key=' $apiKey);

        
curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
        
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
        
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);

        
$body curl_exec($ch);
        
curl_close($ch);

        return 
json_decode($bodyTRUE);
    }

    
$result get_white_pages('YOUR_API_KEY');
    
print_r($result);

Retrieving generator configuration options

URL da requisição

Parâmetro Tipo de dados Obrigatório Descrição
api_key String Sim Chave API única para autenticação de requisições.
Parâmetro Tipo de dados Descrição
status String Campo indicando execução bem-sucedida ("success") ou erro ("error").
msg String Mensagem de erro ou informações adicionais da requisição.
code Número Código de resposta, ex., 200 para requisição bem-sucedida.
data.generators Array List of available AI generators for id_generator param.
data.generators[].id Número Numeric ID of the option.
data.generators[].slug String Slug/value of the option.
data.generators[].label String Translated name of the option.
data.verticals Array List of available niche verticals for id_vertical param.
data.verticals[].id Número Numeric ID of the option.
data.verticals[].slug String Slug/value of the option.
data.verticals[].label String Translated name of the option.
data.languages Array List of target languages for id_language param.
data.languages[].id Número Numeric ID of the option.
data.languages[].slug String Slug/value of the option.
data.languages[].label String Translated name of the option.
data.themes Object Templates map grouped by id_generator key.
<?php

function get_generator_options($apiKey)
    {
        
$ch curl_init('https://spy.house/api/white-pages/options?api_key=' $apiKey);

        
curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
        
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
        
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);

        
$body curl_exec($chcurl_close($ch);

        return 
json_decode($bodyTRUE);
    }

    
$result get_generator_options('YOUR_API_KEY');
    
print_r($result);

Generating a white page

URL da requisição

Parâmetro Tipo de dados Obrigatório Descrição
api_key String Sim Chave API única para autenticação de requisições.
name String Sim Name of the White Page (for reference, max 64 chars).
id_generator Número Sim Generator ID from options endpoint.
id_vertical Número Sim Vertical ID from options endpoint.
id_language Número Sim Language ID from options endpoint.
theme String Sim Theme slug string corresponding to the selected generator.
wp_domain String Não Optional target domain name.
wp_company String Não Optional company name for copy/legal page sections.
wp_phone String Não Optional contact phone number.
wp_email String Não Optional contact email address.
wp_keywords String Não Optional comma-separated keywords to tailor site content.
Parâmetro Tipo de dados Descrição
status String Campo indicando execução bem-sucedida ("success") ou erro ("error").
msg String Mensagem de erro ou informações adicionais da requisição.
code Número Código de resposta, ex., 200 para requisição bem-sucedida.
data.id Número Unique identifier of the White Page.
data.name String Name of the White Page.
data.status String Status value: generating, pending, in_progress, completed, failed, error.
data.status_label String Translated status description.
<?php

function generate_white_page($apiKey$params)
    {
        
$ch curl_init('https://spy.house/api/white-pages/generate?api_key=' $apiKey);

        
curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
        
curl_setopt($chCURLOPT_POSTTRUE);
        
curl_setopt($chCURLOPT_POSTFIELDShttp_build_query($params));
        
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
        
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);

        
$body curl_exec($ch);
        
curl_close($ch);

        return 
json_decode($bodyTRUE);
    }

    
$params = [
        
'name' => 'My First WhitePage',
        
'id_generator' => 1,
        
'id_vertical' => 2,
        
'id_language' => 1,
        
'theme' => 'travel'
    ];

    
$result generate_white_page('YOUR_API_KEY'$params);
    
print_r($result);

Retrieving generation status

URL da requisição

Parâmetro Tipo de dados Obrigatório Descrição
api_key String Sim Chave API única para autenticação de requisições.
Parâmetro Tipo de dados Descrição
status String Campo indicando execução bem-sucedida ("success") ou erro ("error").
msg String Mensagem de erro ou informações adicionais da requisição.
code Número Código de resposta, ex., 200 para requisição bem-sucedida.
data.id Número Unique identifier of the White Page.
data.status String Status value: generating, pending, in_progress, completed, failed, error.
data.status_label String Translated status description.
data.can_retry Boolean Whether generation can be retried.
data.can_download Boolean Whether the zip archive is ready to download.
data.error_message String Localized error reason if generation failed.
<?php

function get_white_page_status($apiKey$id)
    {
        
$ch curl_init('https://spy.house/api/white-pages/' $id '/status?api_key=' $apiKey);

        
curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
        
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
        
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);

        
$body curl_exec($ch);
        
curl_close($ch);

        return 
json_decode($bodyTRUE);
    }

    
$result get_white_page_status('YOUR_API_KEY'123);
    
print_r($result);

Retrieving download link

URL da requisição

Parâmetro Tipo de dados Obrigatório Descrição
api_key String Sim Chave API única para autenticação de requisições.
Parâmetro Tipo de dados Descrição
status String Campo indicando execução bem-sucedida ("success") ou erro ("error").
msg String Mensagem de erro ou informações adicionais da requisição.
code Número Código de resposta, ex., 200 para requisição bem-sucedida.
data.download_url String Temporary authenticated URL to download the zip file.
<?php

function get_white_page_download_url($apiKey$id)
    {
        
$ch curl_init('https://spy.house/api/white-pages/' $id '/download?api_key=' $apiKey);

        
curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
        
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
        
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);

        
$body curl_exec($ch);
        
curl_close($ch);

        return 
json_decode($bodyTRUE);
    }

    
$result get_white_page_download_url('YOUR_API_KEY'123);
    
print_r($result);

Downloading white page file

URL da requisição

Parâmetro Tipo de dados Obrigatório Descrição
api_key String Sim Chave API única para autenticação de requisições.

Returns the zip archive payload as binary stream with `Content-Type: application/zip` and `Content-Disposition: attachment` headers.

<?php

function download_white_page_file($apiKey$id$saveToPath)
    {
        
$fp fopen($saveToPath'w+');
        
$ch curl_init('https://spy.house/api/white-pages/' $id '/file?api_key=' $apiKey);

        
curl_setopt($chCURLOPT_FILE$fp);
        
curl_setopt($chCURLOPT_TIMEOUT300);
        
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
        
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);

        
curl_exec($chcurl_close($ch);
        
fclose($fp);
    }

    
download_white_page_file('YOUR_API_KEY'123'/path/to/save/archive.zip');

Deleting a white page

URL da requisição

Parâmetro Tipo de dados Obrigatório Descrição
api_key String Sim Chave API única para autenticação de requisições.
Parâmetro Tipo de dados Descrição
status String Campo indicando execução bem-sucedida ("success") ou erro ("error").
msg String Mensagem de erro ou informações adicionais da requisição.
code Número Código de resposta, ex., 200 para requisição bem-sucedida.
data.deleted Boolean True if deletion succeeded.
<?php

function delete_white_page($apiKey$id)
    {
        
$ch curl_init('https://spy.house/api/white-pages/' $id '?api_key=' $apiKey);

        
curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
        
curl_setopt($chCURLOPT_CUSTOMREQUEST'DELETE');
        
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
        
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);

        
$body curl_exec($ch);
        
curl_close($ch);

        return 
json_decode($bodyTRUE);
    }

    
$result delete_white_page('YOUR_API_KEY'123);
    
print_r($result);

Retrying failed generation

URL da requisição

Parâmetro Tipo de dados Obrigatório Descrição
api_key String Sim Chave API única para autenticação de requisições.
Parâmetro Tipo de dados Descrição
status String Campo indicando execução bem-sucedida ("success") ou erro ("error").
msg String Mensagem de erro ou informações adicionais da requisição.
code Número Código de resposta, ex., 200 para requisição bem-sucedida.
data.id Número Unique identifier of the White Page.
data.status String Status value: generating, pending, in_progress, completed, failed, error.
data.generating_label String Translated label for the new generating status.
<?php

function retry_white_page($apiKey$id)
    {
        
$ch curl_init('https://spy.house/api/white-pages/' $id '/retry?api_key=' $apiKey);

        
curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
        
curl_setopt($chCURLOPT_POSTTRUE);
        
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
        
curl_setopt($chCURLOPT_IPRESOLVECURL_IPRESOLVE_V4);

        
$body curl_exec($ch);
        
curl_close($ch);

        return 
json_decode($bodyTRUE);
    }

    
$result retry_white_page('YOUR_API_KEY'123);
    
print_r($result);