{
  "openapi": "3.0.1",
  "info": {
    "title": "rss-feed-converter",
    "description": "Convert RSS, Atom, RDF, JSON Feed, podcast and YouTube channel feeds into clean, deduplicated JSON and Markdown. Paste a website and it finds the feed. \"Only new items\" mode for schedules. $1 per 1,000 items, failed feeds free.",
    "version": "0.0",
    "x-build-id": "nQDma2bQbOcTeMQwH"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/ryumoon-data~rss-feed-converter/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-ryumoon-data-rss-feed-converter",
        "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/ryumoon-data~rss-feed-converter/runs": {
      "post": {
        "operationId": "runs-sync-ryumoon-data-rss-feed-converter",
        "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/ryumoon-data~rss-feed-converter/run-sync": {
      "post": {
        "operationId": "run-sync-ryumoon-data-rss-feed-converter",
        "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": {
          "urls": {
            "title": "Feed or website URLs",
            "type": "array",
            "description": "Feed URLs (RSS, Atom, RDF, JSON Feed, podcast) OR normal website / YouTube channel URLs. For websites the Actor finds the feed via <link rel=\"alternate\"> tags, then common paths like /feed, /rss.xml and /atom.xml.",
            "items": {
              "type": "string"
            }
          },
          "maxItemsPerFeed": {
            "title": "Max items per feed",
            "minimum": 0,
            "type": "integer",
            "description": "Newest items first. 0 = every item in the feed.",
            "default": 50
          },
          "sinceDate": {
            "title": "Only items since",
            "type": "string",
            "description": "Skip older items. A date (2026-11-01) or a relative period: '24 hours', '7 days', '2 weeks', '1 month'. Items with no date are skipped when this is set."
          },
          "onlyNewItems": {
            "title": "Only new items (for scheduled runs)",
            "type": "boolean",
            "description": "Remember what was already delivered and return only items you haven't had before. Ideal with an Apify schedule: you pay only for genuinely new posts.",
            "default": false
          },
          "stateKey": {
            "title": "Memory name for 'Only new items'",
            "type": "string",
            "description": "Use a different name for each separate monitor so their memories don't mix.",
            "default": "default"
          },
          "keywords": {
            "title": "Keywords (any)",
            "type": "array",
            "description": "Keep only items whose title, summary or categories contain at least one of these words (whole-word, case-insensitive).",
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Drop items containing any of these words.",
            "items": {
              "type": "string"
            }
          },
          "includeContentMarkdown": {
            "title": "Feed content as Markdown",
            "type": "boolean",
            "description": "Convert each item's HTML content into clean Markdown (links made absolute, tracking pixels removed).",
            "default": true
          },
          "includeContentHtml": {
            "title": "Also include raw HTML",
            "type": "boolean",
            "description": "Add the original HTML content as contentHtml.",
            "default": false
          },
          "summaryMaxChars": {
            "title": "Summary length (characters)",
            "minimum": 0,
            "type": "integer",
            "description": "Plain-text summary is cut at a word boundary. 0 = no limit.",
            "default": 500
          },
          "fetchFullArticle": {
            "title": "Fetch full article (extra charge)",
            "type": "boolean",
            "description": "Many feeds only include a teaser. Turn on to open each item's link and add the full article as clean Markdown (articleMarkdown). Charged only when it succeeds. Only use on sites you are allowed to process.",
            "default": false
          },
          "discoverAllFeeds": {
            "title": "Use every feed a website lists",
            "type": "boolean",
            "description": "Off = use the first (main) feed a website advertises. On = read all of them (e.g. per-category feeds). Duplicates are removed.",
            "default": false
          },
          "dedupeAcrossFeeds": {
            "title": "Remove duplicates across feeds",
            "type": "boolean",
            "description": "The same story in two feeds is saved (and charged) once. Matching uses GUID, link (ignoring utm_ tracking parameters) and media URL.",
            "default": true
          },
          "sortNewestFirst": {
            "title": "Newest first",
            "type": "boolean",
            "description": "Sort each feed by date before applying the item limit.",
            "default": true
          },
          "maxConcurrency": {
            "title": "Feeds in parallel",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many feeds or websites are processed at the same time.",
            "default": 5
          },
          "requestTimeoutSecs": {
            "title": "Request timeout (seconds)",
            "minimum": 5,
            "maximum": 120,
            "type": "integer",
            "description": "How long to wait for each feed or page before giving up. A timed-out feed returns a free error row.",
            "default": 30
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Usually not needed: feeds are public. Use a proxy only if a site blocks you."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}