Lift Data API
Rehab-aware valuation and deal viability for a single property address.
The Lift Data API scores a property address and returns a rehab-aware valuation, a likely investor price and a deal viability verdict.
Authentication. Every request carries an API Key as Authorization: Bearer <API Key>. Issue and revoke API Keys from the Portal.
Metering. POST /v1/predict is a Metered Call: it consumes Credits from the Account's Balance. The Credit cost of a call is resolved by the Ledger at the moment of the Spend and is published in the Portal — it is never sent by the client and never appears in this document. POST /v1/validate is free: it consumes no Credits and makes no Ledger call at all, so it keeps working at a zero Balance.
Idempotency. Send an Idempotency-Key header on POST /v1/predict to make a retry safe. The header is optional; a request without one is never an error and is charged per call. Keys are scoped to the Account that sent them — one Account can never replay another Account's result.
No automatic retry. This API never retries a request on your behalf. A Metered Call can consume a Credit before it fails, so retry is yours to control and your Idempotency-Key is what makes it safe.
Errors. Every error response is an RFC 9457 Problem Detail sent as application/problem+json. The type member is a stable URI you can branch on; it never changes without a documented deprecation. Every response, success or failure, carries a trace-id header, and every Problem Detail repeats it as trace_id. That Trace ID is the only handle support needs to find your call.
Reading a 503. The two 503 types mean different things and must not be treated alike. ledger-unreachable states that the call was never started and no Credits were consumed. spend-indeterminate makes no claim about what was consumed, because the outcome is not known; any Credit recorded for that call is returned to the Account as a Refund.