Deals API
The Deals API allows you to track win/loss deals and analyze competitive outcomes. Deals create DEAL and ARGUMENT nodes in the knowledge graph.
List Deals
List all deals for the current workspace. Optionally filter by competitor ID.
GET /api/deals?competitorId={competitorId}
Query Parameters
competitorId(string, optional) - Filter deals by competitor ID
Response
{
"deals": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"workspaceId": "workspace-id",
"prospectCompanyName": "Acme Corp",
"prospectIndustry": "Technology",
"outcome": "WON",
"competitorId": null,
"decisionDate": "2024-01-15",
"dealSize": "$100K",
"arguments": ["Strong ROI", "Better integration"],
"createdAt": "2024-01-01T00:00:00.000Z",
"createdByUserId": "user-id"
},
{
"id": "660e8400-e29b-41d4-a716-446655440001",
"workspaceId": "workspace-id",
"prospectCompanyName": "Beta Inc",
"prospectIndustry": "Healthcare",
"outcome": "LOST",
"competitorId": "competitor-id",
"decisionDate": "2024-01-20",
"dealSize": "$50K",
"arguments": ["Lower price", "Faster implementation"],
"createdAt": "2024-01-01T00:00:00.000Z",
"createdByUserId": "user-id"
}
]
}
Get Deal
Get a specific deal by ID.
GET /api/deals/{id}
Path Parameters
id(string, required) - Deal ID
Response
{
"deal": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"workspaceId": "workspace-id",
"prospectCompanyName": "Acme Corp",
"prospectIndustry": "Technology",
"outcome": "WON",
"competitorId": null,
"decisionDate": "2024-01-15",
"dealSize": "$100K",
"arguments": ["Strong ROI", "Better integration"],
"createdAt": "2024-01-01T00:00:00.000Z",
"createdByUserId": "user-id"
}
}
Create Deal
Create a new deal. Requires EDITOR role or higher. Creates DEAL and ARGUMENT nodes in the knowledge graph.
POST /api/deals
Request Body
{
"prospectCompanyName": "Acme Corp",
"prospectIndustry": "Technology",
"outcome": "WON",
"competitorId": null,
"decisionDate": "2024-01-15",
"dealSize": "$100K",
"arguments": ["Strong ROI", "Better integration"]
}
Required Fields
prospectCompanyName(string) - Name of the prospect companyoutcome(string) - Must be "WON" or "LOST"competitorId(string, required if outcome is "LOST") - Competitor ID when deal was lost
Optional Fields
prospectIndustry(string) - Industry of the prospectdecisionDate(string) - Date of decision (ISO date format)dealSize(string) - Size of the deal (e.g., "$100K", "$1M")arguments(array of strings) - Reasons for win/loss
Response
{
"deal": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"workspaceId": "workspace-id",
"prospectCompanyName": "Acme Corp",
"prospectIndustry": "Technology",
"outcome": "WON",
"competitorId": null,
"decisionDate": "2024-01-15",
"dealSize": "$100K",
"arguments": ["Strong ROI", "Better integration"],
"createdAt": "2024-01-01T00:00:00.000Z",
"createdByUserId": "user-id"
}
}
Update Deal
Update an existing deal. Requires EDITOR role or higher.
PATCH /api/deals/{id}
Path Parameters
id(string, required) - Deal ID
Request Body
All fields are optional. Only include fields you want to update:
{
"prospectCompanyName": "Updated Company Name",
"outcome": "LOST",
"competitorId": "competitor-id",
"decisionDate": "2024-01-20",
"dealSize": "$50K",
"arguments": ["Lower price"]
}
Response
{
"deal": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"workspaceId": "workspace-id",
"prospectCompanyName": "Updated Company Name",
"outcome": "LOST",
"competitorId": "competitor-id",
"decisionDate": "2024-01-20",
"dealSize": "$50K",
"arguments": ["Lower price"],
"createdAt": "2024-01-01T00:00:00.000Z",
"createdByUserId": "user-id"
}
}
Delete Deal
Delete a deal. Requires EDITOR role or higher.
DELETE /api/deals/{id}
Path Parameters
id(string, required) - Deal ID
Response
{
"success": true
}
Error Responses
400- Bad Request (missing required fields, invalid outcome, missing competitorId for LOST deals)401- Unauthorized (invalid or missing API key)403- Forbidden (insufficient permissions)404- Not Found (deal doesn't exist)
Knowledge Graph Integration
When a deal is created:
- A DEAL node is created in the knowledge graph
- ARGUMENT nodes are created for each argument/reason
- Relationships are established between the deal, prospect, and competitor (if applicable)
These nodes can be visualized in the knowledge graph and used for competitive analysis.