{
  "openapi": "3.0.1",
  "info": {
    "title": "News Scraper: GDELT Articles, Full Text & 65 Languages",
    "description": "Search news from around the world by keyword, country, language and website through the open GDELT index (65+ languages, updated every 15 minutes). Up to 5,000 articles per search with title, URL, outlet, country, language, date and image, plus optional full text. A Google News alternative.",
    "version": "1.0",
    "x-build-id": "PDLiZnlY9aRuPWdzf"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/private_image_hg9~news-search-gdelt/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-private_image_hg9-news-search-gdelt",
        "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/private_image_hg9~news-search-gdelt/runs": {
      "post": {
        "operationId": "runs-sync-private_image_hg9-news-search-gdelt",
        "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/private_image_hg9~news-search-gdelt/run-sync": {
      "post": {
        "operationId": "run-sync-private_image_hg9-news-search-gdelt",
        "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": [
          "queries"
        ],
        "properties": {
          "queries": {
            "title": "Search terms",
            "type": "array",
            "description": "One search per line. All words must appear; put a phrase in double quotes for an exact match (\"interest rates\"), use (a OR b) for either, and -word to leave a word out. GDELT operators work inside a search too, e.g. sourcelang:spanish, sourcecountry:UK, theme:ENV_CLIMATECHANGE, tone<-5 or near20:\"grain exports\". GDELT rejects some very short or very common words; the row then says so. Each search gets its own rows; repeats run once.",
            "items": {
              "type": "string"
            }
          },
          "timespan": {
            "title": "Time span",
            "type": "string",
            "description": "How far back to search from now: a number and a unit, like 15min, 24h, 7d, 2w or 3m. GDELT keeps about the last 3 months, so 3m is the most. Ignored when Start date or End date is set.",
            "default": "7d"
          },
          "startDate": {
            "title": "Start date",
            "type": "string",
            "description": "Optional. YYYY-MM-DD or an ISO date and time (2026-10-01T08:00:00Z), in UTC unless an offset is given. With only an end date, the search starts 3 months back."
          },
          "endDate": {
            "title": "End date",
            "type": "string",
            "description": "Optional. YYYY-MM-DD (the whole day is included) or an ISO date and time. With only a start date, the search runs up to now."
          },
          "maxResultsPerQuery": {
            "title": "Max articles per search",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "GDELT gives at most 250 articles per request. Above 250 the date range is walked in steps (newest or oldest sort) or split into time windows (relevance and tone sorts), and the results are merged without repeats.",
            "default": 250
          },
          "sort": {
            "title": "Sort by",
            "enum": [
              "newest",
              "oldest",
              "relevance",
              "toneDesc",
              "toneAsc"
            ],
            "type": "string",
            "description": "The order GDELT picks and returns articles in.",
            "default": "newest"
          },
          "country": {
            "title": "Publisher country",
            "type": "string",
            "description": "Only outlets based in these countries, comma separated. English country names are safest (Germany, United Kingdom, South Korea). Two-letter codes are GDELT's FIPS codes, which differ from ISO codes for many countries (UK = United Kingdom, GM = Germany, AS = Australia, JA = Japan). An ISO code that is not a FIPS code (like DE) is converted, and one that means another country in FIPS (like GB, which is Gabon) is flagged in the log."
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Only articles in these languages, comma separated: names (Spanish, Japanese) or codes (es, spa). GDELT covers 65 languages and translates them, so English search terms also find non-English articles."
          },
          "domains": {
            "title": "Only these websites",
            "type": "array",
            "description": "Only articles from these news sites (and their subdomains), e.g. reuters.com or bbc.co.uk.",
            "items": {
              "type": "string"
            }
          },
          "fetchArticleText": {
            "title": "Fetch full article text",
            "type": "boolean",
            "description": "Visit each article page (obeying the publisher's robots.txt) and extract its main text. Adds text, textStatus and wordCount. Paywalled, blocked or empty pages get a textStatus and no text, and the text price is charged only when text was extracted. Slower: about one page per second per website.",
            "default": false
          },
          "dedupeAcrossQueries": {
            "title": "Skip articles found by an earlier search",
            "type": "boolean",
            "description": "When several searches find the same article, keep it once (under the first search). Turn off to get it under every search that found it.",
            "default": true
          },
          "useApifyProxy": {
            "title": "Use Apify Proxy for GDELT requests",
            "type": "boolean",
            "description": "Send the GDELT API requests through Apify Proxy. Useful only if the log shows many rate-limit waits, which happens when other users share the same IP address. Article pages are always fetched directly.",
            "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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}