📡 API Reference

One endpoint, one answer. Check if any open-source project is actively maintained.

Base URL

https://isitalive.dev

Authentication

Authentication is optional. Include an API key for higher rate limits:

# Add to any request
Authorization: Bearer sk_your_api_key

Endpoints

Check Project Health

GET /api/check/{provider}/{owner}/{repo}

Returns a health score (0–100), verdict, and signal breakdown for any GitHub repository.

ParameterTypeDescription
providerrequired string Source code hosting provider. Currently: github
ownerrequired string Repository owner or organization (e.g. vercel)
reporequired string Repository name (e.g. next.js)

Example Request

# Check a project's health
curl https://isitalive.dev/api/check/github/vercel/next.js

Example Response

{
  "project": "github/vercel/next.js",
  "provider": "github",
  "score": 92,
  "verdict": "healthy",
  "checkedAt": "2026-03-20T10:00:00Z",
  "cached": true,
  "signals": [
    {
      "name": "last_commit",
      "label": "Last Commit",
      "value": "2026-03-20T09:30:00Z",
      "score": 100,
      "weight": 0.25
    }
  ],
  "cache": {
    "status": "hit",
    "tier": "free",
    "ageSeconds": 3600,
    "nextRefreshSeconds": 82800
  }
}

Response Fields

projectFully qualified identifier: provider/owner/repo
scoreWeighted health score from 0 (unmaintained) to 100 (healthy)
verdictHuman-readable verdict based on score (see table below)
checkedAtISO 8601 timestamp of when data was fetched from the provider
cachedWhether this result was served from cache
signals[]Individual health signals with name, score (0–100), and weight
overrideReasonIf present, explains why the score was overridden (e.g. archived repo)
cache.nextRefreshSecondsSeconds until data refreshes — use this to schedule your next poll

Verdicts

ScoreVerdictMeaning
80–100🟢 healthyActively maintained with strong signals
60–79🟡 stableGenerally safe, some signals imperfect
40–59🟠 degradedCaution advised — red flags detected
20–39🔴 criticalHigh risk — severe neglect detected
0–19⚫ unmaintainedNo meaningful activity detected

Get SVG Badge

GET /api/badge/{provider}/{owner}/{repo}

Returns an SVG health badge for README embedding. Cached for 1 hour.

# Markdown
[![Is It Alive?](https://isitalive.dev/api/badge/github/YOUR_ORG/YOUR_REPO)](https://isitalive.dev/github/YOUR_ORG/YOUR_REPO)

# HTML
<a href="https://isitalive.dev/github/YOUR_ORG/YOUR_REPO">
  <img src="https://isitalive.dev/api/badge/github/YOUR_ORG/YOUR_REPO" alt="Is It Alive?">
</a>

Rate Limits

Rate limits are applied per IP address (unauthenticated) or per API key (authenticated).

TierRate LimitCache TTL
No key10 req/hr24 hours
Free key100 req/hr24 hours
Pro key1,000 req/hr1 hour
Enterprise10,000 req/hr15 min
Rate limit headers are included with every response:
X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Tier

Error Responses

StatusMeaning
400Invalid or unsupported provider
404Repository not found on GitHub
429Rate limit exceeded — check Retry-After header

Machine-Readable Specs

openapi.jsonOpenAPI 3.1 specification
llms.txtLLM-friendly API description
ai-plugin.jsonAI agent plugin manifest