Making requests
Base URL
Section titled “Base URL”All REST requests go to:
https://app-api.landinsights.co/api/public/v1/The v1 in the path is the API version. Only additive changes are made
within v1 — new endpoints, new optional parameters, and new response fields —
so a working integration keeps working.
JSON format
Section titled “JSON format”- Requests and responses are JSON. Send
Content-Type: application/jsonon requests that have a body (thefilter_properties,save_market,skip_trace_owner, andcreate_comp_reportendpoints;skip_trace_property_ownertakes no body). - For
GETendpoints, filters go in the query string. Repeat a parameter to pass multiple values where an endpoint supports it — for example?status=SOLD&status=PENDING.
Pagination
Section titled “Pagination”List endpoints — comps, property search, and parcel filter — return results one page at a time:
{ "count": 1287, "next": "https://app-api.landinsights.co/api/public/v1/comps/?fips=06037&page=2", "previous": null, "results": [ /* ... */ ]}Page through results with the page (starting at 1) and page_size query
parameters. The page_size cap is per endpoint — search_properties allows up
to 100, list_comps up to 500, and filter_properties up to
9999. Check the operation’s reference page for its exact limit. Follow the
link in next until it’s null.
Response headers
Section titled “Response headers”Every response includes these headers:
| Header | What it tells you |
|---|---|
X-Request-Id | A unique ID for the request. Quote it if you contact support. |
X-Tokens-Used | Exactly what this request cost. 0 on empty results and on errors. |
X-RateLimit-Limit | Your request budget (the most you can send in a burst). |
X-RateLimit-Remaining | How much of that budget is left right now. |
X-RateLimit-Reset | When the budget refills. |
The rate-limit headers are explained in Rate limits.