Quickstart
The Investorlift Data Services API scores a property address and returns a rehab-aware valuation and the maximum allowable offer — the most a flip buyer on standard financing can pay and still clear the target margin. One request is enough to see it work.
Before you start
- The API is prepaid. Your Account holds a Balance of Credits, and one Credit is spent per Scored Call at every Tier — a Balance of N means N calls. There is nothing recurring: you buy Credits, you spend Credits.
- You need an API Key. Issue one from the Portal. It is shown to you in full at creation, and it stays viewable: the Portal's API Keys page shows the masked prefix at rest, and Reveal key shows the full value again at any time.
Score a property
Replace YOUR_API_KEY with your own API Key. Everything else runs as written.
Trying it in the API playground? This API accepts JSON bodies only. Keep the playground's body in its plain-text mode with valid JSON in it, and make sure a
Content-Type: application/jsonheader is active before you send — any other body mode, or a missing content type, is answered with a 400. Picking the request example from the playground's Examples menu sets the body and the header in one step.
Code
The Idempotency-Key header is there so a retry can never charge you twice: send the
same request with the same key and you get the stored result back instead of a second
Spend. Any value unique to the request works — a UUID is the usual choice. The header
is optional, and a request without one is never an error; it is simply charged per
call. The full contract is on the Idempotency page.
A success is an HTTP 200 whose body carries the valuation members — comp_band,
max_allowable_offer, cost_stack and the rest. What each member means, and what this
valuation is and is not, is on Reading a score. The complete request
and response schema is in the API reference.
Already integrated?
POST /v1/predictis the one and only scoring path — there is no second path to move to and no sunset date on this one. How this API versions, and what happens when a breaking change does arrive, is on the Versioning page.
Check a key or an address shape for free
POST /v1/validate is free: it consumes no Credits and keeps working at a zero Balance.
It requires only a valid API Key. It also ignores any Idempotency-Key header —
there is no Spend to protect, so there is nothing for the key to do.
With an API Key it makes no Ledger call at all, so it answers even while the Ledger is
down. A connected app — one that signed you in instead of holding a key — makes one
Ledger read here to confirm the connection is still approved, so while that read is
failing it answers 503 call-not-started. Nothing is
charged either way.
Code
When something fails
Every error this API returns is an RFC 9457 Problem Detail with a stable type URI
that resolves to its own page in the error reference — the link inside the
error body you are holding is the documentation for it. Each page states what the
error costs and whether it is worth retrying. No automatic retry happens on our side,
ever: 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.