Skip to content

Parameters ​

TIP

Parameters here are actually URI query and can be linked together with & to generate a complex feed.

Parameters here need to be placed after the route path. Some routes may have custom route parameters and parameters here need to be placed after them.

E.g., https://rsshub.app/twitter/user/durov/readable=1&includeRts=0?brief=100&limit=5

Filtering ​

WARNING

Please make sure you've fully URL-encoded the parameters. Do not rely on the browser's automatic URL encoding. Some characters, such as +, &, will not be automatically encoded, resulting in the final parsing result not being correct.

WARNING

filter supports Regex, and due to the fact that some Regex are vulnerable to DoS (ReDoS), default engine re2 blocks some of these functionalities available in node Regexp. These two engines also behaves a bit different in some corner cases. Details

If you need to use a different engine, please refer to Deploy->Features->FILTER_REGEX_ENGINE.

The following URL query parameters are supported, Regex support is built-in.

Set filter to include the content

  • filter: filter title and content

  • filter_title: filter title only

  • filter_description: filter content only

  • filter_author: filter author only

  • filter_category: filter category only

  • filter_time: filter pubDate, in seconds, return specified time range. Item without pubDate will not be filtered.

E.g. https://rsshub.app/dribbble/popular?filter=Blue|Yellow|Black

Set filterout to exclude unwanted content.

  • filterout: filter title and content

  • filterout_title: filter title only

  • filterout_description: filter content only

  • filterout_author: filter author only

  • filterout_category: filter category only

E.g. https://rsshub.app/dribbble/popular?filterout=Blue|Yellow|Black

Set filter_case_sensitive to determine whether the filtering keywords should be case sensitive. The parameter would apply to both filter and filterout.

Default: true

E.g. https://rsshub.app/dribbble/popular?filter=BluE|yeLLow|BlaCK&filter_case_sensitive=false

Limit Entries ​

Set limit to limit the number of articles in the feed.

E.g. Dribbble Popular Top 10 https://rsshub.app/dribbble/popular?limit=10

Sorted ​

Set sorted to control whether to sort the output by the publish date (pubDate). This is useful for some feeds that pin some entries at the top. Default to true i.e. the output is sorted.

E.g. NJU Undergraduate Bulletin Board https://rsshub.app/nju/jw/ggtz?sorted=false

Fulltext ​

Enable fulltext via mode parameter.

E.g. Bilibili article https://rsshub.app/bilibili/user/article/334958638?mode=fulltext

Access Control ​

Set key or code to grant access to requests. See Access Control Configuration.

Telegram Instant View ​

Replace website link with Telegram's Instant View link.

Enable Telegram Instant View requires a page template, it can be obtained from Telegram's Instant View page

  • tgiv: template hash, obtained from the link of template page generated(the string after &rhash=)

E.g. https://rsshub.app/novel/biquge/94_94525?tgiv=bd3c42818a7f7e

Output Sci-Hub link in scientific journal routes, this supports major journals or routes that output DOIs.

  • scihub: set to any value

E.g. https://rsshub.app/pnas/latest?scihub=1

Conversion between Traditional and Simplified Chinese ​

  • opencc: s2t (Simplified Chinese to Traditional Chinese)、t2s (Traditional Chinese to Simplified Chinese), other optional values refer to simplecc-wasm - Configurations

E.g. https://rsshub.app/theinitium/channel/latest/zh-hans?opencc=t2s

Multimedia processing ​

  • show_image: images are kept by default (true). Set it to false to remove images from entry content, feed and entry covers, thumbnails, and image attachments. Audio and video are kept, but video poster images are removed.

For example, /github/issue/DIYgod/RSSHub?show_image=false. This parameter applies to RSS 2.0, Atom and JSON Feed output.

  • enclosure: automatic extraction is disabled by default. Set it to true to expose direct images, audio, video and downloadable files from entry content as attachments while retaining the HTML content. Only HTTP(S) URLs with a recognized file extension or a declared media type are extracted; embedded players and data/blob URLs are skipped. Existing attachments are preserved and duplicate URLs are removed. This does not make extra requests to media servers or discover download links behind players.

For example, /github/issue/DIYgod/RSSHub?enclosure=true&format=atom. Atom and JSON Feed can expose multiple attachments; RSS 2.0 uses the first attachment when the route has no explicit enclosure. Audio and video are extracted before images. Unknown RSS enclosure lengths are represented as 0; Atom omits an unknown length. show_image=false also excludes extracted images. Atom now includes enclosure links for attachments explicitly supplied by routes, even without this parameter.

WARNING

This is an experimental API

image_hotlink_template and multimedia_hotlink_template allow users to supply templates to replace media URLs. Certain routes plus certain RSS readers may result in users needing these features, but it's not very common. Vulnerable characters will be escaped automatically, making XSS attack impossible. The scope of URL replacement is limited to media elements, making any script URL unable to load and unable to cause XSS. As a result, users can only take the control of "where are the media from". These features are commonly side-effect-free. To enable these two parameters, please set ALLOW_USER_HOTLINK_TEMPLATE to true

  • image_hotlink_template: replace image URL in the content to avoid anti-hotlink protection, leave it blank to disable this function. Usage reference #2769. You may use any property listed in URL (suffixing with _ue results in URL encoding), format of JS template literal. e.g. ${protocol}//${host}${pathname}, https://i3.wp.com/${host}${pathname}, https://images.weserv.nl?url=${href_ue}
  • image_hotlink_domains: a comma-separated list of exact hostnames to which image_hotlink_template applies, such as example.com,images.example.com. Use hostnames without a scheme, path, port, or wildcard; list subdomains separately. Requires ALLOW_USER_HOTLINK_TEMPLATE=true and a nonempty image_hotlink_template. Omitting this parameter or leaving it empty imposes no hostname restriction. If HOTLINK_TEMPLATE is configured, it takes precedence and this parameter is ignored.
  • multimedia_hotlink_template: the same as image_hotlink_template but apply to audio and video. Note: the service must follow redirects, allow reverse-proxy for audio and video, and must drop the Referer header when reverse-proxying. Here is an easy-to-deploy project that fits these requirements. The project accepts simple URL concatenation, e.g. https://example.com/${href}, in which example.com should be replaced with the domain name of the service you've deployed
  • wrap_multimedia_in_iframe: wrap audio and video in <iframe> to prevent the reader from sending Referer header. This workaround is only compatible with a few readers, such as RSS Guard and Akregator, which may not support the previous method. You can try this method in such a case

There are more details in the FAQ.

Output Formats ​

RSSHub conforms to RSS 2.0, Atom, JSON Feed, and RSS3 Protocol. To obtain the feed in a specific format, simply add the format parameter with the value rss, atom, json, or rss3 to the feed address to obtain the feed in the corresponding format. The default output format is RSS 2.0.

RSS 2.0 entry authors use Dublin Core. Every RSS 2.0 feed declares xmlns:dc="http://purl.org/dc/elements/1.1/", and every nonempty item.author, including email addresses, is emitted as <dc:creator> instead of <author>. Route developers still use the author field. This change does not affect Atom, JSON Feed, <itunes:author>, or entry GUIDs.

E.g.

debug.json ​

If the RSSHub instance is running with debugInfo=true enabled, a route with debug.json format parameter will result in the value of ctx.set('json', obj) being returned.

This feature aims to facilitate debugging or developing customized features. A route developer has the freedom to determine whether to adopt it or not, without any format requirement.

For example:

  • /furstar/characters/cn?format=debug.json

debug.html ​

By adding {index}.debug.html (where {index} is a number starting from 0) format parameter and running the instance with debugInfo=true, RSSHub will return the content set in the plugin's data.item[index].description. You can access this page with a browser to quickly view the extracted information.

Example:

  • /furstar/characters/cn?format=0.debug.html

Brief introduction ​

Set the parameter brief to generate a brief pure-text introduction with a limited number of characters ( ≥ 100).

For example:

  • Brief introduction with 100 characters: ?brief=100

Summarized by ChatGPT (Self-hosted) ​

Set the parameter chatgpt to generate a summary by ChatGPT. See Install for details. Please consider the necessity of this feature, because it will consume some tokens.

  • chatgpt: set to any value

Requirements:

  • OPENAI_API_KEY environment variable has been set

For example:

  • /meituan/tech/home?chatgpt=true

Released under the AGPL-3.0 License.