---
title: "Itemize commercial closing costs for a New York or Florida transaction — lender, title, government (mortgage recordin..."
method: POST
path: "/api/v1/tools/estimate_closing_costs"
tags: ["Calculators"]
---

# Itemize commercial closing costs for a New York or Florida transaction — lender, title, government (mortgage recordin...

`POST /api/v1/tools/estimate_closing_costs`

## Request

- Base URL: `https://relendi.com`
- URL: `https://relendi.com/api/v1/tools/estimate_closing_costs`
- Auth: none declared

Itemize commercial closing costs for a New York or Florida transaction — lender, title, government (mortgage recording tax, transfer taxes) prepaid and third-party lines. Returns every line item plus totals. For New York you MUST say whether the property is in New York City: the city's recording and transfer taxes are several times the upstate rates and one of them does not exist outside the five boroughs.

## Request body

- object
  - `loanAmount` number, required
  - `propertyValue` number, required
  - `state` 'NY' | 'FL', required
  - `isNYC` boolean: REQUIRED when state is NY. True = five boroughs (NYC recording tax + Real Property Transfer Tax). False = anywhere else in New York State.
  - `isRefinance` boolean, required
  - `existingMortgageBalance` number
  - `cemaEnabled` boolean: NY refinance only. CEMA assigns rather than discharges the existing mortgage so recording tax applies to new money only. Defaults to FALSE because it requires the existing lender's cooperation, which is not guaranteed — assuming it understates costs.
  - `interestRate` number
  - `brokerFeePercent` number
  - `originationFeePercent` number
  - `annualPropertyTax` number
  - `annualInsurance` number

## Response `200`

The computed result.

- object
  - `tool` 'estimate_closing_costs', required
  - `deterministic` boolean
  - `result` object, required: Result fields: loanAmount, propertyValue, state, isRefinance, existingMortgageBalance, isCemaEligible, lineItems.category, lineItems.name, lineItems.amount, lineItems.isEstimate, lineItems.notes, totalClosingCosts, netProceeds, cashToClose, cemaSavings.fullMRT, cemaSavings.cemaMRT, cemaSavings.savings.

## Other responses

- `400`: Error. Possible codes: invalid_input.
- `404`: Error. Possible codes: unknown_tool, not_found.
- `405`: Error. Possible codes: method_not_allowed.
- `429`: Error. Possible codes: rate_limited, quota_exhausted.
- `500`: Error. Possible codes: tool_error.
- `503`: Error. Possible codes: flag_off.

---

[API](https://skmtc.dev/relendi/apis/relendi-public-api.md) · [All operations](https://skmtc.dev/relendi/apis/relendi-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/relendi/apis/relendi-public-api/revisions/7e4b30838121?raw)
