API Fundamentals
This guide will give you everything you need to start using the InvestorBase API.
Overview
The InvestorBase API provides programmatic access to our comprehensive real estate data and investor matching capabilities. It enables developers to integrate powerful market intelligence, property valuations, and buyer discovery features directly into their applications.
Whether you are building a CRM for real estate professional, a property analysis tool, or a lead generation platform, our API gives you the data you need to serve your users.
Base URL: https://api.investorbase.com/functions/v1/
Important: Always use HTTPS when connecting to the InvestorBase API. Requests made over HTTP will be rejected.
Authentication
Authentication is required for all API requests. You must include your unique API key and a user identifier in the HTTP headers of every request.
| Header | Description |
|---|---|
x-api-key | Required. Your unique API key. This key identifies your application and authorizes your access to the API. |
x-user-id | Required. A unique string identifying the end-user of your application (e.g., "user_123", "acme_corp"). This is used for logging, rate limiting, and usage tracking per user. |
Content-Type | Required. Must be set to application/json. |
Security Notice: Keep your API key secure. Never expose it in client-side code (browsers, mobile apps) or share it publicly. If you believe your key has been compromised, contact us immediately.
Rate Limiting
The API enforces two layers of rate limiting to ensure fair usage and protect service quality.
Per-Minute Rate Limit
A global per-minute limit applies to your entire API key across all endpoints and all users. Every request counts toward this limit regardless of whether it succeeds or fails.
Your per-minute limit is visible in the rate_limit_per_minute field returned by the GET /api-credentials endpoint.
Monthly Usage Limits
Each user under your API key has a monthly request allowance per endpoint, determined by the plans you assign to them via Subscription Management. Key details:
- Per-endpoint: Each endpoint (Autocomplete, Retail Comps, Analytics Search, Analytics Summary, Buyer Search, Investor Comps, Linked Deals) has its own independent monthly limit.
- Stacking: If a user has multiple active subscriptions, their limits are added together.
- Successful requests only: Only requests that return HTTP 200 count toward the monthly limit. Failed requests (4xx, 5xx) do not consume quota.
- Retail Comps & Linked Deals exception: For the Retail Comps and Linked Deals endpoints, only requests that return at least one result count toward the limit. Searches that return zero results are not counted.
- Analytics Search & Analytics Summary: These two endpoints share the same
analytics_search_limitvalue from your plan, but their usage is counted independently. For example, if your plan has ananalytics_search_limitof 500, each user gets 500 Analytics Search requests and 500 Analytics Summary requests per month.
Rate Limit Response Headers
All successful responses from the core endpoints include headers to help you track your usage:
| Header | Description |
|---|---|
X-RateLimit-Limit | Your per-minute request limit. |
X-RateLimit-Remaining | Requests remaining in the current one-minute window. |
X-Monthly-Limit | The user's monthly request limit for this endpoint. |
X-Monthly-Remaining | Requests remaining in the current monthly billing period for this endpoint. |
Rate Limit Errors
When a rate limit is exceeded, the API returns the appropriate HTTP status code:
| Status Code | Meaning |
|---|---|
429 Too Many Requests | Per-minute rate limit exceeded, or the user's monthly limit for this endpoint has been reached. |
403 Forbidden | The user has no active subscription that covers this endpoint, or the endpoint is not authorized for your API key. |
Example 429 Response:
{
"error": "Rate limit exceeded"
}{
"error": "Monthly request limit exceeded"
}Tip: Use the X-RateLimit-Remaining and X-Monthly-Remaining response headers to implement client-side throttling before you hit the limit.
API Endpoints
1. Autocomplete
The Autocomplete endpoint is designed to improve address entry and validation. It takes a partial address string and returns a list of matching full addresses along with their geographical coordinates (latitude and longitude).
Use Case: Use this endpoint to implement a "type-ahead" address search bar in your application, ensuring you capture accurate address data before initiating other searches.
Endpoint: POST /autocomplete
Request Body Parameters:
search_string(string, required): The partial address or location string to search for. Must be at least 3 characters long.
Example Request:
{
"search_string": "123 Main"
}Example Response:
Returns an array of matching location objects.
[
{
"address": "123 Main St, Charleston, SC 29407",
"latitude": 33.67,
"longitude": -81.76
}
]2. Retail Comps
The Retail Comps endpoint provides comparable sales data for a specific subject property. It returns details about the subject property itself, a list of comparable recently sold properties ("comps"), and an automated valuation estimate.
Use Case: Essential for determining the After Repair Value (ARV) of a property. Use this to show your users what similar properties in the immediate vicinity are selling for.
Endpoint: POST /retail-comps
Request Body Parameters:
address(string, required): The full address of the subject property.max_radius_miles(number, optional): The maximum distance to search for comps.max_days_back(number, optional): How many days back to search for sales history (e.g., 90, 180, 365).bedrooms_min/bedrooms_max(number, optional): Filter comps by bedroom count.bathrooms_min/bathrooms_max(number, optional): Filter comps by bathroom count.living_square_feet_min/living_square_feet_max(number, optional): Filter by square footage.
Example Request:
{
"address": "6806 19th Rd N, Arlington, VA 22205",
"max_radius_miles": 2,
"max_days_back": 90,
"bedrooms_min": 2,
"bathrooms_min": 1
}Example Response:
The response includes the subject property details adn an array of comps.
{
"subject": {
"address": "6806 19th Rd N, Arlington, VA 22205",
"city": "Arlington",
"state": "VA",
"zip": "22205",
"bedrooms": 3,
"bathrooms": 2,
"year_built": 1950,
"living_square_feet": 1500,
"lot_square_feet": 5000,
"property_type": "Single Family Residence",
"last_sale_date": "2020-01-15",
"last_sale_price": 500000,
"latitude": 38.88,
"longitude": -77.14,
"owner_names": [
"John Owner",
"Jane Owner"
]
},
"comps": [
{
"address": "6810 19th Rd N, Arlington, VA 22205",
"city": "Arlington",
"state": "VA",
"zip": "22205",
"distance": 0.05,
"last_sale_amount": 510000,
"last_sale_date": "2023-05-20",
"bedrooms": 3,
"bathrooms": 2,
"year_built": 1952,
"living_square_feet": 1480,
"lot_square_feet": 4900,
"property_type": "Single Family Residence",
"latitude": 38.881,
"longitude": -77.141
}
]
}3. Analytics Search
The Analytics Search endpoint allows you to discover investor activity in a specific area. It returns data about recent flip and rental transactions, distinguishing between "Flippers" and "Landlords".
Use Case: Use this endpoint to identify (investor) buyer activity in a given vicinity for lead underwriting and market insights.
Data Obfuscation: To preserve the intended use case of this endpoint—area-level market analytics rather than individual property identification—two obfuscation measures are applied to every result. The address field omits the house number (e.g., "Main St, Charleston, SC 29407" instead of "123 Main St, Charleston, SC 29407"), and the latitude/longitude coordinates include a small amount of random jitter (up to a few hundred feet). These values are suitable for mapping investor activity density and understanding neighborhood-level trends, but should not be used to pinpoint exact properties. If you need precise property-level data with full addresses, use the Buyer Search endpoint instead.
Endpoint: POST /analytics-search
Request Body Parameters:
latitude(number, required): The latitude of the search center.longitude(number, required): The longitude of the search center.property_types(array of strings, optional): Filter by property type. Allowed values:['SFR', 'MFR', 'CONDO', 'MOBILE', 'LAND', 'OTHER']. Defaults to['SFR'].flipper_weight(number, optional): Controls the ratio of flippers to landlords in the results. Accepts a value between0and1. A value of1returns only flippers,0returns only landlords, and0.5(the default) returns an even split.
Example Request:
{
"latitude": 34.000,
"longitude": -81.000,
"property_types": ["SFR"],
"flipper_weight": 0.7
}Example Response:
Returns a list of transaction objects.
[
{
"buyer_type": "flipper",
"address": "Investor Way, Columbia, SC 29201",
"bedrooms": 3,
"bathrooms": 2,
"livingsquarefeet": 1500,
"lotsquarefeet": 6000,
"propertytype": "Single Family Residence",
"latitude": 34.012,
"longitude": -81.008,
"flip_sale_transaction_date": "2023-06-01",
"flip_sale_transaction_price": 250000,
"flip_purchase_transaction_date": "2022-12-01",
"flip_purchase_transaction_price": 150000,
"flip_purchase_method": "Cash Purchase",
"miles_from_subject": 1.2
},
{
"buyer_type": "landlord",
"address": "Rental Ln, Columbia, SC 29205",
"bedrooms": 3,
"bathrooms": 2,
"livingsquarefeet": 1400,
"lotsquarefeet": 5500,
"propertytype": "Single Family Residence",
"latitude": 34.018,
"longitude": -81.023,
"rental_purchase_transaction_date": "2023-03-15",
"rental_purchase_transaction_price": 180000,
"rental_purchase_method": "Financed",
"miles_from_subject": 2.5
}
]4. Analytics Summary
The Analytics Summary endpoint returns pre-aggregated market metrics for a given location. It provides flip and rental transaction counts at multiple radii, as well as detailed pricing, price-per-square-foot, ARV, and landlord aggressiveness statistics computed from nearby transactions.
Use Case: Use this endpoint to power lead-grading automations, market snapshot widgets, heatmaps, or quick-glance dashboards that show investor activity density and pricing trends without needing to process individual transaction records.
Endpoint: POST /analytics-summary
Request Body Parameters:
latitude(number, required): The latitude of the search center.longitude(number, required): The longitude of the search center.property_types(array of strings, optional): Filter by property type. Allowed values:['SFR', 'MFR', 'CONDO', 'MOBILE', 'LAND', 'OTHER']. Defaults to['SFR'].lookback_months(integer, optional): Number of months of history to include. Accepts1to60. Defaults to24.metrics_radius_mi(number, optional): Radius in miles used for the detailed buyer metrics. Accepts0to10. Defaults to2.
Example Request:
{
"latitude": 34.000,
"longitude": -81.000,
"property_types": ["SFR"],
"lookback_months": 24,
"metrics_radius_mi": 2
}Example Response:
Returns a single object with three sections: radius counts, flipper metrics, and landlord metrics.
{
"radius_counts": {
"1mi": { "flips": 5, "rentals": 8 },
"2mi": { "flips": 12, "rentals": 20 },
"5mi": { "flips": 45, "rentals": 60 },
"10mi": { "flips": 100, "rentals": 150 }
},
"flipper_metrics": {
"count": 12,
"price_avg": 185000,
"price_low": 155000,
"price_high": 210000,
"ppsft_avg": 125,
"ppsft_low": 105,
"ppsft_high": 140,
"arv_pct_avg": 72,
"arv_pct_low": 65,
"arv_pct_high": 80
},
"landlord_metrics": {
"count": 20,
"price_avg": 165000,
"price_low": 140000,
"price_high": 195000,
"ppsft_avg": 110,
"ppsft_low": 90,
"ppsft_high": 130,
"aggressive_purchase_count": 8,
"moderate_purchase_count": 7,
"conservative_purchase_count": 5
}
}Response Fields:
radius_counts: Transaction counts within 1, 2, 5, and 10 mile radii.flips= flip transactions,rentals= rental acquisitions.flipper_metrics: Aggregated stats from flip transactions withinmetrics_radius_mi.price_low/price_highrepresent the middle-third range.arv_pct_*is the percentage of After-Repair Value paid by flippers.landlord_metrics: Aggregated stats from rental acquisitions withinmetrics_radius_mi. The*_purchase_countfields reflect the 1% Rule meter—aggressivemeans landlords paid higher prices relative to expected rental revenue,conservativemeans lower prices.
5. Buyer Search
The Buyer Search endpoint is the core of our investor matching capability. It functions similarly to the Analytics Search but includes detailed contact information and identity for the buyers found.
Use Case: Use this to provide your users with actionable leads—investors who are actively buying in their target area.
Endpoint: POST /buyer-search
Request Body Parameters:
latitude(number, required): The latitude of the search center.longitude(number, required): The longitude of the search center.property_types(array of strings, optional): Filter by property type. Allowed values:['SFR', 'MFR', 'CONDO', 'MOBILE', 'LAND', 'OTHER']. Defaults to['SFR'].flipper_weight(number, optional): Controls the ratio of flippers to landlords in the results. Accepts a value between0and1. A value of1returns only flippers,0returns only landlords, and0.5(the default) returns an even split.async(boolean, optional): Iftrue, the request returns immediately with asearch_idand processes in the background. Defaults tofalse(synchronous).webhook_url(string, optional): A URL to receive a POST request when the search completes. Works in both sync and async modes.webhook_secret(string, optional): A secret value that will be included as anx-webhook-secretheader on webhook notifications. Use this to verify that incoming webhooks originated from InvestorBase.results_in_webhook(boolean, optional): Iftrue, the webhook payload will include the full array of results. Defaults tofalse.
Example Request (Synchronous):
{
"latitude": 34.000,
"longitude": -81.000
}Example Response (Synchronous):
Returns an array of buyer profiles with contact details.
[
{
"buyer_first_name": "John",
"buyer_last_name": "Doe",
"buyer_entity_name": "JD Properties LLC",
"buyer_phone_number": 8435550123,
"buyer_email": "john@example.com",
"buyer_type": "flipper",
"address": "123 Investor Way",
"bedrooms": 3,
"bathrooms": 2,
"livingsquarefeet": 1500,
"lotsquarefeet": 6000,
"propertytype": "Single Family Residence",
"latitude": 34.01,
"longitude": -81.01,
"flip_sale_transaction_date": "2023-06-01",
"flip_sale_transaction_price": 250000,
"flip_purchase_transaction_date": "2022-12-01",
"flip_purchase_transaction_price": 150000,
"flip_purchase_method": "Financed",
"miles_from_subject": 1.2
}
]Example Request (Asynchronous):
{
"latitude": 34.000,
"longitude": -81.000,
"async": true,
"webhook_url": "https://your-api.com/webhooks/investorbase",
"webhook_secret": "your-secret-value"
}Example Response (Asynchronous):
Returns HTTP 202 Accepted.
{
"search_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "pending"
}5a. Retrieve Search Results
If you use the async option, you can poll this endpoint to check the status and retrieve results.
Endpoint: GET /buyer-search
Query Parameters:
search_id(string, required): The UUID returned from the async POST request.
Example Response:
[
{
"buyer_first_name": "John",
"buyer_last_name": "Doe",
"buyer_entity_name": "JD Properties LLC",
"buyer_phone_number": 8435550123,
"buyer_email": "john@example.com",
"buyer_type": "flipper",
"address": "123 Investor Way",
"bedrooms": 3,
"bathrooms": 2,
"livingsquarefeet": 1500,
"lotsquarefeet": 6000,
"propertytype": "Single Family Residence",
"latitude": 34.01,
"longitude": -81.01,
"flip_sale_transaction_date": "2023-06-01",
"flip_sale_transaction_price": 250000,
"flip_purchase_transaction_date": "2022-12-01",
"flip_purchase_transaction_price": 150000,
"flip_purchase_method": "Cash Purchase",
"miles_from_subject": 1.2
}
]5b. Webhook Notification
If you provide a webhook_url, we will send a POST request to that URL when the search completes (or fails).
Headers:
Content-Type:application/jsonx-webhook-secret: Yourwebhook_secretvalue, if one was provided in the original request. Use this to verify the authenticity of incoming webhooks.
Payload:
{
"search_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "completed",
"results": [ ... ] // Only included if results_in_webhook is true
}6. Investor Comps
The Investor Comps endpoint searches for "investor-grade" comparable transactions—specifically flips and rental acquisitions—and ranks them based on their similarity to a subject property.
Use Case: This helps users determine what investors specifically are paying for properties in the area, which often differs from retail market value. The ranking algorithm prioritizes properties that are most similar in size, location, and utility.
Endpoint: POST /investor-comps
Request Body Parameters:
latitude(number, required): Center point for the search.longitude(number, required): Center point for the search.property_types(array of strings, optional): Filter by property type. Allowed values:['SFR', 'MFR', 'CONDO', 'MOBILE', 'LAND', 'OTHER']. Defaults to['SFR'].subject_property_details(object, optional): details used for the ranking algorithm.bedrooms(number)bathrooms(number)square_feet(number)
Example Request:
{
"latitude": 34.0522,
"longitude": -81.0437,
"property_types": ["SFR"],
"subject_property_details": {
"bedrooms": 3,
"bathrooms": 2,
"square_feet": 1500,
}
}Example Response:
Returns a ranked list of investor transactions.
[
{
"rank": 1,
"pricePerSqFt": 150,
"buyer_type": "flipper",
"address": "789 Flip St",
"bedrooms": 3,
"bathrooms": 2,
"livingsquarefeet": 1450,
"lotsquarefeet": 5000,
"propertytype": "Single Family Residence",
"latitude": 34.06,
"longitude": -81.05,
"flip_purchase_transaction_date": "2023-01-15",
"flip_purchase_transaction_price": 217500,
"miles_from_subject": 0.5
},
{
"rank": 2,
"pricePerSqFt": 145,
"buyer_type": "landlord",
"address": "101 Rental Ave",
"bedrooms": 3,
"bathrooms": 1.5,
"livingsquarefeet": 1400,
"lotsquarefeet": 4800,
"propertytype": "Single Family Residence",
"latitude": 34.07,
"longitude": -81.06,
"rental_purchase_transaction_date": "2023-02-20",
"rental_purchase_transaction_price": 203000,
"miles_from_subject": 0.8
}
]7. Linked Deals
The Linked Deals endpoint returns a summary of all transactions (flips and rentals) and up to 250 detailed property records linked to a specific buyer, identified by either their entity name or mailing address. It provides aggregated portfolio statistics alongside the individual deal records.
Use Case: Use this endpoint to build buyer profile pages, underwrite a specific investor's track record, or power "see all deals by this buyer" drill-downs in your application.
Endpoint: POST /linked-deals
Request Body Parameters:
search_string(string, required): The buyer's entity name (e.g.,"JD Properties, LLC") or their full mailing address as a single string (e.g.,"123 Main St, Miami, FL 33101").search_state(string, conditionally required): A two-letter US state code (e.g.,"FL"). Required whenis_entity_nameistrueor omitted.is_entity_name(boolean, optional): Set totrue(default) ifsearch_stringis an entity/owner name, orfalseif it is a mailing address.strict_matches_only(boolean, optional): Whentrue(default), only matches on the provided search dimension. Whenfalse, the API expands search scope to return a broader set of linked deals, with the tradeoff being higher risk of false positives.
Example Request (Entity Name):
{
"search_string": "JD Properties, LLC",
"search_state": "FL",
"is_entity_name": true,
"strict_matches_only": false
}Tip: When performing a mailing address search, we recommend using the /autocomplete endpoint first to obtain the address string in the exact format our system expects. Pass the address value from the Autocomplete response directly as your search_string to ensure the best match quality.
Example Request (Mailing Address):
{
"search_string": "123 Main St, Miami, FL 33101",
"is_entity_name": false,
"strict_matches_only": true
}Example Response:
Returns an object with aggregated metadata and a results array of up to 250 deal records, sorted by most recent sale date.
{
"metadata": {
"rental_count": 8,
"flip_count": 3,
"total_deals": 11,
"main_property_type": "Single Family Residence",
"estimated_portfolio_value": 1850000,
"average_flip_duration": 142,
"average_purchase_arv_percent": 72,
"average_purchase_price": 195000,
"average_flip_gross_profit": 55000
},
"results": [
{
"id": 123456,
"buyernames": "JD Properties LLC",
"sellernames": "Jane Smith",
"address": {
"street": "456 Oak Ave",
"city": "Miami",
"state": "FL",
"zip": "33101"
},
"latitude": 25.76,
"longitude": -80.19,
"bedrooms": 3,
"bathrooms": 2,
"livingsquarefeet": 1500,
"lotsquarefeet": 6000,
"unitscount": 1,
"yearbuilt": 1985,
"propertytype": "Single Family Residence",
"estimatedvalue": 320000,
"equitypercent": 45.5,
"deal_type": "rental"
}
]
}Response Fields:
metadata: Aggregated statistics across all linked deals.rental_count/flip_count/total_deals: Deal counts by type.main_property_type: Most common property type across the buyer's deals.estimated_portfolio_value: Sum of estimated values for all rental properties.average_flip_duration: Average number of days between purchase and sale for flips.average_purchase_arv_percent: Average percentage of ARV paid by the buyer on flips.average_purchase_price: Average purchase price across all deals.average_flip_gross_profit: Average gross profit (sale price minus purchase price) on flips.
results: Array of individual deal records (max 250). Each includes property details, transaction history, and adeal_typeof either"rental"or"flip".
Account Management
These endpoints allow you to programmatically manage users and subscriptions within your InvestorBase account. This is particularly useful for platforms that need to provision access for their own customers.
8. API Account Info
The Credentials endpoint allows you to retrieve information about your API account, including your rate limits and the plans available for you to assign to your users.
Endpoint: GET /api-credentials
Example Response:
{
"account_name": "Acme Corp",
"account_contact_email": "admin@acmecorp.com",
"active": true,
"rate_limit_per_minute": 1000,
"authorized_endpoints": ["autocomplete", "retail_comps", "analytics_search", "analytics_summary", "buyer_search", "investor_comps", "linked_deals"],
"available_plans": [
{
"plan_id": "plan_123",
"plan_name": "Pro Plan",
"monthly_price_usd": 99,
"autocomplete_limit": 1000,
"analytics_search_limit": 500,
"buyer_search_limit": 100,
"investor_comps_limit": 200,
"retail_comps_limit": 200,
"linked_deals_limit": 200
}
]
}Plan Fields:
analytics_search_limitapplies to both the Analytics Search and Analytics Summary endpoints (counted independently per endpoint).- All other limit fields apply to their respective endpoint.
9. User Management
The Users endpoint allows you to create, manage, and monitor the end-users of your application who are consuming InvestorBase data.
Endpoint: /api-users
Create User
Method: POST
Request Body Parameters:
user_id(string, required): Your unique identifier for the user.active(boolean, optional): Whether the user is active. Defaults totrue.
Example Request:
{
"user_id": "user_555"
}Update User Status
Method: PATCH
Request Body Parameters:
user_id(string, required): The unique identifier of the user.active(boolean, required): Set tofalseto deactivate the user. Note: Deactivating a user will automatically deactivate all their subscriptions.
Example Request:
{
"user_id": "user_555",
"active": false
}Get User Details & Usage
Method: GET
Query Parameters:
user_id(string, required): The unique identifier of the user.
Example Response:
Returns the user's status, active subscriptions, and usage counts for the current period.
{
"user_id": "user_555",
"created_at": "2023-01-01T12:00:00Z",
"active": true,
"subscriptions": [
{
"id": "sub_789",
"plan_id": "plan_123",
"active": true,
"created_at": "2023-01-01T12:00:00Z"
}
],
"current_period_usage": {
"buyer_search": 45,
"retail_comps": 12
}
}10. Subscription Management
The Subscriptions endpoint allows you to assign plans to your users and manage their access.
Note: You can stack multiple subscriptions for a user in order to increase their limits.
Endpoint: /api-user-subscriptions
Create Subscription
Method: POST
Request Body Parameters:
user_id(string, required): The unique identifier of the user.plan_id(string, required): The ID of the plan to assign (retrieved from/api-credentials).
Example Request:
{
"user_id": "user_555",
"plan_id": "plan_123"
}Update Subscription Status
Method: PATCH
Request Body Parameters:
subscription_id(string, required): The ID of the subscription to update.active(boolean, required):trueto reactivate,falseto deactivate.
Example Request:
{
"subscription_id": "sub_789",
"active": false
}Best Practices
- Validate Addresses First: Always use the
/autocompleteendpoint to get precise coordinates before calling search endpoints. This ensures you are searching the correct location. - Monitor Rate Limits: Check the
X-RateLimit-RemainingandX-Monthly-Remainingresponse headers to track your usage. Implement client-side throttling or backoff logic to avoid429responses during bursts of activity. - Handle 429 Responses Gracefully: If you receive a
429 Too Many Requestsresponse, wait before retrying. For per-minute limits, waiting 60 seconds is sufficient. For monthly limits, check the user's remaining quota viaGET /api-users. - Security: Proxy your API requests through your own backend server. Never embed your
x-api-keydirectly in a frontend application.
Data Dictionary
Below is a reference for common fields found in our response objects.
Buyer & Transaction Information
| Field Name | Type | Description |
|---|---|---|
buyer_first_name | String | First name of the investor/buyer. |
buyer_last_name | String | Last name of the investor/buyer. |
buyer_entity_name | String | Business entity name of the buyer (e.g., LLC name). |
buyer_type | String | Classification of the buyer: 'flipper' or 'landlord'. |
buyer_phone_number | String | Contact phone number for the buyer. |
buyer_email | String | Contact email address for the buyer. |
flip_sale_transaction_price | String | For flippers: The price they sold the flipped property for (ARV). |
flip_sale_transaction_date | String | For flippers: The date they sold the flipped property. |
flip_purchase_transaction_price | Number | For flippers: The price they originally paid for the property. |
flip_purchase_transaction_date | String | For flippers: The date they originally purchased the property. |
flip_purchase_method | String | For flippers: The purchase method used to acquire the property (e.g., "Cash Purchase", "Financed"). |
rental_purchase_transaction_price | Number | For landlords: The price they paid to acquire the rental property. |
rental_purchase_transaction_date | String | For landlords: The date they acquired the rental property. |
rental_purchase_method | String | For landlords: The purchase method used to acquire the rental property (e.g., "Cash Purchase", "Financed"). |
Property Details
| Field Name | Type | Description |
|---|---|---|
address | String | The street address of the property. In Analytics Search responses, the house number is omitted (e.g., "Main St, Charleston, SC 29407"). |
city | String | City name (Retail Comps). |
state | String | State code (Retail Comps). |
zip | String | Postal code (Retail Comps). |
latitude | Number | Geographical latitude. In Analytics Search responses, a small random offset (up to a few hundred feet) is applied. |
longitude | Number | Geographical longitude. In Analytics Search responses, a small random offset (up to a few hundred feet) is applied. |
bedrooms | Number | Number of bedrooms. |
bathrooms | Number | Number of bathrooms. |
living_square_feet / livingsquarefeet | Number | Interior living area in square feet. Note: living_square_feet is used in Retail Comps; livingsquarefeet is used in Search endpoints. |
lot_square_feet / lotsquarefeet | Number | Lot size in square feet. Note: lot_square_feet is used in Retail Comps; lotsquarefeet is used in Search endpoints. |
property_type / propertytype | String | Type of property (e.g. "Single Family Residence"). Note: property_type is used in Retail Comps; propertytype is used in Search endpoints. |
year_built | Number | Year the property was built. |
owner_names | Array | List of current owner names (Retail Comps). |
miles_from_subject | Number | Distance from the search origin point. |
Property Type Mappings
The following table provides examples of how detailed property types map to the simplified property_type codes used in the Search endpoints.
| Property Type Code | Summary | Property Type Examples |
|---|---|---|
SFR | Single-family homes, townhouses, and individual residential units. |
|
MFR | Multi-unit properties and apartment complexes. |
|
CONDO | Condominiums and shared ownership units. |
|
MOBILE | Mobile and manufactured homes. |
|
LAND | Vacant land (residential, commercial, industrial, agricultural, etc.). |
|
OTHER | Commercial, industrial, agricultural, and other non-residential or miscellaneous properties. |
|