SaaS Outage & Status Monitor
Pricing
from $8.00 / 1,000 results
SaaS Outage & Status Monitor
Monitor third-party software supply chains by scraping vendor status pages. Generate daily digests of service disruptions, outages, and component health.
SaaS Outage & Status Monitor
Pricing
from $8.00 / 1,000 results
Monitor third-party software supply chains by scraping vendor status pages. Generate daily digests of service disruptions, outages, and component health.
You can access the SaaS Outage & Status 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.1", "x-build-id": "Bys5VIgJzsbGnqVoW" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/taroyamada~status-page-incident-digest-monitor/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-taroyamada-status-page-incident-digest-monitor", "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/taroyamada~status-page-incident-digest-monitor/runs": { "post": { "operationId": "runs-sync-taroyamada-status-page-incident-digest-monitor", "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/taroyamada~status-page-incident-digest-monitor/run-sync": { "post": { "operationId": "run-sync-taroyamada-status-page-incident-digest-monitor", "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", "required": [ "vendors" ], "properties": { "vendors": { "title": "Vendors to monitor (starter: 1 vendor)", "type": "array", "description": "List of vendors with their status page URLs. Each vendor must have a statusPageUrl. Optionally provide an incidentFeedUrl for RSS/Atom incident history. Starter path: 1 vendor, dataset mode." }, "requestTimeoutSeconds": { "title": "Request timeout (seconds)", "minimum": 5, "maximum": 120, "type": "integer", "description": "HTTP timeout per status page or incident feed request.", "default": 30 }, "userAgent": { "title": "Custom User-Agent", "type": "string", "description": "Optional User-Agent override for HTTP requests." }, "maxIncidentsPerVendor": { "title": "Max incidents in evidence", "minimum": 1, "maximum": 50, "type": "integer", "description": "Maximum number of recent incidents to include in the evidence array per vendor.", "default": 10 }, "incidentLookbackDays": { "title": "Incident lookback window (days)", "minimum": 0, "maximum": 365, "type": "integer", "description": "How many days back to look for incidents when filtering feed entries. 0 = all available.", "default": 30 }, "delivery": { "title": "Delivery mode", "enum": [ "dataset", "webhook" ], "type": "string", "description": "dataset: write rows to Apify dataset. webhook: POST digest to a URL. Starter path: dataset.", "default": "dataset" }, "datasetMode": { "title": "Dataset filter", "enum": [ "all", "changes_only", "action_needed" ], "type": "string", "description": "all: every vendor row. changes_only: only vendors whose state changed since last run. action_needed: only vendors where actionNeeded=true.", "default": "all" }, "webhookUrl": { "title": "Webhook URL", "type": "string", "description": "Required when delivery=webhook. Receives the full digest payload as JSON POST." }, "notifyOnNoChange": { "title": "Notify even when nothing changed", "type": "boolean", "description": "When false (recommended), webhook delivery is skipped if no vendor changed state.", "default": false }, "snapshotKey": { "title": "Snapshot key (recurring monitor)", "type": "string", "description": "Stable key for storing run-to-run state. Keep this constant across runs so change detection works correctly.", "default": "status-page-incident-snapshots" }, "concurrency": { "title": "Concurrency", "minimum": 1, "maximum": 10, "type": "integer", "description": "Number of vendors to fetch in parallel. Keep at 2-3 to avoid rate limiting.", "default": 3 }, "nowIso": { "title": "Override current time (ISO 8601)", "type": "string", "description": "Optional deterministic timestamp for testing. Leave empty for real runs." }, "dryRun": { "title": "Dry run", "type": "boolean", "description": "When true, no snapshots are saved and no webhook is fired. Use for previewing output.", "default": 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 } } } } } } } } }}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 SaaS Outage & Status 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: