{
  "openapi": "3.0.1",
  "info": {
    "title": "RSS Feed Reader and News Monitor with Full Article Text",
    "description": "Read any RSS, Atom or JSON feed, or give a website and its feed is found for you. Filter by keywords and date, get only items that are new since the last run, and add the full article text as Markdown. Podcast feeds work too. $1 per 1,000 items.",
    "version": "0.1",
    "x-build-id": "tDps683muRlMhEugl"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/vindr~rss-feed-reader/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-vindr-rss-feed-reader",
        "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/vindr~rss-feed-reader/runs": {
      "post": {
        "operationId": "runs-sync-vindr-rss-feed-reader",
        "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/vindr~rss-feed-reader/run-sync": {
      "post": {
        "operationId": "run-sync-vindr-rss-feed-reader",
        "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": {
          "feeds": {
            "title": "Feeds or websites",
            "type": "array",
            "description": "Feed URLs (RSS, Atom or JSON Feed) or ordinary website addresses, one per line. For a website, the feed it announces is used, or the usual places like /feed and /rss are tried.",
            "items": {
              "type": "string"
            }
          },
          "allFeedsOnPage": {
            "title": "Use every feed a website announces",
            "type": "boolean",
            "description": "Some websites announce several feeds (for example news, sport and culture). Turn on to read all of them instead of only the first.",
            "default": false
          },
          "keywords": {
            "title": "Only items containing any of",
            "type": "array",
            "description": "Keep only items whose title, summary, content or categories contain at least one of these words or phrases. Whole words, not case sensitive: <code>AI</code> doesn't match \"said\". Add <code>*</code> to match word beginnings: <code>equinor*</code> also finds \"Equinors\".",
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "Skip items containing any of",
            "type": "array",
            "description": "Leave out items that contain any of these words or phrases, for example <code>sponsored</code>. Same rules as above.",
            "items": {
              "type": "string"
            }
          },
          "maxAgeDays": {
            "title": "Only items from the last (days)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only items published within this many days. Items without a date are kept. Use 0 for no limit.",
            "default": 0
          },
          "maxItemsPerFeed": {
            "title": "Max items per feed",
            "minimum": 0,
            "type": "integer",
            "description": "Save at most this many items from each feed, newest first. Use 0 for all.",
            "default": 0
          },
          "onlyNew": {
            "title": "Only items that are new since the last run",
            "type": "boolean",
            "description": "Remember which items were in each feed and, next time, save only the ones that have appeared since. With a schedule, every run gives you just the new items. The first run saves everything that matches.",
            "default": false
          },
          "memoryName": {
            "title": "Memory name",
            "type": "string",
            "description": "Only with <b>Only new items</b>: the name of the memory to use. Use a different name for each monitoring setup, so they don't share what they have seen. It is kept in a key-value store called <code>rss-feed-reader-&lt;name&gt;</code> in your account.",
            "default": "default"
          },
          "fetchFullText": {
            "title": "Add the full article text",
            "type": "boolean",
            "description": "Open each item's link and extract the article text as Markdown and plain text, with the same engine Firefox uses for Reader View. Useful when the feed only has a short summary. Charged per article that is found (see the README). The site's robots.txt is respected.",
            "default": false
          },
          "includeContentHtml": {
            "title": "Include the HTML content from the feed",
            "type": "boolean",
            "description": "Also save the feed's own HTML content, next to the plain text version.",
            "default": false
          },
          "maxConcurrency": {
            "title": "Max feeds at a time",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many feeds are read at the same time.",
            "default": 5
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}