POST /api/apartmentlist/listings
Price: 10 credits
Get full Apartment List rental listing details by listing URL (or /{state}/{city}/{slug} path): name, description, address, geo, phone, images, virtual tours, community/unit amenities, top amenities, walk and transit scores, parking, office hours, pet policy, fees, floor plans with units (base/total price, fees, lease length, availability, sqft), market average rent, nearby schools and points of interest, resident reviews, and similar listings.
Fetch a single Apartment List rental community by its listing URL or /{state}/{city}/{slug} path (the alias returned by apartmentlist/listings/search). Returns one listing with name, description, address, geo, phone, images, virtual_tours (3D tour links), community_amenities, unit_amenities, top_amenities, walk_score, transit_score, parking, office_hours, pets/pet_policy, fees, floor_plans (beds/baths/sqft/price + units with base_price/total_price/required_fees/lease_length/availability/apply_url), average_rent, schools, pois, reviews and similar_listings.
access-token string requiredtimeout integer — Max scrapping execution timeout (in seconds) (default: 300; min: 20; max: 1500)listing string required — Apartment List listing URL or /{state}/{city}/{slug} path (examples: "/co/denver/ladora-modern-apartments", "https://www.apartmentlist.com/co/denver/ladora-modern-apartments"; minLength: 1)@type string (default: "ApartmentlistListing")id string requiredurl string requiredalias string nullablename string nullabledescription string nullablehighlight string nullableformatted_address string nullablestreet_address string nullablecity string nullablestate string nullablezip string nullablecounty string nullableneighborhood string nullablelatitude number nullablelongitude number nullablephone string nullablemanagement_company string nullablesource_name string nullableoccupancy_types array (default: [])show_price boolean nullablehas_unit_level_availability boolean nullabletour_booking_allowed boolean nullableupdated_at integer nullableavailability_checked_at integer nullableimage string nullableimages array (default: [])virtual_tours array (default: [])@type string (default: "ApartmentlistVirtualTour")provider string nullablelink string requiredtags array (default: [])community_amenities array (default: [])unit_amenities array (default: [])specials array (default: [])@type string (default: "ApartmentlistSpecial")text string nullablespecial_type string nullablehighlighted boolean nullablemonthly_price_discount number nullableestimated_value number nullableexpires_at integer nullableapplication_fee string nullableadditional_fees string nullabledeposit_fee string nullablemove_in_fees string nullablelease_terms string nullableutilities_included string nullableincome_requirement string nullableincome_multiplier number nullablewalk_score object nullable@type string (default: "ApartmentlistScore")score integer nullabledescription string nullablesummary string nullablelink string nullabletransit_score object nullable@type string (default: "ApartmentlistScore")score integer nullabledescription string nullablesummary string nullablelink string nullabletop_amenities array (default: [])@type string (default: "ApartmentlistTopAmenity")name string requiredgroup string nullablegroup_rank number nullablefilter_param string nullableimage string nullableparking array (default: [])@type string (default: "ApartmentlistParking")category string nullablecomment string nullablespace_fee number nullablespaces integer nullableassigned_available boolean nullableassigned_has_fee boolean nullableoffice_hours array (default: [])@type string (default: "ApartmentlistOfficeHours")day string requiredopens_at integer nullablecloses_at integer nullablepet_policy object nullable@type string (default: "ApartmentlistPetPolicy")allowed boolean nullableallowed_pets array (default: [])deposit string nullablerent string nullablefee string nullablerestrictions string nullableaverage_rent object nullable@type string (default: "ApartmentlistAverageRent")price_studio number nullableprice_1br number nullableprice_2br number nullableprice_3br number nullabletrend string nullablepricing_date string nullablefloor_plans array (default: [])@type string (default: "ApartmentlistFloorPlan")id integer nullablename string nullablebeds integer nullablebaths number nullablesqft integer nullablesqft_max integer nullableprice number nullableprice_max number nullableimage string nullableavailable_unit_count integer nullableunits array (default: [])@type string (default: "ApartmentlistUnit")id integer nullablename string nullableprice number nullableprice_max number nullablebase_price number nullabletotal_price number nullablerequired_fees number nullablesqft integer nullablelease_length integer nullableavailability string nullableavailable_on string nullableapply_url string nullableunit_rental_id string nullableschools array (default: [])@type string (default: "ApartmentlistSchool")name string nullablelevel string nullableschool_type string nullablerating integer nullableparents_rating number nullableenrollment integer nullabledistance number nullableurl string nullablelatitude number nullablelongitude number nullablepois array (default: [])@type string (default: "ApartmentlistPoi")name string nullablecategory string nullablelatitude number nullablelongitude number nullabledistance number nullablereviews array (default: [])@type string (default: "ApartmentlistListingReview")text string nullablerating number nullablereview_type string nullablecreated_at integer nullablesimilar_listings array (default: [])@type string (default: "ApartmentlistSimilarListing")id string requiredurl string nullablealias string nullablename string nullablestreet_address string nullablecity string nullablestate string nullablezip string nullablelowest_price number nullableavailable_unit_count integer nullableimage string nullable422 — The request body did not validate Check the fields against this schema. A URN with the wrong prefix is the most common cause.408 — The request ran past its time limit Raise `timeout` in the request body, up to the maximum this endpoint documents. Lowering `count` or turning off the `with_*` flags also helps, because less work finishes sooner.412 — Listing not found (well-formed but nonexistent listing URL/slug) Retrying will not help: either the entity does not exist, or the input points at a different one.429 — Too many requests: a rate limit or a usage window is exhausted When the response carries an X-Retry-After header, wait that many seconds and retry: the same number is in the body as `detail.retry_after`, and the limit clears once that window passes. The message in the body names the limit that was hit.500 — Something broke on our side Retrying will not help. If it keeps happening, send us the X-Request-ID from the response headers.529 — Rate limit reached, or the endpoint is overloaded Wait at least 30 seconds, then retry.X-Error — Error message text (present only on error)X-Request-ID — Unique request identifierX-Execution-Time — Execution time in secondsX-Result-Count — How many records the body carries. 0 means an empty result, which is a normal answer and not by itself an error. A non-zero count can come back together with X-Error when the failure happened partway through — read this header and X-Error independently.X-Total-Available-Results — How many records exist for this query, when the endpoint can say. On a `dry_run` request this is the answer and the body is empty. It saturates: the endpoint's documented maximum means 'at least that many', any smaller number is exact.X-Warning — Present when the request body carried keys this endpoint does not document. They were ignored, so any filter you meant to apply through them did not apply. Check the spelling against this schema and retry.X-Retry-After — Seconds to wait before retrying. Present only on 429.