{
  "openapi": "3.0.1",
  "info": {
    "title": "AI News Research Agent | Cited Briefs, No API Key",
    "description": "Question in, cited news brief out. Google News, publisher RSS, Reddit and X, read in full and summarised by Claude: headlines, themes, anomalies, key actors, markdown report. No API key needed. Articles-only mode returns full-text articles with no model. Limited permissions, safe for agents and MCP.",
    "version": "0.4",
    "x-build-id": "GCVoaUfCSwtb8a3Lz"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/kay_abraham~news-intelligence-agent/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-kay_abraham-news-intelligence-agent",
        "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/kay_abraham~news-intelligence-agent/runs": {
      "post": {
        "operationId": "runs-sync-kay_abraham-news-intelligence-agent",
        "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/kay_abraham~news-intelligence-agent/run-sync": {
      "post": {
        "operationId": "run-sync-kay_abraham-news-intelligence-agent",
        "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": [
          "userQuery"
        ],
        "properties": {
          "userQuery": {
            "title": "Your question",
            "type": "string",
            "description": "Ask in plain English. Example: What is the new virus outbreak doing to global supply chains? Focus on shipping, manufacturing, and oil prices."
          },
          "outputMode": {
            "title": "What you want back",
            "enum": [
              "brief",
              "articles"
            ],
            "type": "string",
            "description": "Brief: the model reads the articles and writes a cited intelligence brief (summary, headlines, themes, anomalies, key actors). Articles: no model at all, you get the fresh, deduplicated articles with full text in one record. Articles mode is the cheapest way to feed your own pipeline or agent.",
            "default": "brief"
          },
          "claudeApiKey": {
            "title": "Anthropic API key (optional)",
            "type": "string",
            "description": "Leave empty and the model runs through Apify's OpenRouter proxy, billed to your Apify account at OpenRouter token rates, no key needed. Paste a key (starts with sk-ant-) to have Anthropic bill the tokens to you instead. Apify never stores the key."
          },
          "enableRss": {
            "title": "Use direct RSS feeds from top publishers",
            "type": "boolean",
            "description": "When on, the agent pulls articles directly from major publishers' RSS feeds (Reuters, AP, BBC, Bloomberg, FT, Guardian, NYT, WaPo, AlJazeera, CNN, CNBC, Politico) in addition to Google News. RSS feeds publish immediately, removing the 1-3 hour Google News indexing lag. Recommended on for breaking news and live monitoring.",
            "default": true
          },
          "enableReddit": {
            "title": "Include Reddit discussions",
            "type": "boolean",
            "description": "Pull relevant Reddit posts (via trudax/reddit-scraper-lite). Useful for sentiment, community signal, and topics that move on social before mainstream press. Adds ~$0.05 per run.",
            "default": false
          },
          "enableTwitter": {
            "title": "Include Twitter / X breaking signal",
            "type": "boolean",
            "description": "Pull relevant tweets from the last N days (via apidojo/twitter-scraper-lite). Strong for breaking news that hits Twitter 2-6 hours before mainstream press. Adds ~$0.10 per run.",
            "default": false
          },
          "enableWikipedia": {
            "title": "Enrich analysis with Wikipedia entity context",
            "type": "boolean",
            "description": "When on, the agent fetches Wikipedia summaries for the most-mentioned organizations, people, and countries in the article set. Claude uses this context in synthesis to ground its analysis in factual entity data. Adds ~$0.02 per run.",
            "default": false
          },
          "claudeModel": {
            "title": "Model",
            "enum": [
              "claude-sonnet-5-5",
              "claude-haiku-5-5",
              "claude-opus-5-5",
              "claude-sonnet-4-6",
              "claude-haiku-4-5-20251001",
              "claude-opus-4-7"
            ],
            "type": "string",
            "description": "Sonnet 5.5 is the default balance of quality and cost (about $2 in / $10 out per million tokens). Haiku 5.5 is fastest and cheapest ($0.10 / $0.50; free Apify accounts are switched to it automatically unless you pick a model here). Opus 5.5 is the most thorough ($4 / $20). The 4.x options stay for saved tasks. Works the same with or without an Anthropic key.",
            "default": "claude-sonnet-5-5"
          },
          "customModel": {
            "title": "Custom model id (advanced)",
            "type": "string",
            "description": "Any model id your route serves, for example anthropic/claude-opus-6 through Apify's OpenRouter proxy, or claude-opus-6 with your own Anthropic key. Overrides the Model dropdown, so new Claude releases work without waiting for an update of this Actor. Leave empty to use the dropdown."
          },
          "outputLanguage": {
            "title": "Output language",
            "enum": [
              "English",
              "Arabic",
              "Chinese (Simplified)",
              "Chinese (Traditional)",
              "Spanish",
              "French",
              "German",
              "Russian",
              "Japanese",
              "Portuguese",
              "Italian",
              "Hindi",
              "Korean",
              "Turkish"
            ],
            "type": "string",
            "description": "Language of the final report. Articles are still pulled in their original language and translated for analysis if needed.",
            "default": "English"
          },
          "sourceMode": {
            "title": "Source selection mode",
            "enum": [
              "auto",
              "manual",
              "hybrid"
            ],
            "type": "string",
            "description": "Auto: Claude picks a balanced source set for your topic. Manual: only the sources you list. Hybrid: Claude suggestions plus yours.",
            "default": "auto"
          },
          "manualSources": {
            "title": "Manual source list",
            "type": "array",
            "description": "Domains to include. Examples: bbc.com, reuters.com, ft.com, bloomberg.com, aljazeera.com. Only used in manual or hybrid mode.",
            "items": {
              "type": "string"
            }
          },
          "excludeSources": {
            "title": "Excluded sources",
            "type": "array",
            "description": "Domains to skip in both modes, even if the model would otherwise pick them.",
            "items": {
              "type": "string"
            }
          },
          "tags": {
            "title": "Semantic tags (optional)",
            "type": "array",
            "description": "Extra keywords or entity names. In brief mode the model weighs them when filtering. In articles mode each tag becomes an extra search.",
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Country focus (optional)",
            "type": "array",
            "description": "ISO codes of countries to focus on. Example: US, CN, RU, UK, FR, DE, JP, IN, SA, AE, IR. Leave empty for global.",
            "items": {
              "type": "string"
            }
          },
          "translateToEnglish": {
            "title": "Translate non-English articles during analysis",
            "type": "boolean",
            "description": "If true, Claude reads non-English articles in their original language and produces analysis in your chosen output language. If false, only articles in your output language are considered.",
            "default": true
          },
          "timeWindow": {
            "title": "Time window",
            "enum": [
              "last_24h",
              "last_7d",
              "last_30d",
              "last_90d",
              "custom"
            ],
            "type": "string",
            "description": "How recent the articles should be. Pick a preset, or choose 'custom' and set dateFrom and dateTo below.",
            "default": "last_7d"
          },
          "dateFrom": {
            "title": "Custom date range: from",
            "type": "string",
            "description": "Only used if timeWindow is 'custom'. ISO format YYYY-MM-DD. Example: 2026-04-01."
          },
          "dateTo": {
            "title": "Custom date range: to",
            "type": "string",
            "description": "Only used if timeWindow is 'custom'. ISO format YYYY-MM-DD. Example: 2026-05-12."
          },
          "depth": {
            "title": "Research depth",
            "enum": [
              "shallow",
              "medium",
              "deep"
            ],
            "type": "string",
            "description": "Shallow returns about 20 articles, medium about 50, deep about 100. Deeper means higher Claude token cost.",
            "default": "medium"
          },
          "maxArticles": {
            "title": "Max articles cap",
            "minimum": 5,
            "maximum": 200,
            "type": "integer",
            "description": "Hard ceiling on articles to deeply analyze. Overrides depth if smaller.",
            "default": 50
          },
          "bypassPaywalls": {
            "title": "Bypass paywalls when possible",
            "type": "boolean",
            "description": "Sends Googlebot headers on the generic extractor so sites that allow search crawlers return the full article. Costs nothing extra.",
            "default": true
          },
          "customInstructions": {
            "title": "Custom instructions for the model (optional)",
            "type": "string",
            "description": "Power users only. Extra guidance on top of your question. Example: Weight Reuters and BBC 2x. Ignore opinion pieces. Highlight any mention of central bank rate changes."
          },
          "maxClaudeCost": {
            "title": "Max model spend per run (USD)",
            "minimum": 0.1,
            "maximum": 100,
            "type": "number",
            "description": "Hard ceiling on model token spend for one run, whichever way the tokens are billed. The run stops cleanly before it would go over.",
            "default": 5
          },
          "analysisFeatures": {
            "title": "Analysis features",
            "type": "object",
            "description": "Toggle which per-article analyses run. Disabling reduces token cost. Default is everything on.",
            "default": {
              "keywordExtraction": true,
              "impactScoring": true,
              "sentimentAnalysis": true,
              "entityExtraction": true,
              "quoteExtraction": true,
              "themeClustering": true,
              "anomalyDetection": true
            }
          },
          "webhookUrl": {
            "title": "Webhook URL (optional)",
            "type": "string",
            "description": "If set, the final markdown report is POSTed to this URL. Useful for Slack, email automation, or any other system."
          },
          "debugMode": {
            "title": "Debug mode (extra detail in output)",
            "type": "boolean",
            "description": "If on, stores the raw Claude plan, the search queries used, and per-stage timing in the output dataset. Helpful when something looks off in the report.",
            "default": false
          },
          "debugLog": {
            "title": "Verbose logging",
            "type": "boolean",
            "description": "If on, logs every Claude prompt size, every search query, and every Actor call. Helpful when troubleshooting a failed run. Logs are visible in the Apify Console Log tab.",
            "default": false
          },
          "apifyToken": {
            "title": "Apify API token (advanced, not needed)",
            "type": "string",
            "description": "Leave empty. The Actor runs with limited permissions and calls its child scrapers with its own run token. Only set this if you need the child Actors to run under a different account."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}