HTTP API Setup
Step-by-step guide to connect Clay to the Desktop Insights API using HTTP API enrichment.
Connect Desktop Insights to Clay using Clay's HTTP API enrichment step. No native integration required — just configure the URL, auth header, and field mappings.
Using Sculptor
Clay's Sculptor AI can auto-configure the HTTP API enrichment for you. When adding an enrichment, select HTTP API and paste one of the links below depending on your use case.
Look up a specific app
Use the Lookup endpoint when you already have a column of app names and want to enrich each row with technology data.
- Tell Sculptor: "Look up desktop app technology data from Desktop Insights. The app name is in my App Name column."
- Paste this link:
https://desktopinsights.com/docs/api-reference/lookup
Build a prospecting list
Use the Search endpoint when you want to find apps by SDK usage, runtime, or platform — e.g., all Electron apps without error tracking.
- Tell Sculptor: "Search for desktop apps that use Sentry for error tracking using the Desktop Insights API."
- Paste this link:
https://desktopinsights.com/docs/api-reference/search
Sculptor will configure the method, URL, auth header, and response mappings automatically. Review and test on a single row before running on your full table.
If you prefer to configure manually, follow the steps below.
Prerequisites
- A Clay account
- A Desktop Insights API key (contact us for early access)
Step 1: Create your Clay table
Create a new table in Clay with a column containing desktop app names. For example:
| App Name |
|---|
| Slack |
| 1Password |
| Discord |
| Notion |
| Linear |
| Cursor |
Step 2: Add HTTP API enrichment
- Click + Add Enrichment on your table
- Select HTTP API from the enrichment list
- Configure the request:
Method: GET
URL:
https://desktopinsights.com/api/v1/lookup?app=
After typing the URL, click the + button in the URL input field to open the column picker. Select your App Name column — Clay will insert a blue pill/chip after app=. Do not type column references manually (e.g., {{App Name}} or /App Name) — Clay requires you to insert them via the UI.
To get results from a single platform, append &platform=macos or &platform=windows to the URL.
Headers:
| Header | Value |
|---|---|
Authorization | Bearer YOUR_API_KEY |
Step 3: Map response fields
After running the enrichment, map the JSON response to Clay columns using dot notation:
App metadata
| Response path | Suggested column name | Description |
|---|---|---|
data[0].app.name | App Name (Verified) | Canonical app name |
data[0].app.developer | Developer | Company or developer name (92% coverage) |
data[0].app.developerWebsite | Developer Website | Developer URL (useful for enrichment chains) |
data[0].app.runtime | Runtime | electron, native, qt, flutter, etc. |
data[0].app.currentVersion | Current Version | Latest detected version |
data[0].app.electronVersion | Electron Version | Electron version (if applicable) |
data[0].app.dependencyCount | Dependency Count | Total detected dependencies |
data[0].app.platform | Platform | macos or windows |
data[0].app.appSizeBytes | App Size (bytes) | Binary size |
data[0].app.architectures | Architectures | arm64, x86_64, or both |
data[0].app.signed | Signed | Whether the binary is code-signed |
data[0].app.notarized | Notarized | Apple notarization status (macOS) |
data[0].app.installerType | Installer Type | wix, nsis, inno, etc. (Windows) |
data[0].app.bundledLibraryCount | Bundled Libraries | Number of native libraries detected |
SDK summary (one field per category)
These are the most valuable fields for sales workflows. null means no SDK detected in that category.
| Response path | Suggested column name | Example values |
|---|---|---|
data[0].sdkSummary.errorTrackingSdk | Error Tracking | Sentry, Bugsnag, Crashpad, Dynatrace |
data[0].sdkSummary.analyticsSdk | Analytics | Firebase Analytics, Amplitude, PostHog, Mixpanel |
data[0].sdkSummary.featureFlagSdk | Feature Flags | LaunchDarkly, Unleash, Statsig |
data[0].sdkSummary.databaseSdk | Database | SQLite, electron-store, Realm, LevelDB |
data[0].sdkSummary.uiFramework | UI Framework | React, Vue, Angular, Qt, Svelte |
data[0].sdkSummary.stateManagement | State Management | Redux, MobX, Zustand, Jotai |
data[0].sdkSummary.paymentsSdk | Payments | Stripe |
data[0].sdkSummary.authSdk | Auth | Auth0, Passport.js, Firebase Auth |
data[0].sdkSummary.observabilitySdk | Observability | OpenTelemetry, Winston, electron-log |
data[0].sdkSummary.realtimeSdk | Realtime | Socket.IO, WebRTC |
data[0].sdkSummary.autoUpdateSdk | Auto-Update | electron-updater, Sparkle |
Technologies array
For detailed technology data with versions and confidence scores:
| Response path | Description |
|---|---|
data[0].technologies[0].name | Technology name |
data[0].technologies[0].version | Detected version |
data[0].technologies[0].category | Category (e.g., "Error Tracking", "UI Framework") |
data[0].technologies[0].confidence | Detection confidence (100 = package.json, 70 = binary) |
Step 4: Filter and platform
Filter by platform by adding &platform=macos or &platform=windows to the URL:
https://desktopinsights.com/api/v1/lookup?app=<App Name>&platform=macos
Use the same column picker method from Step 2 to insert the App Name column reference after app=.
If you omit platform, results from both platforms are returned.
Example: test with curl
Verify your setup works before running in Clay:
curl "https://desktopinsights.com/api/v1/lookup?app=Slack" \ -H "Authorization: Bearer YOUR_API_KEY"
Using Search for prospecting lists
The Search endpoint lets you build targeted lists directly. Instead of looking up individual apps, find all apps matching your criteria:
URL: GET https://desktopinsights.com/api/v1/search
Example: Electron apps without error tracking:
https://desktopinsights.com/api/v1/search?errorTrackingSdk=null&runtime=electron
Example: All apps using Sentry:
https://desktopinsights.com/api/v1/search?errorTrackingSdk=Sentry
Map the search response fields (name, developer, developerWebsite, runtime, sdkSummary.*) to Clay columns, then chain with Apollo or Hunter to find contacts.
See the full Search API docs for all available filters.
Troubleshooting
404 Not Found — The app name didn't match. Common names like "VS Code", "Zoom", and "Figma" are handled automatically. For other apps, try the exact name as it appears in the macOS Applications folder or Windows Start menu.
Multiple results — If an app exists on both macOS and Windows, both are returned. Use the platform parameter to filter.
Empty sdkSummary — Not all apps have detected SDKs. Native apps (Swift, .NET) have less dependency visibility than Electron apps. The runtime field tells you what kind of app it is.