Skip to content

Compare two deals

POST
/api/compare/deals
curl --request POST \
--url https://example.com/api/compare/deals \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "deal_a_id": "example", "deal_b_id": "example", "force_refresh": false }'

Full multi-dimension comparison of two deals: key metrics, per-section quality scores, and document readiness.

Media type application/json
DealComparisonRequest

Request body for full deal comparison.

object
deal_a_id
required
Deal A Id
string
<= 200 characters
deal_b_id
required
Deal B Id
string
<= 200 characters
force_refresh
Force Refresh

Bypass cache and recompute

boolean

Successful Response

Media type application/json
DealComparisonResponseModel

Full comparison response.

object
deal_a_id
required
Deal A Id
string
deal_b_id
required
Deal B Id
string
deal_a_name
required
Deal A Name
string
deal_b_name
required
Deal B Name
string
deal_a_type
required
Deal A Type
string
deal_b_type
required
Deal B Type
string
metrics
required
Metrics
Array<object>
MetricComparisonResponse

One row of the metrics comparison table.

object
metric_name
required
Metric Name
string
label
required
Label
string
deal_a_value
Any of:
number
deal_b_value
Any of:
number
delta
Any of:
number
delta_pct
Any of:
number
unit
required
Unit
string
section_quality
required
Section Quality
Array<object>
SectionQualityComparisonResponse

Per-section quality comparison.

object
section_key
required
Section Key
string
label
required
Label
string
deal_a_score
Any of:
integer
deal_a_grade
Any of:
string
deal_b_score
Any of:
integer
deal_b_grade
Any of:
string
delta
Any of:
integer
readiness
required
ReadinessComparisonResponse

Document readiness comparison.

object
deal_a_score
required
Deal A Score
integer
deal_a_grade
required
Deal A Grade
string
deal_b_score
required
Deal B Score
integer
deal_b_grade
required
Deal B Grade
string
deal_a_sections_approved
required
Deal A Sections Approved
integer
deal_b_sections_approved
required
Deal B Sections Approved
integer
deal_a_missing
required
Deal A Missing
Array<string>
deal_b_missing
required
Deal B Missing
Array<string>
compared_at
required
Compared At
string
partial
required
Partial
boolean
Example generated
{
"deal_a_id": "example",
"deal_b_id": "example",
"deal_a_name": "example",
"deal_b_name": "example",
"deal_a_type": "example",
"deal_b_type": "example",
"metrics": [
{
"metric_name": "example",
"label": "example",
"deal_a_value": 1,
"deal_b_value": 1,
"delta": 1,
"delta_pct": 1,
"unit": "example"
}
],
"section_quality": [
{
"section_key": "example",
"label": "example",
"deal_a_score": 1,
"deal_a_grade": "example",
"deal_b_score": 1,
"deal_b_grade": "example",
"delta": 1
}
],
"readiness": {
"deal_a_score": 1,
"deal_a_grade": "example",
"deal_b_score": 1,
"deal_b_grade": "example",
"deal_a_sections_approved": 1,
"deal_b_sections_approved": 1,
"deal_a_missing": [
"example"
],
"deal_b_missing": [
"example"
]
},
"compared_at": "example",
"partial": true
}

Validation Error

Media type application/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
input
Input
ctx
Context
object
Example generated
{
"detail": [
{
"loc": [
"example"
],
"msg": "example",
"type": "example",
"input": "example",
"ctx": {}
}
]
}