Bulk Property Details
curl --request GET \
--url https://data.apartmentiq.io/apartmentiq/api/v1/properties/bulk_details \
--header 'Authorization: Bearer <token>'import requests
url = "https://data.apartmentiq.io/apartmentiq/api/v1/properties/bulk_details"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://data.apartmentiq.io/apartmentiq/api/v1/properties/bulk_details', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://data.apartmentiq.io/apartmentiq/api/v1/properties/bulk_details",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://data.apartmentiq.io/apartmentiq/api/v1/properties/bulk_details"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://data.apartmentiq.io/apartmentiq/api/v1/properties/bulk_details")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://data.apartmentiq.io/apartmentiq/api/v1/properties/bulk_details")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "<string>",
"type": "properties",
"attributes": {}
}
]
}{
"error": "property_ids is required and must be a non-empty array"
}{
"error": "Invalid parameter",
"message": "account_id is required",
"errors": [
"<string>"
],
"quota_limit": 123,
"quota_usage": 123
}{
"error": "Bulk export quota (<quota_limit>) exceeded"
}"You have exceeded the rate limit for this API.\n"Markets
Bulk Property Details
Retrieve full property details and aggregated metrics for multiple properties by ID. Returns comprehensive data including physical characteristics, rent metrics, availability, and ownership information (with appropriate data access).
Requires Explore Pro access. Ownership and sales transaction fields require Explore Pro+ access.
This endpoint is subject to bulk export quota limits. Each successful request counts returned unique properties toward your account quota.
GET
/
properties
/
bulk_details
Bulk Property Details
curl --request GET \
--url https://data.apartmentiq.io/apartmentiq/api/v1/properties/bulk_details \
--header 'Authorization: Bearer <token>'import requests
url = "https://data.apartmentiq.io/apartmentiq/api/v1/properties/bulk_details"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://data.apartmentiq.io/apartmentiq/api/v1/properties/bulk_details', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://data.apartmentiq.io/apartmentiq/api/v1/properties/bulk_details",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://data.apartmentiq.io/apartmentiq/api/v1/properties/bulk_details"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://data.apartmentiq.io/apartmentiq/api/v1/properties/bulk_details")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://data.apartmentiq.io/apartmentiq/api/v1/properties/bulk_details")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "<string>",
"type": "properties",
"attributes": {}
}
]
}{
"error": "property_ids is required and must be a non-empty array"
}{
"error": "Invalid parameter",
"message": "account_id is required",
"errors": [
"<string>"
],
"quota_limit": 123,
"quota_usage": 123
}{
"error": "Bulk export quota (<quota_limit>) exceeded"
}"You have exceeded the rate limit for this API.\n"Authorizations
Enter a Bearer token obtained via the OAuth client credentials flow or from the Access Tokens tab in your account settings.
Query Parameters
ID of the account (required for authorization).
Comma-separated list of property IDs, or use array notation with multiple property_ids[] parameters.
Response
Property details retrieved successfully
Array of property objects with full details.
Show child attributes
Show child attributes
⌘I