Feeds
Everything on this site is published as a feed so agents and scripts can consume it directly.
All files under /feeds/ are served with Access-Control-Allow-Origin: *, so they can be
fetched from a browser. Files are rebuilt once per run; the generated field in each JSON payload is
the run date. Base URL: https://providers.skunkr.com.
Opportunities & risks RSS 2.0
The newest 100 opportunities and risks, newest first. Each item links to its anchor on /opportunities/ and carries a stable non-permalink guid derived from provider+date+title.
/feeds/feed.xml · RSS 2.0
<item> <title>[credits-program] Provider — Title</title> <link>https://…/opportunities/#o-0123456789ab</link> <guid isPermaLink="false">o-0123456789ab</guid> <pubDate>Fri, 18 Sep 2026 12:00:00 +0000</pubDate> <category>credits-program</category> <description>summary · structured applicability · action · verified flag</description> </item>
Daily digests RSS 2.0
One item per daily digest, newest first, with the digest's opening paragraph as the description.
/feeds/digests.xml · RSS 2.0
<item> <title>Web3 Provider Watch — 2026-09-18</title> <link>https://…/digests/2026-09-18.html</link> <guid isPermaLink="false">digest-2026-09-18</guid> </item>
Opportunities & risks JSON
All opportunities and risks with a computed anchor id and an is_risk flag.
/feeds/opportunities.json · JSON
{
"generated": "2026-09-18",
"count": 108,
"opportunities": [
{"id": "o-0123456789ab", "title": "…", "type": "credits-program", "provider": "…",
"date": "2026-09-18", "date_iso": "2026-09-18", "summary": "…",
"chain_families": ["evm"], "capability_classes": ["rpc.standard"], "impact": {…},
"action": "…", "sources": ["…"], "verified": true, "expires": "2026-09-27",
"is_risk": false, "provider_slug": "…", "url": "https://…/opportunities/#o-0123456789ab"}
]
}Providers (normalized) JSON
Every tracked provider as a normalized row: raw vendor wording is kept alongside normalized access, network support, capability classes and evidence freshness. Avalanche fields are legacy aliases.
/feeds/providers.json · JSON
{
"generated": "2026-09-18",
"count": 163,
"ontology": {…},
"providers": [
{"name": "…", "slug": "…", "category": "evm_rpc", "access_model": "free-with-key",
"access_model_raw": "…", "chain_families": ["evm"], "capability_classes": ["rpc.standard"],
"network_support": {"families": ["evm"], "claims": […]}, "freshness": {"band": "fresh"},
"free_tier": "…", "rate_limit": "…", "paid_from": "…", "pricing_unit": "…",
"promos": null, "sources": ["…"], "verified": true, "last_verified": "2026-09-18",
"page": "/providers/….html"}
]
}One provider JSON
The same normalized row for a single provider, plus its full change history from changes.jsonl (newest first). Slugs are the slug field in providers.json.
/feeds/providers/<slug>.json · JSON
{
"generated": "2026-09-18",
"provider": { …same shape as a providers.json row… },
"changes": [
{"date": "2026-09-18", "type": "price-change", "title": "…",
"summary": "…", "sources": ["…"], "verified": true}
]
}Act-by dates JSON
Dated items that need action, upcoming first, with 'ongoing' entries last.
/feeds/deadlines.json · JSON
{
"generated": "2026-09-18",
"count": 13,
"deadlines": [
{"date": "2026-09-22", "date_iso": "2026-09-22", "title": "…", "detail": "…",
"status": "upcoming"}
]
}Full state (copy) JSON
A verbatim copy of the run state: ontology, providers (raw fields), opportunities, deadlines, runs and notes. This is the input the site is built from.
/feeds/state.json · JSON
{"schema_version": "0.2", …}Change history (copy) JSON Lines
One JSON object per line, the per-provider change history. provider matches providers[].name; a name can map to two provider rows in different categories.
/feeds/changes.jsonl · JSON Lines
{"date": "2026-09-18", "provider": "Moralis", "type": "new-chain-coverage",
"title": "…", "summary": "…", "sources": ["…"], "verified": true}Conventions
Dates in the source data are sometimes annotated (for example
2026-09-12 (rechecked 2026-09-14)); JSON feeds keep the original string in date and add a
parsed date_iso where one could be extracted. verified: true means the figure was read
from the provider's own page on the run date; false means it could not be confirmed and should be
treated as indicative. Normalized enumerations (access_model, chain_families,
capability_classes, network_support,
opportunity_types) are documented in the ontology object inside
state.json and providers.json.