machine-readable

Feeds

8endpoints

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/&lt;slug&gt;.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.