{
  "openapi": "3.0.1",
  "info": {
    "title": "News Article Extractor: Text, Date, Image from URLs and Feeds",
    "description": "News article scraper and extractor: turn article URLs, RSS or Atom feeds and news sitemaps into clean rows: title, Markdown and plain text, publish date, section, language, image and word count. No browser, no proxy, robots.txt honored. Paywalls flagged free. USD 1.00 per 1,000 articles.",
    "version": "1.0",
    "x-build-id": "NRhCgHVDmyMaXPi4E"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/jtpalms~news-article-extractor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-jtpalms-news-article-extractor",
        "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/jtpalms~news-article-extractor/runs": {
      "post": {
        "operationId": "runs-sync-jtpalms-news-article-extractor",
        "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/jtpalms~news-article-extractor/run-sync": {
      "post": {
        "operationId": "run-sync-jtpalms-news-article-extractor",
        "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",
        "properties": {
          "startUrls": {
            "title": "Article URLs",
            "type": "array",
            "description": "Addresses of the articles to extract, one per line. Each address is fetched as it is (tracking parameters such as utm_source are removed). The default is five public articles from BBC, FRANCE 24, Deutsche Welle, NASA and GOV.UK.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "feedUrls": {
            "title": "RSS, Atom or JSON feeds",
            "type": "array",
            "description": "Optional. Feed addresses; the articles they list are extracted, newest first, up to \"Max articles per source\". Feed dates are used when a page has no date of its own.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "sitemapUrls": {
            "title": "Sitemaps or news sitemaps",
            "type": "array",
            "description": "Optional. Sitemap addresses (also sitemap indexes, .gz files and Google news sitemaps). The newest URLs are extracted first; a news sitemap supplies the publication date.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "siteUrls": {
            "title": "Site addresses (discover feeds)",
            "type": "array",
            "description": "Optional. A site's address (https://example.com). The actor looks for its advertised feed, then a feed at the usual paths, then its news sitemap or sitemap, and extracts the newest articles it finds.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "maxArticles": {
            "title": "Max articles",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Hard cap on the article addresses processed in this run, across all sources (1 to 100,000). Addresses already seen in only-new mode do not count.",
            "default": 100
          },
          "maxArticlesPerSource": {
            "title": "Max articles per feed, sitemap or site",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Cap for each feed, sitemap or site, newest first (1 to 5,000). Sources are taken in turns, so a small \"Max articles\" still covers all of them.",
            "default": 50
          },
          "publishedWithinDays": {
            "title": "Only articles from the last N days",
            "minimum": 1,
            "maximum": 3650,
            "type": "integer",
            "description": "Optional. Skip articles published more than this many days ago. Uses the feed or sitemap date first and the article's own date once it is fetched."
          },
          "urlIncludes": {
            "title": "Only these URLs",
            "type": "array",
            "description": "Optional. Keep a feed, sitemap or site URL only if it matches one of these: a text part the URL must contain (/news/), a glob (**/2026/**) or a regular expression written as re:^https://example\\.com/(en|de)/. Article URLs you list yourself are always fetched.",
            "items": {
              "type": "string"
            }
          },
          "urlExcludes": {
            "title": "Skip these URLs",
            "type": "array",
            "description": "Optional. Drop feed, sitemap and site URLs that match any of these (same kinds of pattern), for example /tag/ or /video/. Author, staff and profile pages are always skipped.",
            "items": {
              "type": "string"
            }
          },
          "onlyNew": {
            "title": "Only new articles",
            "type": "boolean",
            "description": "Return and charge only articles that earlier runs with the same state name have not delivered. Use it on a schedule to turn a feed into a monitoring feed. The first run returns everything.",
            "default": false
          },
          "stateKey": {
            "title": "State name for only-new mode",
            "type": "string",
            "description": "Memory name used by \"Only new articles\". Use a different name for each task so each keeps its own list of seen articles. Stored in a named key-value store in your account.",
            "default": "default"
          },
          "includeFullText": {
            "title": "Include the full article text",
            "type": "boolean",
            "description": "On by default. Turn off to get metadata and a 300 character snippet only. You are responsible for having the right to store and reuse the article text you collect.",
            "default": true
          },
          "outputFormat": {
            "title": "Text format",
            "enum": [
              "both",
              "markdown",
              "text"
            ],
            "type": "string",
            "description": "Markdown keeps headings, lists, links and tables; plain text is the same article without markup. The default returns both.",
            "default": "both"
          },
          "includeBylines": {
            "title": "Include author names (bylines)",
            "type": "boolean",
            "description": "Off by default. When on, each row gets an authors list as the publisher published it. Byline lines are never part of the article text either way. No author pages, emails or phone numbers are ever fetched.",
            "default": false
          },
          "minWords": {
            "title": "Minimum words",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Pages with less article text than this are reported as too short or not an article, free of charge (1 to 5,000).",
            "default": 80
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}