Build

Deal Financials

Access and update deal financial metrics in the Lev API.

Updated June 2026
GET/api/external/v2/deals/{deal_id}/financials
POST/api/external/v2/deals
PATCH/api/external/v2/deals/{deal_id}

Get Financials

GET/api/external/v2/deals/{deal_id}/financials

Get financial details for a deal

Path parameters
deal_idintegerrequired
The deal ID

Response (200):

{
  "request_id": "...",
  "timestamp": "2026-03-20T15:30:45Z",
  "data": {
    "id": 201,
    "deal_id": 101,
    "purchase_price": 6500000.0,
    "asking_price": null,
    "estimated_value": 7000000.0,
    "in_place_noi": 450000.0,
    "stabilized_noi": 500000.0,
    "stabilized_value": 7500000.0,
    "stabilized_occupancy": 0.95,
    "going_in_cap_rate": 0.069,
    "going_in_cap_rate_as_of_date": null,
    "capex": 200000.0,
    "historical_capex": 150000.0,
    "land_cost": null,
    "total_cost": 6700000.0,
    "total_cost_basis": 6800000.0,
    "cost_basis_to_date": 6500000.0,
    "imputed_land_value": null,
    "existing_debt": 4000000.0,
    "estimated_cost_basis_if_refinance": null,
    "exchange_amount": null,
    "exchange_required_closing_date": null,
    "outstanding_loan_amount_at_closing": null,
    "investment_sales_brokerage_fee": null,
    "debt_placement_brokerage_fee": 50000.0,
    "environmental_cost": null,
    "appraisal_cost": 5000.0,
    "survey_cost": null,
    "snda_and_estoppel_cost": null,
    "estimated_borrower_counsel_cost": null,
    "estimated_lender_counsel_cost": null,
    "other_closing_costs": null,
    "date_of_purchase_if_refinance": null,
    "construction_start_date": null,
    "construction_completion_date": null,
    "debt_maturity_date": null,
    "cash_out": false,
    "recent_phase_available": null,
    "recent_appraisal_available": true,
    "survey_available": null,
    "borrower_counsel_engaged": false,
    "updated_at": "2026-03-10T14:30:00Z"
  }
}
401unauthorized
Authentication requiredMissing or invalid Authorization header
404not_found
Deal not foundThe deal_id doesn't exist or isn't accessible to the authenticated user

Write Financials

Write canonical deal-level financial fields through POST /api/external/v2/deals and PATCH /api/external/v2/deals/{deal_id}. Use the nested deal_financials object.

{
  "deal_financials": {
    "purchase_price": 6500000,
    "estimated_value": 7000000,
    "total_cost": 6700000,
    "total_cost_basis": 6800000,
    "land_cost": null
  }
}

Writable fields:

  • purchase_price (number|null): Purchase price
  • estimated_value (number|null): Estimated value
  • total_cost (number|null): Total cost
  • total_cost_basis (number|null): Total cost basis
  • land_cost (number|null): Land cost

Create and update use the same nested shape. Send at least one supported financial field. Empty objects and unknown fields are rejected. On update, omitted fields are unchanged and explicit null clears an existing value. A null-only deal_financials object is valid only when it clears existing values. If the deal does not already have a financials record, PATCH /api/external/v2/deals/{deal_id} creates one only when at least one supplied financial field has a non-null value.

There is no standalone create or delete endpoint for deal financials. Creating a deal can create the financials record. Deleting the deal archives the deal itself and removes access to its associated financials.

Financials Object

The GET endpoint returns the full DealFinancialsDetailResponse schema. The embedded financials returned via ?include=financials on the deals endpoint uses a smaller subset of fields (DealFinancialsResponse). The write surface is narrower than the read schema; see Write Financials.

FieldTypeDescription
idintegerFinancials record identifier
deal_idinteger|nullAssociated deal ID
purchase_pricenumber|nullPurchase price
asking_pricenumber|nullAsking price
estimated_valuenumber|nullEstimated value
in_place_noinumber|nullIn-place Net Operating Income
stabilized_noinumber|nullStabilized NOI
stabilized_valuenumber|nullStabilized value
stabilized_occupancynumber|nullStabilized occupancy rate
going_in_cap_ratenumber|nullGoing-in cap rate
going_in_cap_rate_as_of_datestring|nullAs-of date for going-in cap rate
capexnumber|nullCapital expenditures
historical_capexnumber|nullHistorical capital expenditures
land_costnumber|nullLand cost
total_costnumber|nullTotal cost
total_cost_basisnumber|nullTotal cost basis
cost_basis_to_datenumber|nullCost basis to date
imputed_land_valuenumber|nullImputed land value
existing_debtnumber|nullExisting debt amount
estimated_cost_basis_if_refinancenumber|nullEstimated cost basis if refinance
exchange_amountnumber|null1031 exchange amount
exchange_required_closing_datestring|nullExchange required closing date
outstanding_loan_amount_at_closingnumber|nullOutstanding loan amount at closing
investment_sales_brokerage_feenumber|nullInvestment sales brokerage fee
debt_placement_brokerage_feenumber|nullDebt placement brokerage fee
environmental_costnumber|nullEnvironmental report cost
appraisal_costnumber|nullAppraisal cost
survey_costnumber|nullSurvey cost
snda_and_estoppel_costnumber|nullSNDA and estoppel cost
estimated_borrower_counsel_costnumber|nullEstimated borrower counsel cost
estimated_lender_counsel_costnumber|nullEstimated lender counsel cost
other_closing_costsinteger|nullOther closing costs
date_of_purchase_if_refinancestring|nullDate of purchase (if refinance)
construction_start_datestring|nullConstruction start date
construction_completion_datestring|nullConstruction completion date
debt_maturity_datestring|nullDebt maturity date
cash_outboolean|nullWhether this is a cash-out transaction
recent_phase_availableboolean|nullWhether a recent phase report is available
recent_appraisal_availableboolean|nullWhether a recent appraisal is available
survey_availableboolean|nullWhether a survey is available
borrower_counsel_engagedboolean|nullWhether borrower counsel has been engaged
updated_atstring|nullLast update timestamp
More in this section