Actor picture

Monitoring Runner

apify/monitoring-runner

The monitoring runner is a part of the Apify Monitoring Suite (apify/monitoring). See its readme for more information and how to use this.

No credit card required

Author's avatarApify
  • Modified
  • Users91
  • Runs1,078,944

To run the code examples, you need to have an Apify account. Replace <YOUR_API_TOKEN> in the code with your API token. For a more detailed explanation, please read about running actors via the API in Apify Docs.

import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with API token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare actor input
const input = {
    "limit": 1000,
    "checkersInput": {
        "RESOURCE_STATS_CHECKER": {},
        "DEDUPLICATION_CHECKER": {
            "uniqueKey": "email"
        },
        "SCHEMA_VALIDATOR_CHECKER": {
            "options": [
                {
                    "resourceList": [
                        "id",
                        "id"
                    ],
                    "resourceRegex": "",
                    "minItemCount": 100,
                    "maxItemCount": 5000,
                    "validationSchema": "{ address: String, open: Boolean }"
                }
            ]
        }
    },
    "reportersInput": {
        "EMAIL_REPORTER": {
            "sendMailInput": {
                "to": "info@apify.com",
                "subject": "My monitoring task report"
            }
        },
        "SLACK_REPORTER": {
            "slackInput": {
                "token": "Your token",
                "message": "Hey, look what I have done!",
                "channel": "#monitoring"
            }
        },
        "DASHBOARD_REPORTER": {
            "notifyOnUpdate": true
        }
    }
};

(async () => {
    // Run the actor and wait for it to finish
    const run = await client.actor("apify/monitoring-runner").call(input);

    // Fetch and print actor results from the run's dataset (if any)
    console.log('Results from dataset');
    const { items } = await client.dataset(run.defaultDatasetId).listItems();
    items.forEach((item) => {
        console.dir(item);
    });
})();