curl --request GET \
--url https://api.investorlift.com/v1/coverage \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.investorlift.com/v1/coverage', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.investorlift.com/v1/coverage"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)Read which data is available where
Which data is available where. For every loaded market, one row per dataset with a status word and the as-of date. Each row carries the dated and stale flags and the error a call meets where the dataset is not served. The planned markets follow, as intent.
Ask about a place with lat and lng, county, zip or market. The answer names the markets that cover it and what each dataset gives it. A place nothing covers answers 200, never 422. Zero credits.
The matrix vocabulary, the place lookup and the planned rows.
curl --request GET \
--url https://api.investorlift.com/v1/coverage \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.investorlift.com/v1/coverage', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.investorlift.com/v1/coverage"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)Authorizations
API key from the developer console (starts with zpka_). Create one at https://developers.investorlift.com/get-a-key.
Query Parameters
With lng: the point to look up. The API decides the covering markets with the bounding-box-and-tolerance rule the data routes apply (meta.coverage[].bbox and point_tolerance_miles), so the two never disagree.
-90 <= x <= 90With lat: the point's longitude.
-180 <= x <= 180A county to look up: a 5-digit FIPS ("04021") or a name ("Pinal", "Pinal County", any case). The API matches it against the counties of the loaded markets and the states of the public ZIP-to-county crosswalk. Not with lat, lng, zip or market.
1 - 64A ZIP to look up. The API resolves it to every county it touches through the public ZIP-to-county crosswalk, largest land share first, then decides at county grain. A ZIP-universe market covers only its own ZIP codes. Not with lat, lng, county or market.
^\d{5}$A market code to look up: its row alone. An unknown code answers place.status outside with markets [], never 400. Not with lat, lng, county or zip.
1 - 16Response
The coverage matrix, the place lookup and the planned markets.
The coverage matrix, the place lookup and the planned markets.
Which data is available where: the coverage matrix of every loaded market, the place lookup when you asked one, and the planned markets.
Show child attributes
Show child attributes
Response metadata: when the API produced it, which markets it covers, and how fresh they are.
Show child attributes
Show child attributes
Was this page helpful?