Scoring
Score a property address
Scores a single property address and returns a rehab-aware valuation, a likely investor price and a deal viability verdict.
This is a Metered Call. The Credit cost is resolved by the Ledger inside the same transaction that records the Spend; it is never sent by the client. The Spend is committed before the scoring service is called, so a call that reaches the scoring service has already been paid for, and a call that fails before the Spend consumes nothing.
Send an Idempotency-Key to make a retry safe. Reusing a key with a different body is a conflict, not a replay.
Headers
AuthorizationThe Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.
Idempotency-KeyAn opaque string of your choosing that makes retrying this request safe. Optional — a request without one is never an error, and is charged per call. Reusing a key with the same body within 24 hours returns the stored result and is not charged again. Reusing a key with a different body is rejected as a conflict. The replay window is 24 hours, measured from the request that produced the stored result; after 24 hours the same key is a new request and is charged. If an identical request carrying the same key is still in flight, this one waits briefly for that result; if it does not arrive, the response is 409 with a Retry-After header and no Credits are consumed for it. Keys are scoped to your Account — one Account never replays another Account's result. POST /v1/validate ignores this header: it is not a Metered Call, so there is nothing to replay.
Score a property address › Request Body
addressThe full street address of the property to score.
conditionThe property's condition, which sets the repair budget the derived numbers are built on. Optional: omit it and the property is priced as though it needs no repairs, which is exactly what turn_key does. It is a request option rather than a second property, so sending it never changes what the call costs.
tear_down is accepted by this schema and refused by the endpoint with a 400, before any Credits are consumed. That is deliberate rather than an oversight: the scoring service has no land-value estimate, so there is no honest way to price a tear-down here. Analyse lot value separately.
Repair figures are a screening range, not a contractor bid.
Score a property address › Responses
The Scored Call succeeded. This was a Metered Call, so Credits were consumed from the Account's Balance, as resolved by the Ledger.
model_estimate_availableWhether the pricing model produced an estimate Lift Data was able to confirm for this property. The only member always present. When false, the model's estimate and its distribution are withheld from this response: they were checked against the comparable sales below and did not agree with them, and a confidently wrong valuation is worse than none. The Comp Band and the comparable sales are unaffected — they are derived from the sales themselves — and this call is charged as normal, because it still carries a valuation.
pricing_model_arv_estimateThe pricing model's after-repair-value estimate for this property, rounded to the nearest thousand dollars. Read from the model's own value distribution rather than from the comparable sales, so it does not move when comparable sales are added or removed — the Comp Band is the number that does. Absent when model_estimate_available is false.
The predicted value distribution for this property, as quantile level to predicted value. The full distribution is returned rather than a single number: where the scoring service exposes its uncertainty, Lift Data surfaces it rather than hiding it. Absent when model_estimate_available is false.
valuation_meanThe predicted value for this property as a single point estimate. Optional: the scoring service does not always produce one, and its absence does not make the distribution above any less complete. Absent when model_estimate_available is false.
effective_sample_sizeHow much comparable evidence supported the model's estimate. A low value means the distribution above rests on thin evidence and should be read with more caution. Absent when model_estimate_available is false, because it describes an estimate that was withheld.
The Comp Band: the value range implied by the comparable sales below, size-normalised to this property where their square footage allows it. This is the number derived from recorded sales rather than from a model. Absent when too few comparable sales carried a usable price to state a range honestly — a range built on one or two sales reads as high confidence over the thinnest possible evidence.
rehab_budgetThe repair budget the numbers below were built on, in whole dollars — the whole-project midpoint for the condition you submitted. Zero when you sent no condition, which is the same as sending turn_key. This is a screening range reduced to a single figure, not a contractor bid: small homes skew high per square foot, and the heavier brackets are the least reliable in the set.
rehab_adjusted_arvThe after-repair value this deal is priced against, in whole dollars: the Comp Band's middle value lifted toward its upper end in proportion to the repair budget, because a heavier renovation signals a higher-finish result. It equals the middle of the Comp Band when there is no repair signal and never exceeds the upper end, so the number stays anchored to sales that actually happened. It is derived from the comparable sales rather than from the model, so it moves when the comparable sales do. The thresholds that shape the lift are policy figures calibrated by judgment, not fitted parameters. Absent whenever the Comp Band is absent.
The Investor Price: the highest purchase price at which a cash flip buyer on standard financing still clears the target margin. It is the algebraic inverse of a flip pro forma rather than a price quantile, so a seller's suggested price and a buyer's underwriting agree by construction. The financing figures behind it — down payment, interest, points, closing costs, hold period and target margin — are policy figures calibrated by judgment and intended to be tuned; they are not fitted to any data set. Absent whenever the Comp Band is absent.
flip_viabilityHow this deal reads as a flip at the Investor Price above: good when the margin is healthy, warn when it is thin, alert when a flipper loses money at any price or no price clears the target margin. It describes the price in this response, not an asking price — this endpoint takes an address and a condition, and nothing else. The margin thresholds are policy figures calibrated by judgment, not fitted parameters. Absent whenever the Comp Band is absent.
The comparable sales the Comp Band was derived from, in the order the scoring service ranked them, as stored by the property data service. The property's own prior sale is removed before anything is computed. Absent when the scoring service returned none.
Check a request without spending
Checks that a request body would be accepted by POST /v1/predict, and returns a verdict.
This endpoint is free. It consumes no Credits, makes no Ledger call of any kind, and never calls the scoring service — so it keeps working at a zero Balance and during a Ledger outage. It requires a valid API Key and nothing else.
Any Idempotency-Key header sent to this endpoint is ignored. There is no Spend to make idempotent, so no claim is recorded and no key is stored.
A verdict of false is returned only for a body this endpoint can judge on its own — shape, required fields and the property cap. The scoring service remains the authority on whether a well-formed address can actually be scored.
Headers
AuthorizationThe Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.
Check a request without spending › Request Body
addressThe full street address of the property to score.
conditionThe property's condition, which sets the repair budget the derived numbers are built on. Optional: omit it and the property is priced as though it needs no repairs, which is exactly what turn_key does. It is a request option rather than a second property, so sending it never changes what the call costs.
tear_down is accepted by this schema and refused by the endpoint with a 400, before any Credits are consumed. That is deliberate rather than an oversight: the scoring service has no land-value estimate, so there is no honest way to price a tear-down here. Analyse lot value separately.
Repair figures are a screening range, not a contractor bid.
Check a request without spending › Responses
The request body was checked. No Credits were consumed.
validWhether this body would be accepted by POST /v1/predict. Always true on a 200 — a body that would be rejected returns the same 400 or 413 the Metered Call returns.