curl --request GET \
--url https://data.apartmentiq.io/apartmentiq/api/v1/comp_sets/{comp_set_id}/units \
--header 'Authorization: Bearer <token>'import requests
url = "https://data.apartmentiq.io/apartmentiq/api/v1/comp_sets/{comp_set_id}/units"
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/comp_sets/{comp_set_id}/units', 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/comp_sets/{comp_set_id}/units",
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/comp_sets/{comp_set_id}/units"
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/comp_sets/{comp_set_id}/units")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://data.apartmentiq.io/apartmentiq/api/v1/comp_sets/{comp_set_id}/units")
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": "99030676_021621",
"type": "unit",
"attributes": {
"property_id": 99030676,
"subject_property": true,
"property_name": "Cortland Bowery",
"is_leased": false,
"year_built": 1987,
"unit_name": "#02 - 1621",
"days_on_market": 81,
"date_available": "2024-02-13",
"bedroom_count": 1,
"bathroom_count": 1,
"min_rent": 1841,
"sq_ft": 757,
"floorplan_name": "A3 - Clearwater",
"avg_rent_per_sq_ft": 2.4319682959048876,
"last_rent_change_date": "2024-02-07",
"last_rent_change": "$10",
"total_30_day_rent_change": "$55",
"rent_changes_last_30_days": 10,
"is_trucomp": false,
"date_leased": "2024-02-01T12:00:00Z",
"trucomp_rent_differential": 0.021040974529346623,
"trucomp_sq_ft_differential": -0.04634522236900049,
"trucomp_rent_per_sq_ft_differential": 0.07066099649366094,
"concessions": {
"id": 299639,
"property_id": 99030676,
"expires_at": "2024-02-29T23:59:59.999Z",
"updated_at": "2024-02-13T10:15:26.403Z",
"updated_at_formatted": "8 hours ago",
"display_text": "up to 6 weeks in free rent\nRestrictions: Move in by February 29, 2024, 13 month lease, Must be a new applicant",
"rent_concessions": [
{
"display_text": "Up to 6 Weeks Free Rent",
"restrictions": [
"Move in by february 29, 2024",
"13 month lease",
"Must be a new applicant"
],
"expires_on_date": "2024-02-29",
"subject": "Rent",
"type_value": 6,
"details": "Up to 6 weeks in free rent"
}
],
"non_rent_concessions": [
{
"display_text": "50% Off Administration Fee",
"restrictions": [
"Move in by february 29, 2024",
"13 month lease",
"Must be a new applicant"
],
"expires_on_date": "2024-02-29",
"subject": "Administration Fee",
"type_value": 0.5,
"details": "Half off admin fee"
}
]
},
"net_effective_rent": 1841,
"net_effective_rent_per_sq_ft": 2.4319682959048876,
"all_in_rent": 1975,
"all_in_rent_per_sq_ft": 2.61,
"all_in_ner": 1925,
"all_in_ner_per_sq_ft": 2.54,
"annual_rent_reduction_value": 4928,
"amenity_names": {
"Views": [
"<string>"
],
"Balcony/Patio": [
"<string>"
],
"Washer/Dryer": [
"<string>"
],
"Kitchen Island": [
"<string>"
],
"Stainless Steel Appliances": [
"<string>"
],
"Stone Countertops": [
"<string>"
],
"Garage Attached": [
"<string>"
],
"Hardwood Floors": [
"<string>"
],
"Vinyl Flooring": [
"<string>"
],
"Walk-In Closets": [
"<string>"
],
"Linen Closet": [
"<string>"
],
"High Ceilings": [
"<string>"
],
"Ceiling Fans": [
"<string>"
],
"Air Conditioning": [
"<string>"
],
"Smart Technology": [
"<string>"
],
"Garbage Disposal": [
"<string>"
],
"Dishwasher": [
"<string>"
],
"Fireplace": [
"<string>"
],
"Carpet": [
"<string>"
],
"Pantry": [
"<string>"
],
"Tile": [
"<string>"
],
"Washer/Dryer Hookup": [
"<string>"
],
"other": [
"<string>"
]
},
"status": "available"
}
}
]
}{
"error": "Invalid parameter",
"message": "account_id is required",
"errors": [
"<string>"
],
"quota_limit": 123,
"quota_usage": 123
}{
"error": "Invalid parameter",
"message": "account_id is required",
"errors": [
"<string>"
],
"quota_limit": 123,
"quota_usage": 123
}{
"error": "Invalid parameter",
"message": "account_id is required",
"errors": [
"<string>"
],
"quota_limit": 123,
"quota_usage": 123
}"You have exceeded the rate limit for this API.\n"List Units In Competitive Set
Retrieves the list of units in a Competitive Set.
curl --request GET \
--url https://data.apartmentiq.io/apartmentiq/api/v1/comp_sets/{comp_set_id}/units \
--header 'Authorization: Bearer <token>'import requests
url = "https://data.apartmentiq.io/apartmentiq/api/v1/comp_sets/{comp_set_id}/units"
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/comp_sets/{comp_set_id}/units', 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/comp_sets/{comp_set_id}/units",
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/comp_sets/{comp_set_id}/units"
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/comp_sets/{comp_set_id}/units")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://data.apartmentiq.io/apartmentiq/api/v1/comp_sets/{comp_set_id}/units")
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": "99030676_021621",
"type": "unit",
"attributes": {
"property_id": 99030676,
"subject_property": true,
"property_name": "Cortland Bowery",
"is_leased": false,
"year_built": 1987,
"unit_name": "#02 - 1621",
"days_on_market": 81,
"date_available": "2024-02-13",
"bedroom_count": 1,
"bathroom_count": 1,
"min_rent": 1841,
"sq_ft": 757,
"floorplan_name": "A3 - Clearwater",
"avg_rent_per_sq_ft": 2.4319682959048876,
"last_rent_change_date": "2024-02-07",
"last_rent_change": "$10",
"total_30_day_rent_change": "$55",
"rent_changes_last_30_days": 10,
"is_trucomp": false,
"date_leased": "2024-02-01T12:00:00Z",
"trucomp_rent_differential": 0.021040974529346623,
"trucomp_sq_ft_differential": -0.04634522236900049,
"trucomp_rent_per_sq_ft_differential": 0.07066099649366094,
"concessions": {
"id": 299639,
"property_id": 99030676,
"expires_at": "2024-02-29T23:59:59.999Z",
"updated_at": "2024-02-13T10:15:26.403Z",
"updated_at_formatted": "8 hours ago",
"display_text": "up to 6 weeks in free rent\nRestrictions: Move in by February 29, 2024, 13 month lease, Must be a new applicant",
"rent_concessions": [
{
"display_text": "Up to 6 Weeks Free Rent",
"restrictions": [
"Move in by february 29, 2024",
"13 month lease",
"Must be a new applicant"
],
"expires_on_date": "2024-02-29",
"subject": "Rent",
"type_value": 6,
"details": "Up to 6 weeks in free rent"
}
],
"non_rent_concessions": [
{
"display_text": "50% Off Administration Fee",
"restrictions": [
"Move in by february 29, 2024",
"13 month lease",
"Must be a new applicant"
],
"expires_on_date": "2024-02-29",
"subject": "Administration Fee",
"type_value": 0.5,
"details": "Half off admin fee"
}
]
},
"net_effective_rent": 1841,
"net_effective_rent_per_sq_ft": 2.4319682959048876,
"all_in_rent": 1975,
"all_in_rent_per_sq_ft": 2.61,
"all_in_ner": 1925,
"all_in_ner_per_sq_ft": 2.54,
"annual_rent_reduction_value": 4928,
"amenity_names": {
"Views": [
"<string>"
],
"Balcony/Patio": [
"<string>"
],
"Washer/Dryer": [
"<string>"
],
"Kitchen Island": [
"<string>"
],
"Stainless Steel Appliances": [
"<string>"
],
"Stone Countertops": [
"<string>"
],
"Garage Attached": [
"<string>"
],
"Hardwood Floors": [
"<string>"
],
"Vinyl Flooring": [
"<string>"
],
"Walk-In Closets": [
"<string>"
],
"Linen Closet": [
"<string>"
],
"High Ceilings": [
"<string>"
],
"Ceiling Fans": [
"<string>"
],
"Air Conditioning": [
"<string>"
],
"Smart Technology": [
"<string>"
],
"Garbage Disposal": [
"<string>"
],
"Dishwasher": [
"<string>"
],
"Fireplace": [
"<string>"
],
"Carpet": [
"<string>"
],
"Pantry": [
"<string>"
],
"Tile": [
"<string>"
],
"Washer/Dryer Hookup": [
"<string>"
],
"other": [
"<string>"
]
},
"status": "available"
}
}
]
}{
"error": "Invalid parameter",
"message": "account_id is required",
"errors": [
"<string>"
],
"quota_limit": 123,
"quota_usage": 123
}{
"error": "Invalid parameter",
"message": "account_id is required",
"errors": [
"<string>"
],
"quota_limit": 123,
"quota_usage": 123
}{
"error": "Invalid parameter",
"message": "account_id is required",
"errors": [
"<string>"
],
"quota_limit": 123,
"quota_usage": 123
}"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.
Path Parameters
ID of the comp set to get data for.
Query Parameters
Filter the data by a comma-separated list of bedroom counts.
Filter the data by a comma-separated list of bathroom counts.
Filter the data by a comma-separated list of property IDs.
Filter the data by minimum unit size, in square feet.
Filter the data by maximum unit size, in square feet.
Filter the data by minimum rent, in dollars.
Filter the data by maximum rent, in dollars.
Filter the data by minimum date available, in ISO 8601 format.
Filter the data by maximum date available, in ISO 8601 format.
Filter the data by minimum year built.
Filter the data by maximum year built.
Filter the data by a comma-separated list of unit styles, where unit styles are affordable, standard, penthouse, or renovated.