Skip to content

List the user's deal-flow listings

GET
/api/public/v1/deal-flow/listings/
curl --request GET \
--url https://app-api.landinsights.co/api/public/v1/deal-flow/listings/ \
--header 'Authorization: Bearer <token>'

Returns every listing on the authenticated user’s Deal Flow (disposition) board — the deals they are actively selling — with the property basics, the engine’s listing grade and pricing signals, and each deal’s financials and key dates. Scoped to the caller’s own listings.

The property fields (address, county, state, acreage, price, days_on_market, traction_score) are fetched from the live listing and are null for a few seconds after a deal is added, until that fetch finishes.

Cost: free.

Media type application/json
Array<object>

A single deal-flow (disposition) listing as shown on the user’s Deal Flow board: the property and listing basics, the engine’s grade and pricing signals, and the deal’s financials and key dates.

object
id
required

Stable identifier for the listing.

string format: uuid
address
required

Street address of the listed property. Null until the listing fetch completes.

string
nullable
county
required

County the property is in. Null until the listing fetch completes.

string
nullable
state
required

Two-letter US state code for the property.

string
nullable
acreage
required

Lot size in acres, per the listing.

number format: double
nullable
price
required

Current list price of the property, in US dollars.

number format: double
nullable
days_on_market
required

Number of days the listing has been on market.

integer
nullable
traction_score
required

Buyer-interest score from 0–100, derived from listing views and saves — higher means more traction. Null until the listing fetch completes; 0 until any views or saves have been recorded.

integer
nullable
listing_grade
required

Letter grade for the listing’s quality (e.g. A+, B-). Blank until the listing has been graded.

string
price_advantage
required

Price competitiveness on a 0–100 scale: the share of active listings in the same county priced higher per acre than this one. Higher means this listing is priced more competitively. Null until it has been computed.

integer
nullable
suggested_action
required

The engine’s recommended next move while the listing is in the listed stage: drop (cut the price — see suggested_action_price for the target), relist, or hold. Empty when there is no active recommendation (for example, once the deal moves past the listed stage).

string
suggested_action_price
required

Recommended new list price, in US dollars, when suggested_action is drop. Null otherwise.

string format: decimal
nullable /^-?\d{0,10}(?:\.\d{0,2})?$/
status
required

Stage on the Deal Flow board: one of listed, offer_received, offer_accepted, in_title, sold, on_hold, canceled; empty if no stage has been set.

string
deal_type
required

Deal structure: cash_close or double_close.

string
expected_profit
required

Estimated profit on the deal, in US dollars: estimated sell price minus total spend (purchase price plus agent fee, misc, and closing costs).

string format: decimal
/^-?\d{0,10}(?:\.\d{0,2})?$/
contract_expiration_date
required

Date the purchase contract expires. Most relevant for double closes; may be null.

string format: date
nullable
closing_date
required

Expected or actual closing date for the deal. May be null.

string format: date
nullable
Examples
Example OneActiveListing

One active listing

[
{
"id": "3f1a2b3c-4d5e-6f7a-8b9c-0d1e2f3a4b5c",
"address": "0 County Rd 21",
"county": "Costilla",
"state": "CO",
"acreage": 5,
"price": 12500,
"days_on_market": 47,
"traction_score": 38,
"listing_grade": "B+",
"price_advantage": 62,
"suggested_action": "drop",
"suggested_action_price": "11250.00",
"status": "listed",
"deal_type": "double_close",
"expected_profit": "4200.00",
"contract_expiration_date": "2026-09-15",
"closing_date": "2026-09-30"
}
]

Validation error.

Media type application/json
object
error
required
object
code
required

Stable machine-readable error code. One of: unauthorized, forbidden, subscription_required, tier_upgrade_required, usage_limit_exceeded, usage_backstop_reached, payment_required, validation_error, unprocessable, not_found, method_not_allowed, rate_limited, internal_error.

string
message
required

Human-readable description of the error.

string
request_id
required

Echoes the request’s X-Request-Id (or a server-issued id). Quote it in support requests.

string
details

Present on validation errors only: maps each rejected field to its list of messages.

object
key
additional properties
any
Example generated
{
"error": {
"code": "example",
"message": "example",
"request_id": "example",
"details": {}
}
}

Missing or invalid credentials.

Media type application/json
object
error
required
object
code
required

Stable machine-readable error code. One of: unauthorized, forbidden, subscription_required, tier_upgrade_required, usage_limit_exceeded, usage_backstop_reached, payment_required, validation_error, unprocessable, not_found, method_not_allowed, rate_limited, internal_error.

string
message
required

Human-readable description of the error.

string
request_id
required

Echoes the request’s X-Request-Id (or a server-issued id). Quote it in support requests.

string
details

Present on validation errors only: maps each rejected field to its list of messages.

object
key
additional properties
any
Example generated
{
"error": {
"code": "example",
"message": "example",
"request_id": "example",
"details": {}
}
}

A Pro subscription or higher API tier is required.

Media type application/json
object
error
required
object
code
required

Stable machine-readable error code. One of: unauthorized, forbidden, subscription_required, tier_upgrade_required, usage_limit_exceeded, usage_backstop_reached, payment_required, validation_error, unprocessable, not_found, method_not_allowed, rate_limited, internal_error.

string
message
required

Human-readable description of the error.

string
request_id
required

Echoes the request’s X-Request-Id (or a server-issued id). Quote it in support requests.

string
details

Present on validation errors only: maps each rejected field to its list of messages.

object
key
additional properties
any
Example generated
{
"error": {
"code": "example",
"message": "example",
"request_id": "example",
"details": {}
}
}

Authenticated but not permitted.

Media type application/json
object
error
required
object
code
required

Stable machine-readable error code. One of: unauthorized, forbidden, subscription_required, tier_upgrade_required, usage_limit_exceeded, usage_backstop_reached, payment_required, validation_error, unprocessable, not_found, method_not_allowed, rate_limited, internal_error.

string
message
required

Human-readable description of the error.

string
request_id
required

Echoes the request’s X-Request-Id (or a server-issued id). Quote it in support requests.

string
details

Present on validation errors only: maps each rejected field to its list of messages.

object
key
additional properties
any
Example generated
{
"error": {
"code": "example",
"message": "example",
"request_id": "example",
"details": {}
}
}

Resource not found.

Media type application/json
object
error
required
object
code
required

Stable machine-readable error code. One of: unauthorized, forbidden, subscription_required, tier_upgrade_required, usage_limit_exceeded, usage_backstop_reached, payment_required, validation_error, unprocessable, not_found, method_not_allowed, rate_limited, internal_error.

string
message
required

Human-readable description of the error.

string
request_id
required

Echoes the request’s X-Request-Id (or a server-issued id). Quote it in support requests.

string
details

Present on validation errors only: maps each rejected field to its list of messages.

object
key
additional properties
any
Example generated
{
"error": {
"code": "example",
"message": "example",
"request_id": "example",
"details": {}
}
}

Rate limit exceeded.

Media type application/json
object
error
required
object
code
required

Stable machine-readable error code. One of: unauthorized, forbidden, subscription_required, tier_upgrade_required, usage_limit_exceeded, usage_backstop_reached, payment_required, validation_error, unprocessable, not_found, method_not_allowed, rate_limited, internal_error.

string
message
required

Human-readable description of the error.

string
request_id
required

Echoes the request’s X-Request-Id (or a server-issued id). Quote it in support requests.

string
details

Present on validation errors only: maps each rejected field to its list of messages.

object
key
additional properties
any
Example generated
{
"error": {
"code": "example",
"message": "example",
"request_id": "example",
"details": {}
}
}

Internal error.

Media type application/json
object
error
required
object
code
required

Stable machine-readable error code. One of: unauthorized, forbidden, subscription_required, tier_upgrade_required, usage_limit_exceeded, usage_backstop_reached, payment_required, validation_error, unprocessable, not_found, method_not_allowed, rate_limited, internal_error.

string
message
required

Human-readable description of the error.

string
request_id
required

Echoes the request’s X-Request-Id (or a server-issued id). Quote it in support requests.

string
details

Present on validation errors only: maps each rejected field to its list of messages.

object
key
additional properties
any
Example generated
{
"error": {
"code": "example",
"message": "example",
"request_id": "example",
"details": {}
}
}