{
  "openapi": "3.0.1",
  "info": {
    "title": "AI Account Watch: Custom Sales Trigger Alerts",
    "description": "Watch a list of companies and get alerted when one does what you describe in plain English: raises funding, hires a CMO, opens a location, gets sued. AI reads fresh Google News and alerts only on real, new events, to email, Slack or webhook.",
    "version": "0.1",
    "x-build-id": "z3L5pMQYuPzUEPkqs"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/fayoussef~ai-account-watch/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-fayoussef-ai-account-watch",
        "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/fayoussef~ai-account-watch/runs": {
      "post": {
        "operationId": "runs-sync-fayoussef-ai-account-watch",
        "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/fayoussef~ai-account-watch/run-sync": {
      "post": {
        "operationId": "run-sync-fayoussef-ai-account-watch",
        "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": [
          "companies",
          "rules"
        ],
        "properties": {
          "companies": {
            "title": "Companies to watch",
            "type": "array",
            "description": "One company per line. Add the website after a bar to avoid mix-ups with namesakes, for example \"Mercury | mercury.com\". Works for any size of company, from public giants to local businesses.",
            "items": {
              "type": "string"
            }
          },
          "rules": {
            "title": "Alert me when the company...",
            "type": "array",
            "description": "Your trigger rules in plain English, one per line. The AI reads every fresh article and alerts only when a company really did what the rule says. Examples: \"announces a new funding round\", \"hires a new CMO or VP of Marketing\", \"opens a new office or location\", \"announces layoffs\", \"launches a new product\", \"is hit by a data breach or lawsuit\".",
            "items": {
              "type": "string"
            }
          },
          "searchEngine": {
            "title": "Search engine",
            "enum": [
              "google",
              "ai"
            ],
            "type": "string",
            "description": "Google search checks Google News for fresh articles and the AI only reads articles it has not seen before, so repeat runs stay cheap. AI web search lets the AI search the whole web itself, which can catch events that only appear on company blogs or niche sites, but every check uses a paid web search.",
            "default": "google"
          },
          "lookback": {
            "title": "Look back",
            "enum": [
              "day",
              "week",
              "month"
            ],
            "type": "string",
            "description": "How far back each run looks for news. Match it to your schedule: daily runs use the last 24 hours, weekly runs the last 7 days. Events are never alerted twice, so overlap between runs is safe.",
            "default": "week"
          },
          "deepVerify": {
            "title": "Deep verify matches",
            "type": "boolean",
            "description": "Google search only. Before alerting, the AI runs one extra web search per match to confirm the event really happened. Fewer false alerts, and it only costs extra when something matched.",
            "default": false
          },
          "minConfidence": {
            "title": "Minimum confidence",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "How sure the AI must be before an event becomes an alert. Raise it for fewer, surer alerts; lower it to catch borderline news.",
            "default": 70
          },
          "maxArticlesPerCheck": {
            "title": "Articles per check",
            "minimum": 3,
            "maximum": 30,
            "type": "integer",
            "description": "The most new articles the AI reads for one company and rule per run. In AI web search mode it is the number of web results the search reads.",
            "default": 10
          },
          "country": {
            "title": "News country",
            "enum": [
              "us",
              "gb",
              "ca",
              "au",
              "nz",
              "ie",
              "de",
              "fr",
              "es",
              "it",
              "nl",
              "be",
              "ch",
              "at",
              "pt",
              "gr",
              "cy",
              "se",
              "pl",
              "tr",
              "ua",
              "in",
              "sg",
              "my",
              "ph",
              "pk",
              "jp",
              "kr",
              "tw",
              "ae",
              "sa",
              "il",
              "eg",
              "za",
              "ng",
              "ke",
              "br",
              "mx",
              "ar"
            ],
            "type": "string",
            "description": "Which country's Google News edition and Google search domain to check. Pick the country where your companies make the news.",
            "default": "us"
          },
          "language": {
            "title": "News language",
            "enum": [
              "auto",
              "en",
              "es",
              "fr",
              "de",
              "it",
              "pt",
              "nl",
              "el",
              "sv",
              "pl",
              "tr",
              "uk",
              "ar",
              "he",
              "hi",
              "ja",
              "ko",
              "zh"
            ],
            "type": "string",
            "description": "Language of the news results. Auto uses the country's main news language, which is right for almost every case. Google News only offers some languages per country (for example Canada in English or French); if the pair does not exist, news comes from the country's main edition and Google search still uses your language. Rules can stay in English.",
            "default": "auto"
          },
          "reportEveryCheck": {
            "title": "Also list checks with no match",
            "type": "boolean",
            "description": "Off: the results hold alerts only. On: every company and rule also gets a row saying no matching event was found, which is handy as a proof-of-coverage log.",
            "default": false
          },
          "watchlistName": {
            "title": "Watchlist name",
            "type": "string",
            "description": "Names the memory of what was already alerted, so repeat runs never alert on the same event twice. Leave empty for one watchlist; give each schedule its own name to keep separate lists apart."
          },
          "notificationEmail": {
            "title": "Email alerts to",
            "type": "string",
            "description": "An email address that receives the new alerts after each run that finds any."
          },
          "slackWebhookUrl": {
            "title": "Slack webhook URL",
            "type": "string",
            "description": "An incoming webhook URL from your Slack workspace (Slack apps, Incoming Webhooks)."
          },
          "discordWebhookUrl": {
            "title": "Discord webhook URL",
            "type": "string",
            "description": "A channel webhook URL from Discord (Channel Settings, Integrations, Webhooks)."
          },
          "telegramBotToken": {
            "title": "Telegram bot token",
            "type": "string",
            "description": "The token BotFather gave your own bot. Needs the chat ID below as well."
          },
          "telegramChatId": {
            "title": "Telegram chat ID",
            "type": "string",
            "description": "The chat, group or channel your bot posts to."
          },
          "webhookUrl": {
            "title": "Webhook URL",
            "type": "string",
            "description": "Any endpoint for n8n, Make, Zapier, Clay or your CRM. It receives the new alerts as JSON."
          },
          "notifyMaxItems": {
            "title": "Alerts per message",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "How many alerts one Slack, Discord, Telegram or email message lists before it says \"and N more\".",
            "default": 20
          },
          "model": {
            "title": "AI model",
            "enum": [
              "anthropic/claude-opus-5",
              "anthropic/claude-sonnet-5",
              "anthropic/claude-opus-4.8",
              "anthropic/claude-opus-4.7",
              "anthropic/claude-sonnet-4.6",
              "anthropic/claude-opus-4.6",
              "anthropic/claude-opus-4.5",
              "anthropic/claude-haiku-4.5",
              "anthropic/claude-sonnet-4.5",
              "anthropic/claude-opus-4.1",
              "anthropic/claude-opus-4",
              "anthropic/claude-sonnet-4",
              "anthropic/claude-3-haiku",
              "anthropic/claude-fable-5.1",
              "anthropic/claude-fable-5",
              "google/gemini-3.8-flash",
              "google/gemini-3.7-flash",
              "google/gemini-3.6-flash",
              "google/gemini-3.5-flash-lite",
              "google/gemini-3.5-flash",
              "google/gemini-3.1-flash-lite",
              "google/gemini-3.1-flash-lite-preview",
              "google/gemini-3.1-pro-preview-customtools",
              "google/gemini-3.1-pro-preview",
              "google/gemini-3-flash-preview",
              "google/gemini-2.5-flash-lite",
              "google/gemini-2.5-flash",
              "google/gemini-2.5-pro",
              "google/gemini-2.5-pro-preview",
              "google/gemma-4-26b-a4b-it",
              "google/gemma-4-31b-it",
              "google/gemma-3-4b-it",
              "google/gemma-3-12b-it",
              "google/gemma-3-27b-it",
              "google/gemma-2-27b-it",
              "google/gemma-4-26b-a4b-it:free",
              "google/gemma-4-31b-it:free",
              "openai/gpt-5.6-luna-pro",
              "openai/gpt-5.6-luna",
              "openai/gpt-5.6-terra-pro",
              "openai/gpt-5.6-terra",
              "openai/gpt-5.6-sol-pro",
              "openai/gpt-5.6-sol",
              "openai/gpt-5.5-pro",
              "openai/gpt-5.5",
              "openai/gpt-5.4-nano",
              "openai/gpt-5.4-mini",
              "openai/gpt-5.4-pro",
              "openai/gpt-5.4",
              "openai/gpt-5.3-codex",
              "openai/gpt-5.2-codex",
              "openai/gpt-5.2-chat",
              "openai/gpt-5.2-pro",
              "openai/gpt-5.2",
              "openai/gpt-5.1-codex-max",
              "openai/gpt-5.1",
              "openai/gpt-5.1-codex",
              "openai/gpt-5.1-codex-mini",
              "openai/gpt-5-pro",
              "openai/gpt-5",
              "openai/gpt-5-mini",
              "openai/gpt-5-nano",
              "openai/o3-pro",
              "openai/o4-mini-high",
              "openai/o3",
              "openai/o4-mini",
              "openai/gpt-4.1",
              "openai/gpt-4.1-mini",
              "openai/gpt-4.1-nano",
              "openai/o3-mini-high",
              "openai/o3-mini",
              "openai/gpt-4o-2024-11-20",
              "openai/gpt-4o-2024-08-06",
              "openai/gpt-4o-mini",
              "openai/gpt-4o-mini-2024-07-18",
              "openai/gpt-4o",
              "openai/gpt-4o-2024-05-13",
              "openai/gpt-4-turbo",
              "openai/gpt-4",
              "openai/gpt-6-astra",
              "openai/gpt-6-astra-pro",
              "openai/gpt-chat-latest",
              "openai/gpt-oss-120b",
              "openai/gpt-oss-20b",
              "openai/o1-pro",
              "openai/o1",
              "openai/gpt-3.5-turbo-0613",
              "openai/gpt-3.5-turbo-instruct",
              "openai/gpt-3.5-turbo-16k",
              "openai/gpt-3.5-turbo",
              "deepseek/deepseek-v3.2",
              "deepseek/deepseek-v3.2-exp",
              "deepseek/deepseek-v3.1-terminus",
              "deepseek/deepseek-chat-v3.1",
              "deepseek/deepseek-r1-0528",
              "deepseek/deepseek-chat-v3-0324",
              "deepseek/deepseek-r1-distill-llama-70b",
              "deepseek/deepseek-r1",
              "deepseek/deepseek-chat",
              "deepseek/deepseek-v4.1-flash",
              "deepseek/deepseek-v4-flash-vision-exp",
              "deepseek/deepseek-v4-pro-0813",
              "deepseek/deepseek-v4-flash-0731",
              "deepseek/deepseek-v4-pro",
              "deepseek/deepseek-v4-flash",
              "x-ai/grok-4.6",
              "x-ai/grok-4.5",
              "x-ai/grok-4.3",
              "x-ai/grok-4.20-multi-agent",
              "x-ai/grok-4.20",
              "x-ai/grok-build-0.1",
              "meta-llama/llama-4-maverick",
              "meta-llama/llama-4-scout",
              "meta-llama/llama-3.3-70b-instruct",
              "meta-llama/llama-3.2-1b-instruct",
              "meta-llama/llama-3.2-3b-instruct",
              "meta-llama/llama-3.1-70b-instruct",
              "meta-llama/llama-3.1-8b-instruct",
              "qwen/qwen3.8-max-0902",
              "qwen/qwen3.8-flash",
              "qwen/qwen3.8-27b",
              "qwen/qwen3.8-2.4t-a95b",
              "qwen/qwen3.7-flash",
              "qwen/qwen3.7-plus",
              "qwen/qwen3.7-max",
              "qwen/qwen3.5-plus-20260420",
              "qwen/qwen3.6-flash",
              "qwen/qwen3.6-35b-a3b",
              "qwen/qwen3.6-max-preview",
              "qwen/qwen3.6-27b",
              "qwen/qwen3.6-plus",
              "qwen/qwen3.5-9b",
              "qwen/qwen3.5-35b-a3b",
              "qwen/qwen3.5-27b",
              "qwen/qwen3.5-122b-a10b",
              "qwen/qwen3.5-flash-02-23",
              "qwen/qwen3.5-plus-02-15",
              "qwen/qwen3.5-397b-a17b",
              "qwen/qwen3-max-thinking",
              "qwen/qwen3-coder-next",
              "qwen/qwen3-vl-32b-instruct",
              "qwen/qwen3-vl-8b-thinking",
              "qwen/qwen3-vl-8b-instruct",
              "qwen/qwen3-vl-30b-a3b-thinking",
              "qwen/qwen3-vl-30b-a3b-instruct",
              "qwen/qwen3-vl-235b-a22b-thinking",
              "qwen/qwen3-vl-235b-a22b-instruct",
              "qwen/qwen3-max",
              "qwen/qwen3-coder-plus",
              "qwen/qwen3-coder-flash"
            ],
            "type": "string",
            "description": "Which AI model reads the news. Prices in brackets are the model's own per-million-token rates, billed separately from this Actor by Apify's OpenRouter integration (or by OpenRouter on your own key). Fast, cheap models work well here: each check is a short read.",
            "default": "google/gemini-2.5-flash"
          },
          "openrouterApiKey": {
            "title": "OpenRouter API key",
            "type": "string",
            "description": "Optional. Bring your own OpenRouter key and calls go straight to OpenRouter, billed by them on your own OpenRouter account instead of through Apify. Leave empty to use the built-in access, which needs no key at all."
          },
          "apifyToken": {
            "title": "Apify token",
            "type": "string",
            "description": "Optional. Only needed when running this Actor outside the Apify platform. On Apify it is filled in automatically."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}