eosl.ai
Developer API

Free JSON API for hardware lifecycle data

Every end-of-sale and end-of-service-life date on EOSL.ai is available as clean, source-linked JSON — no key, no login, CORS-open. Build it into your CMDB, a Slack bot, a dashboard, or an agent. Please cache and attribute EOSL.ai.

Endpoints

GET /api/v1/families.jsonIndex of every tracked product family — slug, vendor, series, category, status, EOSL, and detail URL.
GET /api/v1/family/{slug}.jsonFull detail for one family: every SKU group with end-of-sale, EOSL, source bulletin URL, last-verified date, replacement and part numbers.
GET /data/lookup.jsonCompact part-number → status map that powers the bulk checker.
GET /badge/{slug}.svgLive status badge image for a family (see the badge builder).

Example — /api/v1/family/cisco-catalyst-3850.json

{
  "slug": "cisco-catalyst-3850",
  "vendor": "Cisco",
  "line": "Catalyst",
  "series": "3850 Series",
  "category": "Stackable access switch",
  "generalAvailability": "2013-01",
  "url": "https://eosl.ai/system/cisco-catalyst-3850/",
  "badge": "https://eosl.ai/badge/cisco-catalyst-3850.svg",
  "status": {
    "key": "past",
    "label": "Past end of service",
    "monthsToEosl": -9
  },
  "skuCount": 58,
  "skuGroups": [
    {
      "label": "Copper SKUs",
      "endOfSale": "2020-10",
      "endOfServiceLife": "2025-10",
      "eoslComputed": false,
      "active": false,
      "lastFirmware": "IOS XE 16.12.x",
      "sourceUrl": "https://www.cisco.com/c/en/us/products/collateral/switches/catalyst-3850-series-switches/eos-eol-notice-c51-743072.html",
      "policyUrl": null,
      "lastVerified": "2026-06",
      "replacement": "Cisco Catalyst 9300 Series",
      "skus": [
        {
          "partNumber": "WS-C3850-24T-L",
          "description": null,
          "replacement": "C9300-24T-E"
        },
        {
          "partNumber": "WS-C3850-24T-S",
          "description": null,
          "replacement": "C9300-24T-A"
        },
        {
          "partNumber": "WS-C3850-24T-E",
          "description": null,
          "replacement": "C9300-24T-A"
        },
        {
          "partNumber": "WS-C3850-48T-L",
          "description": null,
          "replacement": "C9300-48T-E"
        },
        {
          "partNumber": "WS-C3850-48T-S",
          "description": null,
          "replacement": "C9300-48T-A"
        },
        {
          "partNumber": "WS-C3850-48T-E",
          "description": null,
          "replacement": "C9300-48T-A"
        },
        {
          "partNumber": "WS-C3850-24P-L",
          "description": null,
          "replacement": "C9300-24P-E"
        },
        {
          "partNumber": "WS-C3850-24P-S",
          "description": null,
          "replacement": "C9300-24P-A"
        },
        {
          "partNumber": "WS-C3850-24P-E",
          "description": null,
          "replacement": "C9300-24P-A"
        },
        {
          "partNumber": "WS-C3850-48P-L",
          "description": null,
          "replacement": "C9300-48P-E"
        },
        {
          "partNumber": "WS-C3850-48P-S",
          "description": null,
          "replacement": "C9300-48P-A"
        },
        {
          "partNumber": "WS-C3850-48P-E",
          "description": null,
          "replacement": "C9300-48P-A"
        },
        {
          "partNumber": "WS-C3850-48F-L",
          "description": null,
          "replacement": "C9300-48P-E"
        },
        {
          "partNumber": "WS-C3850-48F-S",
          "description": null,
          "replacement": "C9300-48P-A"
        },
        {
          "partNumber": "WS-C3850-48F-E",
          "description": null,
          "replacement": "C9300-48P-A"
        },
        {
          "partNumber": "WS-C3850-24U-L",
          "description": null,
          "replacement": "C9300-24U-E"
        },
        {
          "partNumber": "WS-C3850-24U-S",
          "description": null,
          "replacement": "C9300-24U-A"
        },
        {
          "partNumber": "WS-C3850-24U-E",
          "description": null,
          "replacement": "C9300-24U-A"
        },
        {
          "partNumber": "WS-C3850-48U-L",
          "description": null,
          "replacement": "C9300-48U-E"
        },
        {
          "partNumber": "WS-C3850-48U-S",
          "description": null,
          "replacement": "C9300-48U-A"
        },
        {
          "partNumber": "WS-C3850-48U-E",
          "description": null,
          "replacement": "C9300-48U-A"
        },
        {
          "partNumber": "WS-C3850-12X48U-L",
          "description": null,
          "replacement": "C9300-48UXM-E"
        },
        {
          "partNumber": "WS-C3850-12X48U-S",
          "description": null,
          "replacement": "C9300-48UXM-A"
        },
        {
          "partNumber": "WS-C3850-12X48U-E",
          "description": null,
          "replacement": "C9300-48UXM-A"
        },
        {
          "partNumber": "WS-C3850-24XU-L",
          "description": null,
          "replacement": "C9300-24U-E"
        },
        {
          "partNumber": "WS-C3850-24XU-S",
          "description": null,
          "replacement": "C9300-24U-A"
        },
        {
          "partNumber": "WS-C3850-24XU-E",
          "description": null,
          "replacement": "C9300-24U-A"
        },
        {
          "partNumber": "C1-WS3850-24P/K9",
          "description": null,
          "replacement": "C9300-24P-A"
        },
        {
          "partNumber": "C1-WS3850-24T/K9",
          "description": null,
          "replacement": "C9300-24T-A"
        },
        {
          "partNumber": "C1-WS3850-24U/K9",
          "description": null,
          "replacement": "C9300-24U-A"
        },
        {
          "partNumber": "C1-WS3850-48F/K9",
          "description": null,
          "replacement": "C9300-48P-A"
        },
        {
          "partNumber": "C1-WS3850-48P/K9",
          "description": null,
          "replacement": "C9300-48P-A"
        },
        {
          "partNumber": "C1-WS3850-48T/K9",
          "description": null,
          "replacement": "C9300-48T-A"
        },
        {
          "partNumber": "C1-WS3850-48U/K9",
          "description": null,
          "replacement": "C9300-48U-A"
        },
        {
          "partNumber": "C1-WSC3850-12X48UL",
          "description": null,
          "replacement": "C9300-48UXM-A"
        },
        {
          "partNumber": "C1-WSC3850-24XUL",
          "description": null,
          "replacement": "C9300-24UX-A"
        }
      ]
    },
    {
      "label": "Fiber (SFP/SFP+) SKUs",
      "endOfSale": "2022-04",
      "endOfServiceLife": "2027-04",
      "eoslComputed": false,
      "active": false,
      "lastFirmware": "IOS XE 16.12.x",
      "sourceUrl": "https://www.cisco.com/c/en/us/products/collateral/switches/catalyst-3850-series-switches/eos-eol-notice-c51-2438804.html",
      "policyUrl": null,
      "lastVerified": "2026-06",
      "replacement": "Cisco Catalyst 9300/9300X and 9500",
      "skus": [
        {
          "partNumber": "WS-C3850-12S-E",
          "description": null,
          "replacement": "C9300-24S"
        },
        {
          "partNumber": "WS-C3850-12S-S",
          "description": null,
          "replacement": "C9300-24S"
        },
        {
          "partNumber": "WS-C3850-12XS-E",
          "description": null,
          "replacement": "C9300X-12Y"
        },
        {
          "partNumber": "WS-C3850-12XS-S",
          "description": null,
          "replacement": "C9300X-12Y"
        },
        {
          "partNumber": "WS-C3850-16XS-E",
          "description": null,
          "replacement": "C9300X-12Y"
        },
        {
          "partNumber": "WS-C3850-16XS-S",
          "description": null,
          "replacement": "C9300X-12Y"
        },
        {
          "partNumber": "WS-C3850-24S-E",
          "description": null,
          "replacement": "C9300-24S"
        },
        {
          "partNumber": "WS-C3850-24S-S",
          "description": null,
          "replacement": "C9300-24S"
        },
        {
          "partNumber": "WS-C3850-24XS-E",
          "description": null,
          "replacement": "C9300X-24Y"
        },
        {
          "partNumber": "WS-C3850-24XS-S",
          "description": null,
          "replacement": "C9300X-24Y"
        },
        {
          "partNumber": "WS-C3850-32XS-E",
          "description": null,
          "replacement": "C9300X-24Y"
        },
        {
          "partNumber": "WS-C3850-32XS-S",
          "description": null,
          "replacement": "C9300X-24Y"
        },
        {
          "partNumber": "WS-C3850-48XS-E",
          "description": null,
          "replacement": "C9500-48Y4C"
        },
        {
          "partNumber": "WS-C3850-48XS-F-E",
          "description": null,
          "replacement": "C9500-48Y4C"
        },
        {
          "partNumber": "WS-C3850-48XS-F-S",
          "description": null,
          "replacement": "C9500-48Y4C"
        },
        {
          "partNumber": "WS-C3850-48XS-S",
          "description": null,
          "replacement": "C9500-48Y4C"
        },
        {
          "partNumber": "C1-WS3850-12S/K9",
          "description": null,
          "replacement": "C9300-24S"
        },
        {
          "partNumber": "C1-WS3850-12XS-S",
          "description": null,
          "replacement": "C9300X-12Y"
        },
        {
          "partNumber": "C1-WS3850-24S/K9",
          "description": null,
          "replacement": "C9300-24S"
        },
        {
          "partNumber": "C1-WSC3850-24XS-S",
          "description": null,
          "replacement": "C9300X-24Y"
        },
        {
          "partNumber": "C1-WSC3850-48XS-FS",
          "description": null,
          "replacement": "C9500-48Y4C"
        },
        {
          "partNumber": "C1-WSC3850-48XS-S",
          "description": null,
          "replacement": "C9500-48Y4C"
        }
      ]
    }
  ]
}

Notes

Source-backed

Every date carries the sourceUrl of the vendor bulletin it came from. Computed EOSL dates are flagged eoslComputed:true with a policyUrl.

CORS-open, cache-friendly

All endpoints send Access-Control-Allow-Origin: * and are static — fetch them from the browser or a server. Please cache; the data changes at most weekly.

Stable slugs

Family slugs match the site URLs (https://eosl.ai/system/{slug}/), so you can link users straight to the human page.

Attribution

Free to use. If you surface these dates, credit EOSL.ai and link back so your users can reach the source bulletin.

Need higher-volume access, webhooks on change, or a commercial license? Get in touch.
Open the family index →Status badges →