Skip to main content
The site generates the parameters, the response fields and the playground on every page here from the service’s own schemas. So those cannot drift from what the API answers. Investorlift writes the prose around them by hand. The site documents each object once. A Deal is the same object from /v1/deals, from a parcel’s history or from an investor’s own list. So the Deal object describes its fields once, and every endpoint that returns one links up to it. Start there when you read a response and want to know what a field means. Endpoint pages are short. Each endpoint page says what it returns, when to use it instead of a neighbour, and the few things that will surprise you. The guides give the detail.

The objects

Before your first call

Conventions in one paragraph

  • Every response is { data, meta }. A list adds page and sometimes summary.
  • Dates are YYYY-MM-DD.
  • Money is whole dollars. It is null, never 0, when the deed carries no price.
  • Every id has a prefix: deal_, prop_, inv_, agt_, wl_, wsr_ or len_.
  • The API follows an old inv_, agt_ or len_ id from an earlier registry run to the current record, with meta.resolved_from. For a retired id, the API answers 410 gone.
  • Coordinates are WGS84. Distances are miles.
  • The geometry you ask about is a point and a radius (lat, lng, radius_miles), a viewport (bbox=west,south,east,north) or a parcel (property_id). On the deal, investor, wholesale and short-term rental lists, it can also be a place: a ZIP list (zip) or a postal city (city). With a place, lat and lng beside it are the reference point only.
  • Lists take commas or repeated keys.
  • This host does not serve the fields that identify a natural person. They arrive null with contact_redacted: true. On the parcel routes (search, financing, history, listing history) and on a lender’s loan rows, the object leaves those keys out and carries no flag.
  • One route, parcel search, takes a POST body because its criteria nest. Every other route is a GET.
The playground on every endpoint page sends real requests to https://api.investorlift.com from your browser. Paste a key into its Authorization box. Get an API key takes two minutes. The playground runs under your plan’s limits like any other call.No official SDK exists yet. Every guide shows the request in curl, Node.js and Python. openapi-typescript or openapi-python-client generates a typed client from the OpenAPI document at https://api.investorlift.com/openapi.json. Official packages will follow.

Early access

The listing-agent routes and the Investorlift listing routes are in this reference from 2026-09-14. The lender routes are in it too. All of them are for Investorlift’s team and trusted partners while the developer tier is in beta:
  • The listing-agent routes: GET /v1/agents/search, GET /v1/agents/{id} and GET /v1/agents/{id}/listings.
  • The Investorlift listing routes: GET /v1/wholesale-listings, GET /v1/wholesale-listings/{id}, GET /v1/investors/{id}/wholesale-purchases, GET /v1/wholesalers/search, GET /v1/wholesalers/{id} and GET /v1/wholesalers/{id}/listings.
  • The lender routes: GET /v1/lenders/search, GET /v1/lenders, GET /v1/lenders/{id} and GET /v1/lenders/{id}/loans from API 0.14.0, GET /v1/lenders/{id}/borrowers from 0.16.0, and GET /v1/lenders/{id}/rankings and GET /v1/lenders/{id}/cells from 0.19.0.
These routes have no price and cost no credits. Investorlift will restrict them further before they open to every key, and will announce the change in the changelog first. Once the paid plans publish, Growth and the plans above it include the lender routes. From that day, the API refuses them below Growth. Investorlift will announce that change the same way. GET /v1/str-parcels is under By contract: Investorlift sells it per jurisdiction under an order form.

Partners and staff

Staff and contracted partners reach the internal host on the company network with a gm_ key. That host serves one route that api.investorlift.com does not sell. The route left this reference on 2026-09-11: GET /v1/deals/pins, every deal in a geometry as parallel arrays for a map. The operators’ openapi.json on that host describes it. Here, /v1/deals/cells with /v1/deals draws the same map.