{
  "openapi": "3.0.1",
  "info": {
    "title": "Service Status Checker - Is It Down? Status Page & Outage API",
    "description": "For AI agents: when a call to GitHub, OpenAI, AWS, Stripe or 400 other services fails, check what its official status page says now - operational, degraded, outage or maintenance, with active incidents and affected components. Monitoring mode returns only changes.",
    "version": "0.1",
    "x-build-id": "L3vXFJLF4tFFlnrge"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/neverempty~service-status-checker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-neverempty-service-status-checker",
        "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/neverempty~service-status-checker/runs": {
      "post": {
        "operationId": "runs-sync-neverempty-service-status-checker",
        "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/neverempty~service-status-checker/run-sync": {
      "post": {
        "operationId": "run-sync-neverempty-service-status-checker",
        "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": {
          "services": {
            "title": "Services to check",
            "type": "array",
            "description": "One per line: a service name (GitHub, OpenAI, Stripe), a domain or API host you call (api.openai.com, github.com), or a status page URL (https://www.githubstatus.com). Names are matched against a list of 407 official status pages that were read and verified on 2026-09-25 (exact name, a known alias, or a unique prefix). A domain that is not in the list is looked up at the usual status page locations (status.<domain>, <name>status.com, <name>-status.com and a few more) and used only if a status page this Actor can read answers there. Duplicates are checked once. If this is empty, the example service OpenAI is checked and every row says so in isExampleInput.",
            "items": {
              "type": "string"
            }
          },
          "onlyChanges": {
            "title": "Monitoring mode: return a service only when its status page changes",
            "type": "boolean",
            "description": "Off = every service comes back with its current official status. On = the Actor remembers what each status page said and, on later runs, returns a service only when something changed: the overall status, an incident started, was updated or ended, a component changed, a maintenance started or ended, or a new maintenance was scheduled. The first run returns every service once (changeType first_check). A service that was read but did not change is not returned and costs only the small check fee. Status pages that could not be read never change what is remembered.",
            "default": false
          },
          "watchName": {
            "title": "Watch name",
            "type": "string",
            "description": "Optional. A name for this watch, so two schedules that check the same service keep separate memories. Setting a watch name turns monitoring mode on. Letters, digits, - and _ are kept; up to 60 characters."
          },
          "resetMonitoringState": {
            "title": "Forget what this watch remembered",
            "type": "boolean",
            "description": "Clears the memory of this watch (the watch name above, or the default watch) before the run, so every service is returned once again as first_check.",
            "default": false
          },
          "includeAllComponents": {
            "title": "Return every component",
            "type": "boolean",
            "description": "Off = only the components that are not operational are returned (affectedComponents), plus the total count. On = the full component list with each component's status and group is also returned in components.",
            "default": false
          },
          "includeUpcomingMaintenance": {
            "title": "Include upcoming maintenance",
            "type": "boolean",
            "description": "Return the scheduled maintenance windows the status page announces (up to 20 per service, with the total in upcomingMaintenanceCount). Scheduled items whose end time has already passed are not called upcoming. For incident.io pages this needs one extra request. If the list could not be read, upcomingMaintenances is null rather than empty.",
            "default": true
          },
          "discoverUnknownDomains": {
            "title": "Look for status pages of domains that are not in the list",
            "type": "boolean",
            "description": "On = for a domain that is not in the verified list, try the usual status page locations and use one only if its type is recognised (Atlassian Statuspage, incident.io, Instatus, Better Stack or status.io) and its status can actually be read. Off = such a domain comes back as a free not-found row.",
            "default": true
          },
          "maxServices": {
            "title": "Maximum services per run",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Services after this many are not checked (a free row says how many). Up to 500.",
            "default": 200
          },
          "useProxy": {
            "title": "Retry through a proxy when a status page refuses the request",
            "type": "boolean",
            "description": "Every status page is requested directly first, which worked from Apify on every attempt measured on 2026-09-25 (48 of 48). If a page answers 403 or 429, the request is retried through an Apify datacenter proxy and then a residential proxy. A bot check (CAPTCHA or JavaScript challenge) is never retried or solved; that service comes back as a free bot-check row.",
            "default": true
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}