Activity
Development velocity, release cadence, and product health signals for investor due diligence.
GET /v1/apps/{bundleId}/activity — Development velocity and product health signals for a desktop app. The endpoint investors, analysts, and M&A teams use to answer: "Is this product actively being developed or in maintenance mode?"
Plan required: Team
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
bundleId | path | yes | App bundle ID (e.g., com.figma.Desktop) |
platform | string | no | macos (default), windows, linux |
Example request
curl "https://api.desktopinsights.com/v1/apps/com.figma.Desktop/activity" \ -H "Authorization: Bearer di_live_your_key_here"
Response
{
"data": {
"app": {
"name": "Figma",
"bundleId": "com.figma.Desktop",
"developer": "Figma, Inc.",
"developerWebsite": "figma.com",
"platform": "macos",
"currentVersion": "124.1.2",
"runtime": "electron",
"tags": ["design-tool", "collaboration"]
},
"releases": {
"total": 147,
"first": {
"version": "1.0.0",
"date": "2019-06-15T00:00:00Z"
},
"latest": {
"version": "124.1.2",
"date": "2026-03-10T00:00:00Z"
},
"daysSinceLastRelease": 5,
"cadence": {
"avgDaysBetweenReleases": 8.3,
"medianDaysBetweenReleases": 7,
"last90Days": 12,
"last180Days": 22,
"last365Days": 45,
"trend": "accelerating"
},
"recentReleases": [
{
"version": "124.1.2",
"date": "2026-03-10T00:00:00Z",
"depsAdded": 0,
"depsRemoved": 0,
"depsUpdated": 2,
"hasReleaseNotes": true,
"releaseNotesSummary": "Fixed canvas rendering on M3 Macs, updated 2 dependencies"
},
{
"version": "124.0.0",
"date": "2026-02-28T00:00:00Z",
"depsAdded": 3,
"depsRemoved": 1,
"depsUpdated": 8,
"hasReleaseNotes": true,
"releaseNotesSummary": "AI-powered auto layout, new plugin API, migrated to Electron 33"
}
]
},
"dependencyGrowth": {
"current": 42,
"sixMonthsAgo": 35,
"oneYearAgo": 28,
"trend": "growing",
"netAddedLast6Months": 7,
"netRemovedLast6Months": 0
},
"binarySizeTrend": {
"current": 289000000,
"sixMonthsAgo": 265000000,
"oneYearAgo": 241000000,
"trend": "growing",
"growthRate": "9% per 6 months",
"note": "Steady growth tracking dependency additions — not bloating disproportionately"
},
"localizationGrowth": {
"current": 14,
"sixMonthsAgo": 10,
"oneYearAgo": 6,
"trend": "expanding",
"recentAdditions": ["ko", "pl", "tr", "ru"]
},
"technologyEvolution": [
{
"date": "2026-02-28T00:00:00Z",
"event": "Upgraded Electron 28 → 33",
"category": "Runtime",
"significance": "major"
},
{
"date": "2025-09-15T00:00:00Z",
"event": "Added Sentry error tracking",
"category": "Error Tracking",
"significance": "notable"
}
],
"healthSignals": {
"releaseActivity": "high",
"dependencyFreshness": "good",
"sdkMaturity": "mature",
"releaseNoteTransparency": "high",
"overallScore": 88
},
"scores": {
"health": 88,
"securityPosture": 72,
"engineeringMaturity": 85,
"platformInvestment": 78
}
},
"meta": {
"requestId": "req_act123",
"creditsUsed": 1,
"creditsRemaining": 9995
}
}
Release cadence
The cadence object is the core investor signal:
| Field | Type | Description |
|---|---|---|
avgDaysBetweenReleases | number | Average gap between releases |
medianDaysBetweenReleases | number | Median gap (less sensitive to outliers) |
last90Days | integer | Release count in last 90 days |
last180Days | integer | Release count in last 180 days |
last365Days | integer | Release count in last 365 days |
trend | string | accelerating, stable, decelerating, or stalled |
Trend calculation
| Trend | Definition |
|---|---|
accelerating | Last-90-day avg gap < last-365-day avg gap by 20%+ |
stable | Within 20% either direction |
decelerating | Last-90-day avg gap > last-365-day avg gap by 20%+ |
stalled | No release in 90+ days |
Health signals
Opinionated rollup of development health:
| Signal | Values | Description |
|---|---|---|
releaseActivity | high, medium, low, stalled | Release frequency (weekly+, monthly, quarterly, 6+ months) |
dependencyFreshness | good, fair, stale, critical | How up-to-date dependencies are |
sdkMaturity | mature, moderate, minimal | Error tracking + analytics + monitoring adoption |
releaseNoteTransparency | high, medium, low, none | How often release notes are published |
overallScore | 0-100 | Composite development activity score |
Dependency and binary growth
Track how the app's complexity evolves:
dependencyGrowth— Growing dependency count = actively adding capabilities. Shrinking = consolidating or winding down.binarySizeTrend— Steady growth tracking dependencies = healthy. Sudden 2x jump = bundled a large framework. Used as an engineering discipline proxy.localizationGrowth— Language count over time. Going from 6 to 14 = international expansion. Stagnant at 1 for a Series C company = red flag for global TAM.
Example queries
# VC evaluating a Series B target GET /v1/apps/com.linear.linear/activity # → releaseActivity: "high", 47 releases/year, trend: "accelerating", score: 91 # PE firm monitoring portfolio company GET /v1/apps/com.evernote.Evernote/activity # → releaseActivity: "low", 4 releases/year, trend: "decelerating", score: 34 # M&A team comparing acquisition targets GET /v1/apps/com.notion.notion/activity GET /v1/apps/com.coda.coda/activity # → Compare scores, cadence, dependency growth side by side