Sunset Radar — vendor-health feed
Sunset Radar is the public, machine-readable record of vendor lifecycle events that change agent behavior: deprecations, model retirements, breaking schema changes, and material pricing changes. Every entry links back to the vendor’s own public notice. The feed is the same data the ifivo gateway uses to gate, warn on, or surface affected agent calls.
Endpoint
GET https://www.ifivo.com/api/vendor-health/feed- Public. No auth header, no API key.
cache-control: public, max-age=60, s-maxage=60, stale-while-revalidate=600.access-control-allow-origin: *— safe to call from a browser.x-ifivo-feed-version: 1— the stable response shape version. We will not change the shape without bumping this header and the path.
Query parameters
include:verified(default),candidate(verified + candidate), orall(verified + candidate + withdrawn).vendor: vendor slug, lowercase, hyphenated. Examples:openai,anthropic,azure-openai,google-gemini,twilio,stripe,slack.kind: event kind. Examples:model_deprecation,model_retirement,api_breaking_change,pricing_change,billing_change,outage,security_incident,tos_change.since: ISO-8601 timestamp. Returns events whoseeffective_atorannounced_atis at or after this value.limit: integer, 1..500, default 200.
Response shape
{
"version": 1,
"generated_at": "2026-05-04T02:00:00.000Z",
"source": "db",
"events": [
{
"id": "e0c1...",
"vendor": "openai",
"event_kind": "model_retirement",
"identifier": "gpt-4-32k",
"state": "verified",
"effective_at": "2025-06-06",
"announced_at": "2024-06-06",
"superseded_by": "gpt-4o",
"impact_summary": "OpenAI retired gpt-4-32k on June 6, 2025...",
"recommended_action": "Migrate to gpt-4o.",
"source_url": "https://platform.openai.com/docs/deprecations",
"tags": { "category": "model_retirement", "severity": "high", "status": "past" },
"verified_at": "2026-05-01T00:00:00Z"
}
]
}source is db when the response came from the live database. It is fallback when ifivo served a curated list of hand-verified events instead — which can happen during preview deploys, transient database errors, or while a fresh environment is bootstrapping. Fallback responses also include a note field describing why.
States
- verified — a human reviewer confirmed the event against the vendor’s own public notice. Only verified events drive ifivo policy enforcement by default.
- candidate — a watchlist event that has been parsed from a vendor email or other ingestion source but not yet human-verified. Candidate events never enforce unless a tenant explicitly opts in.
- withdrawn — an event that was previously announced but the vendor canceled. Kept for audit; never enforces.
Verification rules
- Every
verifiedrow must have asource_urlthat resolves to a public page on the vendor’s own documentation domain where the identifier and the effective date appear. - We never invent dates, identifiers, or replacements. If a vendor revises a date, the row is updated and re-verified.
- Past retirements are kept as
verifiedrows tagged{"status": "past"}so consumers can audit stale references. - No vendor partnerships are implied. Every entry is a public notice published by the vendor.
How ifivo uses the feed
Tenants can set a per-org sunset_radar_mode: off, warn, block, or aggressive. The gateway extracts identifier candidates from each action’s metadata (model, request.endpoint, the action verb itself, and a few other common slots) and matches them against verified events. In warn mode, the matched event is attached to the transaction’s enriched metadata. In block mode, the gateway short-circuits before any side effect, writes a transactions(status='blocked') row, and emits an action.blocked_by_sunset_radar audit entry.
OSS vs cloud
- The feed itself is open. Anyone can subscribe, mirror, or build on it.
- Tenant-aware impact analysis (mapping events to your specific agent inventory and approvals workflow) lives in the cloud product.
- Gateway enforcement (
warn/block/aggressive) is configured per workspace in the cloud control center.
Reliability contract
The endpoint must never return a 5xx for a syntactically valid query. If the database is unavailable, the schema has not been bootstrapped, or a query throws, the route serves a curated fallback list of hand-verified events with source: "fallback" and a descriptive note. Validation errors return 400 with an error string.
Examples
# Default: verified events, most recent first
curl https://www.ifivo.com/api/vendor-health/feed
# Filter by vendor
curl 'https://www.ifivo.com/api/vendor-health/feed?vendor=openai'
# Pricing changes only
curl 'https://www.ifivo.com/api/vendor-health/feed?kind=pricing_change'
# Watchlist (verified + candidate)
curl 'https://www.ifivo.com/api/vendor-health/feed?include=candidate'
# Recent activity since a date
curl 'https://www.ifivo.com/api/vendor-health/feed?since=2026-01-01'Questions or a missing vendor? Get in touch.