API Changelog
February 2026
Breaking: Prospect endpoints restructured
The prospect endpoints have been completely restructured for consistency and simplicity.
Removed endpoints:
-
GET /v1/prospects/{name}(lookup by company name) — removed entirely -
GET /v1/prospects/by-id/{id}— URL changed (see below)
New endpoint URL:
-
GET /v1/prospects/:idreplaces both/v1/prospects/{name}and/v1/prospects/by-id/{id}
Migration:
-
If you used
GET /v1/prospects/{name}to get prospect details by company name: first callGET /v1/prospects?companyName=...to find matching prospects and their IDs, then callGET /v1/prospects/:idto get the full detail (including signal intelligence). -
If you used
GET /v1/prospects/by-id/{id}, change the URL toGET /v1/prospects/:id(same ID format, accepts bothprospect-{uuid}and plain{uuid}). -
Signal filters (
signalContent,evidenceKeywords,signalCategories,signalSourceTypes) are now available directly onGET /v1/prospectsas optional parameters.
Breaking: Prospect detail response shape changed
The prospect detail endpoint (GET /v1/prospects/:id) now returns a single prospect object instead of a prospects array.
Before:
{
"success": true,
"data": {
"prospects": [{ "prospectId": "...", ... }],
"totalCount": 1
}
}
After:
{
"success": true,
"data": {
"prospect": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"companyName": "Acme Corp",
"signalIntelligence": [...]
}
},
"timestamp": "2026-02-19T10:30:00.000Z"
}
Migration: Change response.data.prospects[0] to response.data.prospect.
Breaking: prospectId renamed to id in prospect responses
The prospectId field has been renamed to id. The value is now a plain UUID (without the prospect- prefix).
Affected endpoints:
-
GET /v1/prospects -
GET /v1/prospects/:id
Migration: Replace prospectId with id in your code. The GET /v1/prospects/:id endpoint accepts both plain UUID and prospect-{uuid} format.
Breaking: Removed legacy fields from prospect responses
The following fields have been removed from all prospect responses:
-
urgencyScore,maturityScore,intentScore,intentFrequency -
buyingJourneyPhase -
whyThisMattersNow,whatWeveSeenSoFar,momentumSnapshot -
averageUrgencyScore(from list response)
The companyId and buyingJourneyPhase query filters and urgencyScore sortBy option have also been removed. Default sort is now lastActivity.
Breaking: Removed fields from domains list response
-
contextfield removed from the response envelope -
descriptionfield removed from domain objects
New: Companies, Solutions, and Opportunities endpoints
Six new endpoints:
-
GET /v1/companies— list and filter companies -
GET /v1/companies/:id— company details with associated prospects -
GET /v1/solutions— list and filter solutions (detection patterns) -
GET /v1/solutions/:id— solution details -
GET /v1/opportunities— list and filter opportunities -
GET /v1/opportunities/:id— opportunity details with signal matches
New: Pagination in all list responses
All list endpoints now include a pagination object:
{
"data": {
"prospects": [...],
"totalCount": 150,
"pagination": {
"offset": 0,
"limit": 20,
"totalCount": 150,
"hasMore": true
}
}
}
New: opportunities in prospect responses
Prospect responses now include an opportunities array with open opportunities per solution (highest conviction score each).
Fix: GET /v1/domains now accepts query parameters
The domains list endpoint now accepts includeArchived, limit, and offset query parameters.
Fix: GET /v1/prospects/:id returns proper 404
Previously returned 500 for non-existent prospect IDs. Now correctly returns 404.