{
  "openapi": "3.0.1",
  "info": {
    "title": "News Monitor: Only New Articles From Saved Watches",
    "description": "Saved watches over the GDELT Project's 15-minute news files: keywords, organizations, people, GDELT themes and news sites. Each run returns only the articles it did not deliver before, one row per article, with a free summary per watch.",
    "version": "0.1",
    "x-build-id": "rhDa9o5hY4Tbqa1wT"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/lone_rachis~news-mentions-watch/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-lone_rachis-news-mentions-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/lone_rachis~news-mentions-watch/runs": {
      "post": {
        "operationId": "runs-sync-lone_rachis-news-mentions-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/lone_rachis~news-mentions-watch/run-sync": {
      "post": {
        "operationId": "run-sync-lone_rachis-news-mentions-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": [
          "watches"
        ],
        "properties": {
          "watches": {
            "title": "Watches",
            "maxItems": 50,
            "type": "array",
            "description": "Up to 50 watches, each an object with a type. {\"type\": \"keyword\", \"phrases\": [\"battery recall\"]} finds the phrases as whole words in the title (add \"match\": \"all\" to need every phrase). {\"type\": \"organization\", \"names\": [\"Federal Reserve\"]} and {\"type\": \"person\", \"names\": [\"Christine Lagarde\"]} look in the organizations and persons GDELT found in the article (add \"matchTitle\": true to an organization watch to look in the title too). {\"type\": \"theme\", \"themes\": [\"ECON_BANKRUPTCY\"]} takes GDELT theme codes, and {\"type\": \"source\", \"domains\": [\"bbc.co.uk\"]} news domains. Every watch takes a \"label\" and \"excludeTerms\" (words that drop an article when they are in its title). The first run delivers the newest articles of the look-back as a baseline; later runs only what is new.",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "title": "Watch type",
                  "type": "string",
                  "description": "keyword, organization, person, theme or source.",
                  "enum": [
                    "keyword",
                    "organization",
                    "person",
                    "theme",
                    "source"
                  ]
                },
                "label": {
                  "title": "Label",
                  "type": "string",
                  "description": "Optional. A name for the watch, copied into each of its rows."
                },
                "phrases": {
                  "title": "Phrases",
                  "type": "array",
                  "description": "keyword watch: up to 25 words or phrases, matched as whole words in the article title, any case.",
                  "items": {
                    "type": "string"
                  }
                },
                "match": {
                  "title": "Match",
                  "type": "string",
                  "description": "keyword watch: any (the default) or all of the phrases.",
                  "enum": [
                    "any",
                    "all"
                  ]
                },
                "names": {
                  "title": "Names",
                  "type": "array",
                  "description": "organization or person watch: up to 25 names, matched as whole words inside the names GDELT found in the article.",
                  "items": {
                    "type": "string"
                  }
                },
                "matchTitle": {
                  "title": "Also match the title",
                  "type": "boolean",
                  "description": "organization watch: also match the names in the article title."
                },
                "themes": {
                  "title": "Themes",
                  "type": "array",
                  "description": "theme watch: up to 25 GDELT theme codes such as ECON_BANKRUPTCY, matched exactly.",
                  "items": {
                    "type": "string"
                  }
                },
                "domains": {
                  "title": "Domains",
                  "type": "array",
                  "description": "source watch: up to 25 news domains such as bbc.co.uk; subdomains match too.",
                  "items": {
                    "type": "string"
                  }
                },
                "excludeTerms": {
                  "title": "Exclude terms",
                  "type": "array",
                  "description": "Optional, every type: an article whose title holds one of these words or phrases is left out of this watch.",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "required": [
                "type"
              ],
              "additionalProperties": false
            }
          },
          "lookbackHours": {
            "title": "First run looks back (hours)",
            "minimum": 1,
            "maximum": 72,
            "type": "integer",
            "description": "How far back a watch's first run reads, from 1 to 72 hours. GDELT publishes a file every 15 minutes, so 24 hours is 96 files. Later runs read only the files published since the last run, never more than 72 hours back.",
            "default": 24
          },
          "maxPerWatch": {
            "title": "Most articles per watch per run",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "The most articles one watch delivers in one run, newest first. A watch's first run is its baseline: its newest articles up to this number. When a later run finds more new articles than this, the newest are delivered, the older ones are left out for good, and the watch's free summary row says how many.",
            "default": 50
          },
          "includeTranslingual": {
            "title": "Include articles in other languages",
            "type": "boolean",
            "description": "Also read GDELT's translingual files: news in other languages, machine-translated by GDELT. Names and themes come from the translation; titles stay in the original language, so keyword watches match those titles as written. These files are larger and are published about 15 minutes after the English ones.",
            "default": false
          },
          "includeSources": {
            "title": "Only these sources",
            "type": "array",
            "description": "Optional. Only articles from these news domains (subdomains match too), such as bbc.co.uk.",
            "items": {
              "type": "string"
            }
          },
          "excludeSources": {
            "title": "Leave out these sources",
            "type": "array",
            "description": "Optional. Articles from these news domains are left out.",
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Countries mentioned",
            "type": "array",
            "description": "Optional. Only articles that mention a place in one of these countries, as GDELT found them: a 2-letter FIPS 10-4 code as GDELT writes it (US, UK, GM for Germany, CH for China, JA for Japan) or a country name.",
            "items": {
              "type": "string"
            }
          },
          "minTone": {
            "title": "Lowest tone",
            "minimum": -100,
            "maximum": 100,
            "type": "number",
            "description": "Optional. Only articles with GDELT's tone at or above this, from -100 (most negative) to +100. Most news sits between -10 and +10."
          },
          "maxTone": {
            "title": "Highest tone",
            "minimum": -100,
            "maximum": 100,
            "type": "number",
            "description": "Optional. Only articles with GDELT's tone at or below this, such as -2 for clearly negative news."
          },
          "stateStoreName": {
            "title": "Watch memory name",
            "type": "string",
            "description": "Optional. The name of the key-value store that remembers what each watch delivered. With a name, such as my-brand-watch, an added watch delivers only its own baseline. Left empty, a run of a saved task keeps one memory per task, which works the same way; a run outside a task names the memory after its watches, so adding or changing a watch there starts a new memory and the next run delivers every watch's baseline again. Letters, digits and dashes."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}