--- title: "Monitore campanhas e usuários puxando dados periodicamente" slug: "api-data-monitor" updated: 2026-06-12T10:30:51Z published: 2026-06-12T10:30:51Z canonical: "docs.xtremepush.com/api-data-monitor" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.xtremepush.com/llms.txt > Use this file to discover all available pages before exploring further. # Monitore campanhas e usuários puxando dados periodicamente Aprenda a usar a API para saber mais sobre campanhas, dispositivos e perfis de usuário Existem vários métodos disponíveis para você extrair dados relacionados a campanhas e usuários para quem você enviou campanhas. Alguns casos de uso comuns estão descritos abaixo. ## Verifique se uma campanha está ativa O método mais simples relacionado às campanhas é o método [de informações de campanha](/ref:campaign-info) . Isso é comumente usado para verificar se os templates de campanha estão ativos e para validar o conteúdo antes de executá-los: ```shell curl --request POST \  --url https://external-api.xtremepush.com/api/external/info/campaign \  --header 'Accept: application/json' \  --header 'Content-Type: application/json' \  --data '{    "apptoken": "APP_TOKEN",    "id": "CAMPAIGN_ID"  }' ``` Você pode usá-lo com opções de seleção se só precisar verificar certos parâmetros: ```shell curl --request POST \  --url https://external-api.xtremepush.com/api/external/info/campaign \  --header 'Accept: application/json' \  --header 'Content-Type: application/json' \  --data '{    "apptoken": "APP_TOKEN",    "id": "CAMPAIGN_ID",    "select": ["active", "messages", "push_text"]  }' ``` Esta é uma resposta de exemplo para um template de campanha ativa com conteúdo push para iOS e Android: ```JSON {    "success": true,    "code": 200,    "model": {        "active": 0,        "messages": {            "1": {                "push_text": "Hi {{first_name}}, {{amount}} has been debited from your account. Tap here if you did not approve this."            },            "2": {                "push_text": "Hi {{first_name}}, {{amount}} has been debited from your account. Tap here if you did not approve this."            },            "3": {                "push_text": null            },            "6": {                "push_text": null            },            "4": [],            "7": [],            "8": [],            "9": [],            "10": [],            "11": []        }    } } ``` ## Verifique por erros ou informações para uma campanha específica Se você quiser verificar periodicamente a entrega de uma campanha para usuários individuais, pode usar o [método push para a lista de dispositivos](/ref:push-list-device). O exemplo abaixo retornará quaisquer mensagens de erro para notificações que não foram entregues referenciadas pelo ID do dispositivo Xtremepush: ```JSON curl --request POST \  --url https://external-api.xtremepush.com/api/external/list/push-devices \  --header 'Accept: application/json' \  --header 'Content-Type: application/json' \  --data '{    "apptoken": "APP_TOKEN",    "condition": [      ["campaign_id", "=", "CAMPAIGN_ID"],      ["error", "=" , 1]    ],    "select": ["campaign_id", "action_id", "message", "create_time", "device_id", "error_message"],    "order": ["id DESC", "create_time"],    "limit": 50,    "offset": 0  }' ``` A resposta mostrará se uma mensagem não foi entregue e pode ajudar você a entender o motivo, como o aplicativo ter sido desinstalado no dispositivo do usuário, que é um dos motivos mais comuns para um esforço individual falhar. Exemplo de resposta com um erro de desinstalação de aplicativo abaixo: ```JSON {  "code": 200,  "success": true,  "data": [{    "action_id": 759147,    "campaign_id": 245624,    "create_time": 1464355910,    "device_id": 459923,    "error_message": "Application is Uninstalled"  }], } ``` No caso de canais baseados em perfil (como e-mail ou SMS), você pode usar o pedido a seguir para revisar erros individuais. Isso não usa o ID do dispositivo. ```JSON curl --request POST \  --url https://external-api.xtremepush.com/api/external/list/push-devices \  --header 'Accept: application/json' \  --header 'Content-Type: application/json' \  --data '{    "apptoken": "APP_TOKEN",    "condition": [      ["campaign_id", "=", "CAMPAIGN_ID"],      ["error", "=" , 1]    ],    "select": ["campaign_id", "action_id", "message_type_name", "message_params", "create_time", "error", "error_message"],    "order": ["id DESC", "create_time"],    "limit": 50,    "offset": 0  }' ``` Esta resposta de exemplo mostra um modelo de campanha ativa com conteúdo de e-mail, onde alguns e-mails não puderam ser enviados devido à ausência de parâmetros exigidos: ```JSON {  "success": true,  "code": 200,  "data": [{    "action_id": 313049676,    "campaign_id": 9661067,    "create_time": 1561385901,    "error": 1,    "error_message": "Required values are not set",    "message_params": {"first_name": "Sam", "ref_number": "1234", "user.email": "[[email protected]](mailto:[email protected])"},    "message_type_name": "email"  }, {    "action_id": 311506802,    "campaign_id": 9661067,    "create_time": 1561314578,    "error": 1,    "error_message": "Required values are not set",    "message_params": {"user.email": "[[email protected]](mailto:[email protected])"},    "message_type_name": "email"  }] } ``` Você só pode obter informações sobre mensagens entregues mudando a condição de erro para `["error", "=" , 0]`. Remover o `select` parâmetro daria todas as informações das mensagens recentes bem-sucedidas. Se você quiser dados sobre mensagens abertas, pode usar uma `["open", "=" , 1]` condição para filtrar dados em mensagens abertas. Por exemplo: ```JSON curl --request POST \  --url https://external-api.xtremepush.com/api/external/list/push-devices \  --header 'Accept: application/json' \  --header 'Content-Type: application/json' \  --data '{    "apptoken": "o7Sea-OzAGHtJeJHuD53Obyl8sbMuFTk",    "condition": [      ["campaign_id", "=", "53573097"],      ["open", "=" , 1]    ],    "select": ["campaign_id", "message", "create_time", "open_time", "device_id"],    "order": ["id DESC", "create_time"],    "limit": 50,    "offset": 0  }' ``` Exemplo de resposta abaixo: ```JSON {  "success": true,  "code": 200,  "data": [{    "campaign_id": 53573097,    "device_id": 1914404819,    "open_time": 1620187760,    "create_time": 1619887871  }, {    "campaign_id": 53573097,    "device_id": 1914404819,    "open_time": 1619801909,    "create_time": 1619801469  }] } ``` O ID do dispositivo nos exemplos acima é o ID do dispositivo Xtremepush, mas você também pode incluir o ID do usuário na sua solicitação (`"user_id"`). ## Obtenha informações sobre dispositivos Você pode consultar as [informações do dispositivo ou listar métodos](/ref:api-device) para obter informações sobre dispositivos, por exemplo, para verificar se os dispositivos ainda são endereçáveis para notificações push. Para verificar um ID específico de dispositivo Xtremepush, você pode usar o endpoint [de informações do dispositivo](/ref:device-info) com uma solicitação como a seguinte: ```JSON curl --request POST \  --url https://external-api.xtremepush.com/api/external/info/device \  --header 'Accept: application/json' \  --header 'Content-Type: application/json' \  --data '{    "apptoken": "APP_TOKEN",    "id": 626393090  }' ``` Isso permitirá que você obtenha informações úteis sobre o dispositivo, como: se ele está atualmente endereçável para notificações push (ativo e endereçável == 1), quando o app foi aberto pela última vez nesse dispositivo (`open_time`), outros IDs disponíveis como IDFA ou ID de anúncio Android, informações do dispositivo etc. Exemplo de resposta abaixo: ```JSON {  "success": true,  "code": 200,  "model": {    "id": 626393090,    "project_id": PROJECT_ID,    "application_id": 4069,    "profile_id": "11e9c59d08df7bd3b7090a22275e6966",    "create_time": 1566561386,    "deactivate_time": null,    "open_time": 1566577961,    "token": "60549f4dc442ce5eb101158da3240d1990a1f5fbbd96ce1d957f20e69421f8ed",    "push_sender_id": null,    "push_keys": null,    "active": 1,    "addressable": 1,    "subscription": 1,    "type": "ios",    "environment": "production",    "email": null,    "email_addressable": 0,    "email_subscription": 1,    "device_id": "73F81292-7A1F-4EBF-B01E-1783B3D46C21",    "device_idfv": "73F81292-7A1F-4EBF-B01E-1783B3D46C21",    "device_idfa": "4BD39DFC-198A-484C-A372-B5CA588FF9F2",    "device_adid": null,    "device_type": "iPhone",    "device_model": "iPhone10,5",    "device_model_name": "iPhone 8 Plus",    "device_os": "12.4",    "user_agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 12_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",    "name": "Maria’s iPhone",    "timezone": "Europe/Dublin",    "country": "IE",    "language": "en",    "language_app": "",    "browser": null,    "browser_type": null,    "browser_version": null,    "browser_opt_version": null,    "browser_os_version": null,    "browser_os_opt_version": null,    "carrier_name": "vodafone IE",    "app_version": "1.0",    "lib_version": "i-23082019-aib",    "sw_version": null,    "external_id": "AN_ID_FROM_YOUR_SYSTEM",    "ga_id": null,    "key": "TLhYyU-2Qk6sSo3qfSnVsF02ecoGYely",    "geo": 0,    "import": 0  } } ``` Se você quiser verificar periodicamente todos os dispositivos para manter os dados dos usuários endereçáveis, então pode usar o [endpoint de dispositivos com](/ref:device-list) paginação e os campos necessários: ```JSON curl --request POST \  --url https://external-api.xtremepush.com/api/external/list/device \  --header 'Accept: application/json' \  --header 'Content-Type: application/json' \  --data '{    "apptoken": "APP_TOKEN",    "select": ["active", "addressable", "external_id", "id", "open_time", "type"],    "order": ["id DESC", "create_time"],    "limit": 50,    "offset": 0  }' ``` Exemplo de resposta abaixo: ```JSON {  "success": true,  "code": 200,  "data": [{    "id": 2453832008,    "open_time": 1623233688,    "active": 1,    "addressable": 1,    "type": "android",    "external_id": null  }, {    "id": 2452826033,    "open_time": 1623134275,    "active": 1,    "addressable": 0,    "type": "web",    "external_id": null  }] } ``` ## Obtenha informações sobre os perfis dos usuários Se você quiser verificar periodicamente todos os perfis para manter dados sobre usuários endereçáveis/inscritos, pode usar o [método de perfil de lista](/ref:user-profile-list) com paginação e os campos que precisa. Por exemplo, a seguinte chamada verificará se há usuários que podem ser endereçáveis por e-mail, mas não estão inscritos para e-mail: ```JSON curl --request POST \  --url https://external-api.xtremepush.com/api/external/list/profile \  --header 'Accept: application/json' \  --header 'Content-Type: application/json' \  --data '{    "apptoken": "APP_TOKEN",    "select": ["email", "email_addressable", "email_subscription", "user_id"],    "condition": [      ["email_subscription", "=", 0],      ["email_addressable", "=", 1]],    "order": ["id ASC", "id"],    "limit": 50,    "offset": 0  }' ``` Exemplo de resposta abaixo: ```JSON {  "success": true,  "code": 200,  "data": [{    "user_id": "1235",    "email": "[email protected]",    "email_addressable": 1,    "email_subscription": 0  }] } ```