XML Feeds and Syndication
Feeds and XML API
Public compatibility data is published via standard RSS 2.0 (.xml), Atom 1.0 (.atom), and single-feature XML documents (/features--:id.xml). Feeds can be added directly to RSS readers or queried from scripts without custom client libraries.
Feed Catalog
Feeds support conditional requests via If-None-Match (ETag), returning 304 Not Modified when unchanged. Content-Encoding supports gzip and br.
Feed URL Parameters
Feed routes follow a flat double-dash (--) parameter hierarchy:
/feed--[status]--category--[group]--year--[year].xml /feed--[status]--category--[group]--year--[year].atom
| Segment | Values | Description |
|---|---|---|
Segment:
[status]
|
Values:
newly, widely, limited
|
Filter by Baseline availability tier. Optional. |
Segment:
category--[group]
|
Values:
css, javascript, html, etc.
|
Filter by feature category group. Optional. |
Segment:
year--[year]
|
Values:
2018 – 2026
|
Filter by 4-digit Baseline year. Optional. |
Note: Parameters must follow the exact order above (status → category → year). Out-of-order permutations and slash-separated paths return 404.
Feature XML
Every feature page has a standalone XML document at:
GET /features--:id.xml
Examples:
/features--popover.xml •
/features--subgrid.xml •
/features--progress-function.xml •
/features--nesting.xml
Document Structure:
<?xml version="1.0" encoding="UTF-8"?>
<feature id="popover">
<name>Popover API</name>
<description>A mechanism for displaying popover elements...</description>
<group>html</group>
<group_name>HTML</group_name>
<baseline>
<status>widely</status>
<low_date>2024-04-16</low_date>
<high_date>2026-10-16</high_date>
</baseline>
<support>
<browser name="chrome" version="114" supported="true" />
<browser name="firefox" version="125" supported="true" />
<browser name="safari" version="17" supported="true" />
<browser name="edge" version="114" supported="true" />
<browser name="chrome_android" version="114" supported="true" />
<browser name="firefox_android" version="125" supported="true" />
<browser name="safari_ios" version="17" supported="true" />
</support>
<specifications>
<spec>https://html.spec.whatwg.org/multipage/popover.html</spec>
</specifications>
<compat_features>
<key>html.global_attributes.popover</key>
<key>api.HTMLElement.showPopover</key>
</compat_features>
<canonical_url>https://nowyoucanuse.com/features--popover.html</canonical_url>
</feature>
Command Line Examples
cURL and xmllint:
# Fetch latest newly available feature titles curl -s -H "Accept-Encoding: gzip" https://nowyoucanuse.com/feed.xml | gunzip | xmllint --xpath "//item/title/text()" - # Query browser support for a feature curl -s -H "Accept-Encoding: gzip" https://nowyoucanuse.com/features--popover.xml | gunzip | xmllint --xpath "//browser[@supported='true']/@name" -
Python 3:
import urllib.request, xml.etree.ElementTree as ET, gzip
req = urllib.request.Request("https://nowyoucanuse.com/feed.xml", headers={"Accept-Encoding": "gzip"})
with urllib.request.urlopen(req) as resp:
raw = gzip.decompress(resp.read()) if resp.info().get("Content-Encoding") == "gzip" else resp.read()
tree = ET.fromstring(raw)
for item in tree.findall(".//item")[:5]:
print(f"{item.find('title').text} -> {item.find('link').text}")