Quality scores for 220,000+ AI repos

curl "https://pt-edge.onrender.com/api/v1/quality?domain=agents&subcategory=autonomous-research-labs&limit=1"

Open to everyone — 100 requests/day, no key needed. Get a free key for 1,000/day.

Rate Limits

Tier Daily Limit How to get it
Anonymous 100/day Just call the API
Free key 1,000/day POST /api/v1/keys
Pro 10,000/day POST /api/v1/keys with email

All tiers are free. All tiers get the same data. Resets at midnight UTC.

Get a Key

# 1,000 requests/day — instant, no email
curl -X POST https://pt-edge.onrender.com/api/v1/keys

# 10,000 requests/day — just add your email
curl -X POST https://pt-edge.onrender.com/api/v1/keys \
  -H "Content-Type: application/json" \
  -d '{"email": "you@company.com"}'

Then pass your key as a Bearer token: Authorization: Bearer pte_...

Endpoints

GET /api/v1/quality

Quality scores for AI projects across all 18 domains. The core endpoint.

ParamTypeDescription
domainquery, requiredmcp, agents, ml-frameworks, rag, embeddings, llm-tools, nlp, transformers, generative-ai, computer-vision, ai-coding, voice-ai, diffusion, vector-db, prompt-engineering, data-engineering, mlops, perception
subcategoryquery, optionalFilter by category within the domain
quality_tierquery, optionalverified, established, emerging, experimental
min_scorequery, optionalMinimum quality score (0–100)
limitquery, optionalResults per page (1–500, default 50)
curl "https://pt-edge.onrender.com/api/v1/quality?domain=ml-frameworks&quality_tier=verified&limit=5"
GET /api/v1/trending

Star velocity leaderboard — projects gaining the most GitHub stars.

ParamTypeDescription
windowquery, optional7d or 30d (default 7d)
categoryquery, optionalFilter by category
limitquery, optional1–50 (default 20)
curl "https://pt-edge.onrender.com/api/v1/trending?window=7d&limit=5"
GET /api/v1/projects/{slug}

Full project detail: GitHub metrics, downloads, tier, lifecycle stage, momentum, hype ratio, releases.

curl "https://pt-edge.onrender.com/api/v1/projects/langchain"
GET /api/v1/whats-new

Combined digest: recent releases, trending projects, and top Hacker News posts.

curl "https://pt-edge.onrender.com/api/v1/whats-new?days=7"
GET /api/v1/briefings

Narrative landscape analyses, optionally filtered by domain.

curl "https://pt-edge.onrender.com/api/v1/briefings?domain=agents"

More Endpoints

GET/api/v1/projectsSearch by name, category, domain
GET/api/v1/projects/bulkBatch lookup (up to 20)
GET/api/v1/quality/{domain}/{repo}Single repo quality lookup
GET/api/v1/velocityCommit activity leaderboard
GET/api/v1/contributors/trendingTop contributors by stack layer
GET/api/v1/transitionsLifecycle stage changes
GET/api/v1/labs/{slug}Lab detail with projects and releases
GET/api/v1/hnAI-related Hacker News posts
GET/api/v1/briefings/{slug}Full briefing detail
GET/api/v1/dependencies/trendingPyPI/npm trending packages
GET/api/v1/papersResearch papers
GET/api/v1/methodologyScoring methodology
POST/api/v1/keysCreate API key (no auth required)

Response Format

Every response returns a JSON envelope:

{
  "data": { ... },
  "meta": {
    "timestamp": "2026-04-03T12:00:00+00:00",
    "count": 20,
    "query": { "domain": "agents", "limit": 20 }
  }
}

Every response includes rate limit headers:

X-RateLimit-Limit: 100
X-RateLimit-Remaining: 99
X-RateLimit-Reset: 2026-04-04T00:00:00+00:00

Errors return structured JSON:

// 429 Rate limit
{ "detail": { "error": { "code": "rate_limit_exceeded", "message": "..." } } }

// 422 Invalid parameter
{ "detail": { "error": { "code": "invalid_domain", "message": "..." } } }

OpenAPI spec · AI plugin manifest · Atom feed