Content & Listings Monitor avatar
Content & Listings Monitor

Pricing

Pay per usage

Go to Store
Content & Listings Monitor

Content & Listings Monitor

Developed by

Vasek Codey Vlcek

Vasek Codey Vlcek

Maintained by Community

Monitor anything, anywhere. Receive mobile alerts or execute actions on updates of interest. Useful for listings, news, articles, products and more.

0.0 (0)

Pricing

Pay per usage

2

Total users

37

Monthly users

3

Runs succeeded

97%

Last modified

4 months ago

You can access the Content & Listings Monitor programmatically from your own applications by using the Apify API. You can also choose the language preference from below. To use the Apify API, you’ll need an Apify account and your API token, found in Integrations settings in Apify Console.

{
"openapi": "3.0.1",
"info": {
"version": "0.0",
"x-build-id": "ABVW9s7C8cyggnLzb"
},
"servers": [
{
"url": "https://api.apify.com/v2"
}
],
"paths": {
"/acts/cyberfly~listingmonitor/run-sync-get-dataset-items": {
"post": {
"operationId": "run-sync-get-dataset-items-cyberfly-listingmonitor",
"x-openai-isConsequential": false,
"summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
"tags": [
"Run Actor"
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/inputSchema"
}
}
}
},
"parameters": [
{
"name": "token",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"description": "Enter your Apify token here"
}
],
"responses": {
"200": {
"description": "OK"
}
}
}
},
"/acts/cyberfly~listingmonitor/runs": {
"post": {
"operationId": "runs-sync-cyberfly-listingmonitor",
"x-openai-isConsequential": false,
"summary": "Executes an Actor and returns information about the initiated run in response.",
"tags": [
"Run Actor"
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/inputSchema"
}
}
}
},
"parameters": [
{
"name": "token",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"description": "Enter your Apify token here"
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/runsResponseSchema"
}
}
}
}
}
}
},
"/acts/cyberfly~listingmonitor/run-sync": {
"post": {
"operationId": "run-sync-cyberfly-listingmonitor",
"x-openai-isConsequential": false,
"summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
"tags": [
"Run Actor"
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/inputSchema"
}
}
}
},
"parameters": [
{
"name": "token",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"description": "Enter your Apify token here"
}
],
"responses": {
"200": {
"description": "OK"
}
}
}
}
},
"components": {
"schemas": {
"inputSchema": {
"type": "object",
"properties": {
"config": {
"title": "Config",
"enum": [
"@ CUSTOM",
"eBay - item @",
"eBay - list @",
"FlexJobs",
"Freelancer",
"HackerNews",
"HackerNews + post metadata",
"StackOverflow",
"StackOverflow - Bounties",
"TechCrunch"
],
"type": "string",
"description": "Existing watchers to execute. <b>Need more?</b> <a href='https://apify.com/cyberfly' target='_blank' rel='noopener'>Let's get in touch!</a>",
"default": "HackerNews"
},
"url": {
"title": "URL",
"type": "string",
"description": "URL to load for content check or monitoring"
},
"includeUrl": {
"title": "Include in output",
"type": "boolean",
"description": "Extend each output result with this URL - you can use custom scraper instead with this extractor: `node.href` (URLs of list item links) or `document.location.href` (URL of current page)",
"default": false
},
"selectors": {
"title": "Content selectors (simple default)",
"type": "array",
"description": "Content selectors to monitor for each element to monitor and compare against previous listings (e.g. date, title, headers, content, keywords)",
"items": {
"type": "string"
}
},
"scrapers": {
"title": "Custom scrapers (advanced override of selectors)",
"type": "string",
"description": "Content extractors to apply for each element to monitor and compare against previous listings (e.g. date, title, headers, content, keywords). CTRL + / on selection to un-comment the example code block."
},
"watch": {
"title": "Watch",
"type": "boolean",
"description": "Run in default check mode (schedulable) or infinite watch mode (continuous) - latter might be more resource intensive",
"default": false
},
"delay": {
"title": "Delay",
"minimum": 1,
"maximum": 99999,
"type": "integer",
"description": "Amount of time to wait before next check (watch mode only)",
"default": 300
},
"limit": {
"title": "Limit",
"maximum": 99999,
"type": "integer",
"description": "Limit items to keep in dataset (history)",
"default": 1000
},
"options.headless": {
"title": "Headless",
"type": "boolean",
"description": "Run browser in invisible headless mode without GUI - more efficient but may break on some websites",
"default": false
},
"options.useChrome": {
"title": "Chrome",
"type": "boolean",
"description": "Run full browser (Chrome instead of Chromium) - less efficient but may work better on some websites",
"default": false
},
"options.useFingerprints": {
"title": "Stealth",
"type": "boolean",
"description": "Use automatic fingerprint spoofing to prevent automation from being detected on sensitive websites",
"default": false
},
"options.useTrafficBlocker": {
"title": "Blocker",
"type": "boolean",
"description": "Use network traffic blocker for any fluff and media to save resources - may break on some websites",
"default": true
},
"limits.alerts": {
"title": "Alerts",
"minimum": 1,
"maximum": 99,
"type": "integer",
"description": "Limit amount of alerts for a single check (one check/watch cycle). Remaining items will only be stored in output without notification.",
"default": 10
},
"limits.results": {
"title": "Results",
"minimum": 1,
"maximum": 9999,
"type": "integer",
"description": "Limit amount of alerts for a single check (one check/watch cycle). Remaining items will only be stored in output without notification.",
"default": 100
},
"keywords": {
"title": "Keywords (simple default)",
"type": "array",
"description": "Filter items to match specific keywords. Use the more advanced filters for more refined conditions.",
"default": [],
"items": {
"type": "string"
}
},
"filters": {
"title": "Filters (advanced override)",
"type": "string",
"description": "Advanced alternative to keywords. Define exact rules to match each item against specified conditions. CTRL + / on selection to un-comment the example code block."
},
"matcher": {
"title": "Fields (for relative filters)",
"type": "string",
"description": "Define how to match updates with records for relative filters (compare against previous records). Declare static fields to consider items identical. Exclude dynamic fields to ignore them from comparison."
},
"pages.enable": {
"title": "Pages?",
"type": "boolean",
"description": "Enable automatic pagination",
"default": false
},
"pages.retries": {
"title": "Retries",
"minimum": 1,
"maximum": 10,
"type": "integer",
"description": "Number of attempts to load more content through automatic pagination before considering results complete.",
"default": 3
},
"pages.selector": {
"title": "Pagination button selector",
"type": "string",
"description": "Pagination button selector (right arrow, load more etc.)"
},
"alerts.enable": {
"title": "Alert?",
"type": "boolean",
"description": "Notify specified channels on updates",
"default": true
},
"alerts.mail.enable": {
"title": "E-mail",
"type": "boolean",
"description": "Enable channel",
"default": false
},
"alerts.mail.address": {
"title": "E-mail",
"type": "string",
"description": "E-mail address"
},
"alerts.ntfy.enable": {
"title": "Ntfy",
"type": "boolean",
"description": "Enable channel <a href='https://ntfy.sh' target='_blank' rel='noopener'>Ntfy</a>",
"default": false
},
"alerts.ntfy.channel": {
"title": "Channel",
"type": "string",
"description": "Ntfy topic"
},
"hooks.load": {
"title": "Page load",
"type": "string",
"description": "Action to perform on page load (e.g. confirm cookie consent dialog)"
},
"login.url": {
"title": "Login URL",
"type": "string",
"description": "Login page in case website redirect between content and login page is not automatic"
},
"login.username": {
"title": "Username",
"type": "string",
"description": "Encrypted username (if applicable)"
},
"login.password": {
"title": "Password",
"type": "string",
"description": "Encrypted password (if applicable)"
},
"login.selectors.username": {
"title": "Username selector",
"type": "string",
"description": "Username selector on the login screen (if applicable)"
},
"login.selectors.password": {
"title": "Password selector",
"type": "string",
"description": "Password selector on the login screen (if applicable)"
},
"session": {
"title": "Session?",
"type": "boolean",
"description": "Store and reuse a login session for this website (if applicable)",
"default": false
},
"cookies": {
"title": "Cookies",
"type": "array",
"description": "Insert custom cookies from external browser to restore specific local state. Export cookies using browser extension EditThisCookie"
},
"proxy": {
"title": "Proxy",
"type": "object",
"description": "Define proxy to pass data through",
"default": {
"useApifyProxy": false
}
}
}
},
"runsResponseSchema": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"actId": {
"type": "string"
},
"userId": {
"type": "string"
},
"startedAt": {
"type": "string",
"format": "date-time",
"example": "2025-01-08T00:00:00.000Z"
},
"finishedAt": {
"type": "string",
"format": "date-time",
"example": "2025-01-08T00:00:00.000Z"
},
"status": {
"type": "string",
"example": "READY"
},
"meta": {
"type": "object",
"properties": {
"origin": {
"type": "string",
"example": "API"
},
"userAgent": {
"type": "string"
}
}
},
"stats": {
"type": "object",
"properties": {
"inputBodyLen": {
"type": "integer",
"example": 2000
},
"rebootCount": {
"type": "integer",
"example": 0
},
"restartCount": {
"type": "integer",
"example": 0
},
"resurrectCount": {
"type": "integer",
"example": 0
},
"computeUnits": {
"type": "integer",
"example": 0
}
}
},
"options": {
"type": "object",
"properties": {
"build": {
"type": "string",
"example": "latest"
},
"timeoutSecs": {
"type": "integer",
"example": 300
},
"memoryMbytes": {
"type": "integer",
"example": 1024
},
"diskMbytes": {
"type": "integer",
"example": 2048
}
}
},
"buildId": {
"type": "string"
},
"defaultKeyValueStoreId": {
"type": "string"
},
"defaultDatasetId": {
"type": "string"
},
"defaultRequestQueueId": {
"type": "string"
},
"buildNumber": {
"type": "string",
"example": "1.0.0"
},
"containerUrl": {
"type": "string"
},
"usage": {
"type": "object",
"properties": {
"ACTOR_COMPUTE_UNITS": {
"type": "integer",
"example": 0
},
"DATASET_READS": {
"type": "integer",
"example": 0
},
"DATASET_WRITES": {
"type": "integer",
"example": 0
},
"KEY_VALUE_STORE_READS": {
"type": "integer",
"example": 0
},
"KEY_VALUE_STORE_WRITES": {
"type": "integer",
"example": 1
},
"KEY_VALUE_STORE_LISTS": {
"type": "integer",
"example": 0
},
"REQUEST_QUEUE_READS": {
"type": "integer",
"example": 0
},
"REQUEST_QUEUE_WRITES": {
"type": "integer",
"example": 0
},
"DATA_TRANSFER_INTERNAL_GBYTES": {
"type": "integer",
"example": 0
},
"DATA_TRANSFER_EXTERNAL_GBYTES": {
"type": "integer",
"example": 0
},
"PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
"type": "integer",
"example": 0
},
"PROXY_SERPS": {
"type": "integer",
"example": 0
}
}
},
"usageTotalUsd": {
"type": "number",
"example": 0.00005
},
"usageUsd": {
"type": "object",
"properties": {
"ACTOR_COMPUTE_UNITS": {
"type": "integer",
"example": 0
},
"DATASET_READS": {
"type": "integer",
"example": 0
},
"DATASET_WRITES": {
"type": "integer",
"example": 0
},
"KEY_VALUE_STORE_READS": {
"type": "integer",
"example": 0
},
"KEY_VALUE_STORE_WRITES": {
"type": "number",
"example": 0.00005
},
"KEY_VALUE_STORE_LISTS": {
"type": "integer",
"example": 0
},
"REQUEST_QUEUE_READS": {
"type": "integer",
"example": 0
},
"REQUEST_QUEUE_WRITES": {
"type": "integer",
"example": 0
},
"DATA_TRANSFER_INTERNAL_GBYTES": {
"type": "integer",
"example": 0
},
"DATA_TRANSFER_EXTERNAL_GBYTES": {
"type": "integer",
"example": 0
},
"PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
"type": "integer",
"example": 0
},
"PROXY_SERPS": {
"type": "integer",
"example": 0
}
}
}
}
}
}
}
}
}
}

Content & Listings Monitor OpenAPI definition

OpenAPI is a standard for designing and describing RESTful APIs, allowing developers to define API structure, endpoints, and data formats in a machine-readable way. It simplifies API development, integration, and documentation.

OpenAPI is effective when used with AI agents and GPTs by standardizing how these systems interact with various APIs, for reliable integrations and efficient communication.

By defining machine-readable API specifications, OpenAPI allows AI models like GPTs to understand and use varied data sources, improving accuracy. This accelerates development, reduces errors, and provides context-aware responses, making OpenAPI a core component for AI applications.

You can download the OpenAPI definitions for Content & Listings Monitor from the options below:

If you’d like to learn more about how OpenAPI powers GPTs, read our blog post.

You can also check out our other API clients: