API Live — api.endoflife.ai
EOL Intelligence API · v1.0

EOL Risk Scores™ and
lifecycle data for every stack.

Real-time end-of-life dates and EOL Risk Scores™ for 480+ software products — Node.js, Python, PHP, Ubuntu, Kubernetes, and more. Power your observability stack, SBOM tool, CI/CD pipeline, or security platform.

Get Pro API Key → View endpoints ↓
Free
$0/mo
For evaluation, personal projects, and open source tools.
  • 100 requests/day — no key needed
  • 500 requests/day with a free key
  • All endpoints
  • EOL Risk Score™ data
  • 480+ products
  • Batch endpoint — up to 5 products
Get a free key →
Starter
$79/mo
For internal tools, scripts, and small production integrations.
  • 10,000 requests per day
  • All endpoints
  • EOL Risk Score™ data
  • 480+ products
  • API key authentication
  • Batch endpoint — 25 products
  • Fully self-serve — instant everything
Subscribe →
Enterprise
Custom
For observability platform integrations, partnerships, and data licensing.
  • Unlimited requests
  • Data licensing options
  • Custom endpoints
  • SLA guarantee
  • Custom terms & invoicing
  • Co-marketing available
  • Acquisition discussions
Contact us →
Try it live
No API key needed for the free tier. Results are live from api.endoflife.ai.
// Results will appear here
Endpoints
Base URL: https://api.endoflife.ai · OpenAPI 3.0 spec ↓ (import into Postman, Insomnia, or your codegen tool)
GET
/v1/score/:slug/:version
EOL Risk Score™ for a specific product version. Returns score, band, factors, EOL date, days past EOL, and extended support vendor.
GET
/v1/score/:slug
EOL Risk Score™ for the highest-risk version of a product. Useful for quick risk checks without specifying a version.
GET
/v1/status/:slug/:version
Simple lifecycle status for a specific version. Returns is_eol, is_supported, eol_approaching, days_until_eol, days_past_eol.
GET
/v1/product/:slug
All versions for a product with EOL Risk Scores™. Returns complete lifecycle data for every tracked version.
GET
/v1/products
List of all 480+ tracked products. Returns slugs, names, and product URLs.
POST
/v1/batch
Score multiple products in a single request. Free tier: up to 5 products. Pro tier: up to 50 products. Body: {"products":[{"slug":"nodejs","version":"18"}]}
Free: 5 products · Pro: 50 products per request
Enterprise & data licensing
Need more than an API key? We license the scored, verified dataset itself — redistribution rights for customer-facing use, the EOL Risk Score™ layer with factor breakdowns, verification provenance, the Exploited & Unpatchable feed, SLAs, and volume beyond Pro. The underlying open-source dates stay free forever; the licensed layer is what we verify, score, and stand behind.

Goes straight to the founder. Replies within one business day. Or email [email protected].
Request — curl
# Score for Node.js 18
curl https://api.endoflife.ai/v1/score/nodejs/18

# With Pro API key
curl https://api.endoflife.ai/v1/score/nodejs/18 \
  -H "X-API-Key: your_key_here"

# Batch request
curl -X POST https://api.endoflife.ai/v1/batch \
  -H "Content-Type: application/json" \
  -H "X-API-Key: your_key_here" \
  -d '{"products":[
    {"slug":"nodejs","version":"18"},
    {"slug":"python","version":"3.8"},
    {"slug":"ubuntu","version":"20.04"}
  ]}'
Response — Node.js 18
{
  "product": "nodejs",
  "version": "18",
  "latest_release": "18.20.8",
  "eol_date": "2025-04-30",
  "status": "eol",
  "days_past_eol": 383,
  "score": 85,
  "band": "Critical",
  "factors": {
    "eol_recency": 35,
    "attack_surface": 30,
    "cisa_kev_exposure": 20,
    "extended_support": 0
  },
  "score_card_url": "https://endoflife.ai/score/nodejs/18",
  "methodology_url": "https://endoflife.ai/risk-score"
}
JavaScript / Node.js
// Check if a product version is EOL
const res = await fetch(
  'https://api.endoflife.ai/v1/status/nodejs/18',
  { headers: { 'X-API-Key': process.env.EOL_API_KEY } }
);
const data = await res.json();

if (data.is_eol) {
  console.warn(
    `${data.product} ${data.version} is EOL`,
    `(${data.days_past_eol} days past EOL)`
  );
}
Python
import requests

# Get EOL Risk Score for Ubuntu 20.04
res = requests.get(
    "https://api.endoflife.ai/v1/score/ubuntu/20.04",
    headers={"X-API-Key": "your_key_here"}
)
data = res.json()

print(f"{data['product']} {data['version']}")
print(f"Score: {data['score']} {data['band']}")
print(f"EOL: {data['eol_date']}")
# Score: 80 Critical
# EOL: 2025-05-31
Use it in your pipeline
Copy-paste EOL gates for CI/CD — fail the build when a runtime is past end of life. Endpoint: GET /v1/status/{product}/{version}, no key required on the free tier.
curl
# Lifecycle status for Node.js 18
curl -s https://api.endoflife.ai/v1/status/nodejs/18

# One-liner gate: exit 1 if EOL
curl -s https://api.endoflife.ai/v1/status/nodejs/18 \
  | jq -e '.is_eol | not' > /dev/null
Python — requests
import sys
import requests

data = requests.get(
    "https://api.endoflife.ai/v1/status/python/3.8"
).json()

if data["is_eol"]:
    print(f"{data['product']} {data['version']} is EOL "
          f"({data['days_past_eol']} days past EOL)")
    sys.exit(1)
GitHub Actions
jobs:
  eol-gate:
    runs-on: ubuntu-latest
    steps:
      - name: Fail build if runtime is EOL
        run: |
          IS_EOL=$(curl -s https://api.endoflife.ai/v1/status/nodejs/18 | jq -r '.is_eol')
          if [ "$IS_EOL" = "true" ]; then
            echo "nodejs 18 is end-of-life"
            exit 1
          fi
GitLab CI
eol_gate:
  stage: test
  image: alpine:latest
  script:
    - apk add --no-cache curl jq
    - IS_EOL=$(curl -s https://api.endoflife.ai/v1/status/nodejs/18 | jq -r '.is_eol')
    - if [ "$IS_EOL" = "true" ]; then echo "nodejs 18 is end-of-life"; exit 1; fi
Jenkins
stage('EOL gate') {
  steps {
    script {
      def status = readJSON text: sh(
        script: 'curl -s https://api.endoflife.ai/v1/status/nodejs/18',
        returnStdout: true
      )
      if (status.is_eol) {
        error "nodejs 18 is end-of-life (EOL ${status.eol_date})"
      }
    }
  }
}
Built for your stack
📊
Observability Platforms
Send EOL Risk Scores™ as metrics into your observability stack. Alert when monitored hosts run EOL runtimes. Surface the blind spot inside your existing monitoring platform — with official Datadog and Grafana integrations in development.
🔒
SCA & SBOM Tools
Enrich your software composition analysis with runtime EOL data. The CVE blind spot SCA tools miss — EOL runtimes with no patch path.
⚙️
CI/CD Pipelines
Fail builds when dependencies run on EOL runtimes. Block deployments to EOL infrastructure. Automate EOL compliance checks in every PR.
🏗️
Backstage Plugin
Surface EOL Risk Scores™ inside your developer portal. Every service in the catalog shows its runtime EOL status at a glance.
🤖
Renovate & Dependabot
Add runtime EOL awareness to your dependency update bot. Alert when .nvmrc or .python-version pins an EOL runtime version.
📋
CISO Risk Reports
Generate board-ready EOL risk reports. Quantified risk scores across your entire infrastructure stack. Data your auditors can cite.

Get a Free API Key

500 requests/day (5× the anonymous limit), emailed to you instantly. No credit card.

Get Your Pro API Key

Unlimited requests and the full batch endpoint. $199/month — cancel any time. Your API key is delivered instantly after payment, no humans involved.

Unlimited requests
No rate limits. Call the API as often as you need.
Batch endpoint
Score up to 50 products in a single API call.
Self-serve key recovery
Lost your key? Re-enter your email above and it's re-sent instantly.
Cancel any time
No contracts. Cancel from your Stripe portal.
Subscribe to Pro — $199/month → Or Starter — $79/month (10k requests/day) →
Secure checkout via Stripe · Your API key is emailed instantly after payment
Already subscribed? Manage or cancel your subscription → · Lost key? Re-enter your email and it's re-sent instantly
Need a custom plan, data licensing, or enterprise pricing? Contact us →