{
  "openapi": "3.0.1",
  "info": {
    "title": "Company News Signals: GDELT Headlines, Funding & Risk Alerts",
    "description": "Track global press mentions of any company from GDELT: recent headlines, funding/MA/hiring/legal signal types, match confidence and what is new since the last run. No API key, 65+ languages.",
    "version": "0.4",
    "x-build-id": "fjTW8hNNdV7OhYSxl"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/codeclouds~company-news-signals/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-codeclouds-company-news-signals",
        "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/codeclouds~company-news-signals/runs": {
      "post": {
        "operationId": "runs-sync-codeclouds-company-news-signals",
        "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/codeclouds~company-news-signals/run-sync": {
      "post": {
        "operationId": "run-sync-codeclouds-company-news-signals",
        "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"
        ],
        "properties": {
          "companies": {
            "title": "Companies to monitor",
            "type": "array",
            "description": "One company per line, as a name or a website address (a single comma-separated string works too, which is what most agents and API clients send). Names are matched as a phrase; a website address (e.g. stripe.com) is also used to grade how reliable each headline match is. Note: a website address derives the display name from the domain (openai.com becomes Openai) — pass the proper name instead (OpenAI) if exact branding matters. Duplicates are removed.",
            "default": [
              "stripe.com",
              "anthropic.com",
              "Shopify",
              "Datadog"
            ],
            "items": {
              "type": "string"
            }
          },
          "timespan": {
            "title": "How far back to look",
            "enum": [
              "1d",
              "7d",
              "30d",
              "90d"
            ],
            "type": "string",
            "description": "GDELT keeps about three months of coverage and returns at most 250 headlines per company, newest first. Use 1d for a daily monitor, 7d for a weekly one, 30d or 90d for research.",
            "default": "1d"
          },
          "batchSize": {
            "title": "Companies per request",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "1 (default) queries each company separately, which keeps attribution exact. A higher value combines companies into one request and is faster, but GDELT returns at most 250 headlines per request, so busy companies can push quieter ones out of the result and a headline is only assigned when it literally names the company.",
            "default": 1
          },
          "languages": {
            "title": "Only these languages",
            "type": "array",
            "description": "Optional filter on the language of the source article, e.g. English, Dutch, German, French, Spanish, Italian, Portuguese. Leave empty for all languages.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "signalTypes": {
            "title": "Only these signal types",
            "type": "array",
            "description": "Optional filter on the classified signal type: funding, acquisition, hiring, layoff, leadership, product, partnership, expansion, legal, regulation, earnings, other.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxArticlesPerCompany": {
            "title": "Max headlines per company",
            "minimum": 1,
            "maximum": 250,
            "type": "integer",
            "description": "Keeps at most this many headlines per company, newest first. GDELT returns at most 250 per request and offers no way to page further back, so anything above 250 has no effect.",
            "default": 50
          },
          "maxCompanies": {
            "title": "Max companies per run",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "GDELT allows about one request per 20 seconds, so a run is deliberately limited. Companies beyond this limit are reported with status 'skipped' and an explanation instead of being dropped silently.",
            "default": 20
          },
          "classifySignals": {
            "title": "Classify headlines into signal types",
            "type": "boolean",
            "description": "Labels every headline as funding, acquisition, hiring, layoff, leadership, product, partnership, expansion, legal, regulation, earnings or other, using a deterministic keyword table.",
            "default": true
          },
          "trackChanges": {
            "title": "Track changes between runs",
            "type": "boolean",
            "description": "Stores the headlines seen per company so the next run reports which ones are new. The first run creates the baseline; most useful on a schedule.",
            "default": true
          },
          "onlyChanges": {
            "title": "Only return companies that changed",
            "type": "boolean",
            "description": "Skip companies whose headlines are unchanged since the previous run (the first run still returns everything). Ideal for daily new-signal alerts.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}