Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/eosl-ai:eosl-ai-hardware-lifecycle-api-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
{
"openapi": "3.1.0",
"info": {
"title": "EOSL.ai Hardware Lifecycle API",
"version": "1.0.0",
"summary": "Source-backed hardware end-of-sale and end-of-service-life dates.",
"description": "Free, CORS-open, no authentication and no sign-up. Every record carries the vendor bulletin URL the date was read from. 3299 products, 17159 part numbers, 19 manufacturers. Data is regenerated weekly from vendor sources.",
"license": {
"name": "CC BY 4.0",
"identifier": "CC-BY-4.0"
},
"contact": {
"name": "EOSL.ai",
"url": "https://eosl.ai/api/"
}
},
"servers": [
{
"url": "https://eosl.ai"
}
],
"paths": {
"/api/v1/families.json": {
"get": {
"summary": "Every tracked product",
"operationId": "listFamilies",
"description": "Index of all tracked hardware products with status, dates and page URL.",
"responses": {
"200": {
"description": "Product index",
"content": {
"application/json": {}
}
}
}
}
},
"/api/v1/family/{slug}.json": {
"get": {
"summary": "One product in full",
"operationId": "getFamily",
"description": "Every SKU group for one product: end-of-sale, end-of-service-life, source bulletin URL, last-verified date, vendor-named replacement and part numbers.",
"parameters": [
{
"name": "slug",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Product slug, e.g. cisco-catalyst-3850"
}
],
"responses": {
"200": {
"description": "Product detail",
"content": {
"application/json": {}
}
},
"404": {
"description": "Unknown product"
}
}
}
},
"/data/lookup.json": {
"get": {
"summary": "Part-number lookup table",
"operationId": "getLookup",
"description": "One row per part number — the dataset the browser tools, the MCP server and the NetBox/Ansible/Snipe-IT integrations all read.",
"responses": {
"200": {
"description": "Lookup table",
"content": {
"application/json": {}
}
}
}
}
},
"/cell/{part}.txt": {
"get": {
"summary": "One-line status for a spreadsheet",
"operationId": "getCell",
"description": "A single comma-free line for =IMPORTDATA (Google Sheets) or =WEBSERVICE (Excel).",
"parameters": [
{
"name": "part",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Part number, e.g. WS-C3850-24T-L.txt"
}
],
"responses": {
"200": {
"description": "Status line",
"content": {
"text/plain": {}
}
}
}
}
},
"/api/usage": {
"get": {
"summary": "Aggregate usage of these machine surfaces",
"operationId": "getUsage",
"description": "Which kinds of client called which endpoint, on how many days. Public deliberately. Read the note field before quoting any figure — these are sightings, not request counts.",
"responses": {
"200": {
"description": "Usage report",
"content": {
"application/json": {}
}
}
}
}
},
"/mcp": {
"post": {
"summary": "Model Context Protocol endpoint",
"operationId": "mcp",
"description": "Stateless Streamable HTTP, JSON-RPC 2.0, no auth. Five read-only tools over the same database.",
"responses": {
"200": {
"description": "JSON-RPC response",
"content": {
"application/json": {}
}
}
}
}
}
}
}