Webhooks
Subscribe to real-time notifications when apps update, add SDKs, or change technologies.
POST /v1/webhooks — Subscribe to technology change events. Get notified when apps you care about update their dependencies, add new SDKs, or change versions.
Create a subscription
curl -X POST https://api.desktopinsights.com/v1/webhooks \
-H "Authorization: Bearer di_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"url": "https://yourapp.com/webhook/desktop-insights",
"events": ["app.updated", "technology.added", "technology.removed", "technology.version_changed"],
"filters": {
"apps": ["com.figma.Desktop", "com.tinyspeck.slackmacgap"],
"technologies": ["Electron", "Sentry"]
}
}'
Request body
| Field | Type | Required | Description |
|---|---|---|---|
url | string | yes | Your webhook endpoint URL (HTTPS required) |
events | string[] | yes | Event types to subscribe to |
filters | object | no | Narrow which apps and technologies trigger events |
filters.apps | string[] | no | Bundle IDs to monitor (omit for all tracked apps) |
filters.technologies | string[] | no | Technology names to monitor (omit for all) |
Event types
| Event | Triggered when |
|---|---|
app.updated | A new version of an app is detected |
technology.added | A technology is added to an app |
technology.removed | A technology is removed from an app |
technology.version_changed | A technology's version changes in an app |
Webhook payload
When an event occurs, we POST a JSON payload to your endpoint:
{
"event": "technology.version_changed",
"timestamp": "2026-03-15T12:00:00Z",
"app": {
"name": "Figma",
"bundleId": "com.figma.Desktop",
"version": "124.2.0"
},
"technology": {
"name": "Electron",
"previousVersion": "28.2.1",
"newVersion": "29.0.0",
"category": "Runtime"
},
"releaseNotes": {
"summary": "AI-powered auto layout, new plugin API, migrated to Electron 29",
"categories": ["feature", "architecture"],
"hasFullNotes": true
}
}
Payload fields
| Field | Type | Description |
|---|---|---|
event | string | Event type |
timestamp | string | When the event was detected (ISO 8601) |
app.name | string | App display name |
app.bundleId | string | App bundle identifier |
app.version | string | New app version |
technology.name | string | Technology name |
technology.previousVersion | string or null | Previous version (for version changes and removals) |
technology.newVersion | string or null | New version (for version changes and additions) |
technology.category | string | Technology category |
releaseNotes.summary | string or null | AI-generated summary of the release |
releaseNotes.hasFullNotes | boolean | Whether full notes are available via the History endpoint |
Delivery and retry
- Webhooks are delivered over HTTPS with a 10-second timeout
- Failed deliveries are retried with exponential backoff (1min, 5min, 30min, 2hr)
- After 5 consecutive failures, the subscription is paused and you're notified by email
- Your endpoint should return a
2xxstatus code to acknowledge receipt
Use cases
SDK vendor sales
Get alerted when a target app drops a competitor's SDK — the perfect moment for outreach:
{
"events": ["technology.removed"],
"filters": {
"technologies": ["Sentry", "Bugsnag", "Rollbar"]
}
}
Competitive intelligence
Monitor when competitors ship updates or adopt new technologies:
{
"events": ["app.updated", "technology.added"],
"filters": {
"apps": ["com.figma.Desktop", "sketch", "com.canva.CanvaDesktop"]
}
}
Security monitoring
Get notified when apps upgrade (or downgrade) critical framework versions:
{
"events": ["technology.version_changed"],
"filters": {
"technologies": ["Electron", "Chromium"]
}
}
Managing subscriptions
# List all subscriptions
GET /v1/webhooks
# Get a specific subscription
GET /v1/webhooks/{webhookId}
# Update a subscription
PATCH /v1/webhooks/{webhookId}
# Delete a subscription
DELETE /v1/webhooks/{webhookId}
# Test a subscription (sends a test event)
POST /v1/webhooks/{webhookId}/test