> ## Documentation Index
> Fetch the complete documentation index at: https://developers.apartmentiq.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Bulk Properties

> Retrieve bulk property rows using optional property filters, requested fields, and pagination.

<Warning>Requires Explore Pro access and consumes property bulk export quota.</Warning>



## OpenAPI

````yaml /openapi/v2/schema.json post /properties/bulk
openapi: 3.1.0
info:
  title: ApartmentIQ API V2
  version: 2.0.0
  termsOfService: https://www.getapartmentiq.com/terms
  x-logo:
    url: https://developers.apartmentiq.io/logo.svg
    altText: ApartmentIQ
  description: >-
    ApartmentIQ API V2 endpoints for account discovery, search, and bulk Explore
    data.
servers:
  - url: https://data.apartmentiq.io/apartmentiq/api/v2
security:
  - bearerAuth: []
tags:
  - name: Accounts
    description: Account discovery endpoints.
  - name: Amenities
    description: Amenity discovery endpoints.
  - name: Properties
    description: Property search endpoints.
  - name: Markets
    description: Market and geo-boundary search endpoints.
  - name: Organizations
    description: Organization search endpoints.
  - name: Bulk
    description: Bulk property, market, quota, and forecast exports.
paths:
  /properties/bulk:
    post:
      tags:
        - Bulk
      summary: Bulk Properties
      description: >-
        Retrieve bulk property rows using optional property filters, requested
        fields, and pagination.


        <Warning>Requires Explore Pro access and consumes property bulk export
        quota.</Warning>
      operationId: createV2PropertiesBulk
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkPropertiesRequest'
            example:
              account_id: '{account_id}'
              interval: month
              property_filters:
                collected_at_gte: '2026-05-01'
                total_units_gte: 100
              fields:
                - rent
                - days_on_market
              page: 2
              per_page: 50
      responses:
        '200':
          description: Bulk property rows and pagination metadata.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkPropertiesResponse'
              example:
                rows:
                  - property_name: The Livingston
                    market_name: Madison, WI Metro Area
                    submarket_name: Downtown Madison
                    property_id: 781245
                    address: 1025 E Washington Ave
                    city: Madison
                    state: WI
                    zip_code: '53703'
                    latitude: 43.0836
                    longitude: -89.3723
                    unified_status: stabilized
                    unit_count: 186
                    number_of_stories: 6
                    year_built: 2018
                    year_renovated: null
                    property_class: A
                    property_type: Multifamily
                    management_company_names:
                      - Northstar Residential
                    ownership_company_names:
                      - Lakeview Multifamily Fund
                    on_revenue_management_tool: true
                    period: 2026-05
                    rent: 1842.37
                    rent_0_bed: 1375.2
                    rent_1_bed: 1698.44
                    rent_2_bed: 2136.08
                    rent_3_bed: 2698.5
                    ner: 1796.12
                    ner_0_bed: 1328.75
                    ner_1_bed: 1654.1
                    ner_2_bed: 2084.9
                    ner_3_bed: 2630.25
                    rent_psf: 2.48
                    rent_0_bed_psf: 3.18
                    rent_1_bed_psf: 2.72
                    rent_2_bed_psf: 2.18
                    rent_3_bed_psf: 1.92
                    ner_psf: 2.42
                    ner_0_bed_psf: 3.07
                    ner_1_bed_psf: 2.65
                    ner_2_bed_psf: 2.13
                    ner_3_bed_psf: 1.87
                    rent_growth_rate_yoy: 0.0341
                    ner_growth_rate_yoy: 0.0317
                    concession_value: 450
                    concession_percent: 0.0204
                    days_on_market: 27.46
                    occupancy_percent: 0.9435
                    leased_percent: 0.9562
                    exposure_percent: 0.0874
                  - property_name: Summit Row
                    market_name: Madison, WI Metro Area
                    submarket_name: West Madison
                    property_id: 781266
                    address: 711 Junction Rd
                    city: Madison
                    state: WI
                    zip_code: '53717'
                    latitude: 43.0719
                    longitude: -89.5264
                    unified_status: lease_up
                    unit_count: 244
                    number_of_stories: 5
                    year_built: 2024
                    year_renovated: null
                    property_class: A
                    property_type: Multifamily
                    management_company_names:
                      - Crescent Urban Living
                    ownership_company_names: []
                    on_revenue_management_tool: false
                    period: 2026-05
                    rent: 1718.92
                    rent_0_bed: 1298.1
                    rent_1_bed: 1586.25
                    rent_2_bed: 1994.42
                    rent_3_bed: null
                    ner: 1634.75
                    ner_0_bed: 1228.6
                    ner_1_bed: 1508.32
                    ner_2_bed: 1902.1
                    ner_3_bed: null
                    rent_psf: 2.31
                    rent_0_bed_psf: 3.01
                    rent_1_bed_psf: 2.54
                    rent_2_bed_psf: 2.06
                    rent_3_bed_psf: null
                    ner_psf: 2.2
                    ner_0_bed_psf: 2.85
                    ner_1_bed_psf: 2.41
                    ner_2_bed_psf: 1.96
                    ner_3_bed_psf: null
                    rent_growth_rate_yoy: null
                    ner_growth_rate_yoy: null
                    concession_value: 1250
                    concession_percent: 0.0606
                    days_on_market: 41.12
                    occupancy_percent: 0.7811
                    leased_percent: 0.8422
                    exposure_percent: 0.1934
                pagination:
                  current_page: 2
                  total_pages: 4
                  total_count: 175
                  per_page: 50
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/BulkExportForbidden'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    BulkPropertiesRequest:
      type: object
      description: Request contract for the API V2 properties bulk export endpoint.
      properties:
        account_id:
          $ref: '#/components/schemas/AccountId'
        interval:
          type: string
          enum:
            - month
            - quarter
            - year
          description: >-
            Optional period bucket for requested metrics. Omit for one summary
            row per property.
        fields:
          $ref: '#/components/schemas/PropertyMetricFields'
        property_filters:
          $ref: '#/components/schemas/PropertyFilters'
        page:
          type: integer
          minimum: 1
          default: 1
          description: One-based page number for the export result set.
        per_page:
          type: integer
          minimum: 1
          maximum: 100
          default: 25
          description: Number of rows per page. Values above the maximum are clamped.
      required:
        - account_id
      additionalProperties: false
    BulkPropertiesResponse:
      type: object
      description: Paginated property bulk export results.
      properties:
        rows:
          type: array
          items:
            type: object
            description: Property identity fields plus requested metric fields.
            properties:
              property_name:
                type:
                  - string
                  - 'null'
                description: Property display name.
              market_name:
                type:
                  - string
                  - 'null'
                description: Primary market for the property, when available.
              submarket_name:
                type:
                  - string
                  - 'null'
                description: Primary submarket for the property, when available.
              property_id:
                type: integer
                description: ApartmentIQ property ID.
              address:
                type:
                  - string
                  - 'null'
                description: Property street address.
              city:
                type:
                  - string
                  - 'null'
                description: Property city.
              state:
                type:
                  - string
                  - 'null'
                description: Property state abbreviation.
              zip_code:
                type:
                  - string
                  - 'null'
                description: Property postal code.
              latitude:
                type:
                  - number
                  - 'null'
                description: Property latitude, rounded to six decimal places.
              longitude:
                type:
                  - number
                  - 'null'
                description: Property longitude, rounded to six decimal places.
              unified_status:
                type:
                  - string
                  - 'null'
                description: Current ApartmentIQ status for the property.
              unit_count:
                type:
                  - integer
                  - 'null'
                description: Known unit count for the property.
              number_of_stories:
                type:
                  - number
                  - 'null'
                description: Known number of stories for the property.
              year_built:
                type:
                  - integer
                  - 'null'
                description: Year the property was built, when known.
              year_renovated:
                type:
                  - integer
                  - 'null'
                description: Year the property was renovated, when known.
              property_class:
                type:
                  - string
                  - 'null'
                description: Property class, when classified.
              property_type:
                type:
                  - string
                  - 'null'
                description: Property type, when classified.
              management_company_names:
                type: array
                items:
                  type: string
                description: Management company names associated with the property.
              ownership_company_names:
                type: array
                items:
                  type: string
                description: >-
                  Ownership company names associated with the property. Returned
                  only when your account has access to owner data.
              on_revenue_management_tool:
                type:
                  - boolean
                  - 'null'
                description: >-
                  Whether the property is connected to a revenue management
                  tool.
              period:
                type:
                  - string
                  - 'null'
                description: >-
                  Output period for the row. Format is YYYY-MM, YYYY-QN, or
                  YYYY, depending on the requested interval.
              rent:
                type:
                  - number
                  - 'null'
                description: >-
                  Average asking rent. Returned when requested; null when metric
                  data is unavailable.
              rent_0_bed:
                type:
                  - number
                  - 'null'
                description: >-
                  Average studio asking rent. Returned when requested; null when
                  metric data is unavailable.
              rent_1_bed:
                type:
                  - number
                  - 'null'
                description: >-
                  Average one-bedroom asking rent. Returned when requested; null
                  when metric data is unavailable.
              rent_2_bed:
                type:
                  - number
                  - 'null'
                description: >-
                  Average two-bedroom asking rent. Returned when requested; null
                  when metric data is unavailable.
              rent_3_bed:
                type:
                  - number
                  - 'null'
                description: >-
                  Average three-bedroom asking rent. Returned when requested;
                  null when metric data is unavailable.
              ner:
                type:
                  - number
                  - 'null'
                description: >-
                  Average net effective rent after concessions. Returned when
                  requested; null when metric data is unavailable.
              ner_0_bed:
                type:
                  - number
                  - 'null'
                description: >-
                  Average studio net effective rent. Returned when requested;
                  null when metric data is unavailable.
              ner_1_bed:
                type:
                  - number
                  - 'null'
                description: >-
                  Average one-bedroom net effective rent. Returned when
                  requested; null when metric data is unavailable.
              ner_2_bed:
                type:
                  - number
                  - 'null'
                description: >-
                  Average two-bedroom net effective rent. Returned when
                  requested; null when metric data is unavailable.
              ner_3_bed:
                type:
                  - number
                  - 'null'
                description: >-
                  Average three-bedroom net effective rent. Returned when
                  requested; null when metric data is unavailable.
              rent_psf:
                type:
                  - number
                  - 'null'
                description: >-
                  Average null asking rent per square foot. Returned when
                  requested; null when metric data is unavailable.
              rent_0_bed_psf:
                type:
                  - number
                  - 'null'
                description: >-
                  Average studio asking rent per square foot. Returned when
                  requested; null when metric data is unavailable.
              rent_1_bed_psf:
                type:
                  - number
                  - 'null'
                description: >-
                  Average one-bedroom asking rent per square foot. Returned when
                  requested; null when metric data is unavailable.
              rent_2_bed_psf:
                type:
                  - number
                  - 'null'
                description: >-
                  Average two-bedroom asking rent per square foot. Returned when
                  requested; null when metric data is unavailable.
              rent_3_bed_psf:
                type:
                  - number
                  - 'null'
                description: >-
                  Average three-bedroom asking rent per square foot. Returned
                  when requested; null when metric data is unavailable.
              ner_psf:
                type:
                  - number
                  - 'null'
                description: >-
                  Average null net effective rent per square foot. Returned when
                  requested; null when metric data is unavailable.
              ner_0_bed_psf:
                type:
                  - number
                  - 'null'
                description: >-
                  Average studio net effective rent per square foot. Returned
                  when requested; null when metric data is unavailable.
              ner_1_bed_psf:
                type:
                  - number
                  - 'null'
                description: >-
                  Average one-bedroom net effective rent per square foot.
                  Returned when requested; null when metric data is unavailable.
              ner_2_bed_psf:
                type:
                  - number
                  - 'null'
                description: >-
                  Average two-bedroom net effective rent per square foot.
                  Returned when requested; null when metric data is unavailable.
              ner_3_bed_psf:
                type:
                  - number
                  - 'null'
                description: >-
                  Average three-bedroom net effective rent per square foot.
                  Returned when requested; null when metric data is unavailable.
              rent_growth_rate_yoy:
                type:
                  - number
                  - 'null'
                description: >-
                  Year-over-year asking rent growth rate. Returned when
                  requested; null when metric data is unavailable.
              ner_growth_rate_yoy:
                type:
                  - number
                  - 'null'
                description: >-
                  Year-over-year net effective rent growth rate. Returned when
                  requested; null when metric data is unavailable.
              concession_value:
                type:
                  - number
                  - 'null'
                description: >-
                  Average concession value. Returned when requested; null when
                  metric data is unavailable.
              concession_percent:
                type:
                  - number
                  - 'null'
                description: >-
                  Average concession as a percentage of rent. Returned when
                  requested; null when metric data is unavailable.
              days_on_market:
                type:
                  - number
                  - 'null'
                description: >-
                  Average days on market for available units. Returned when
                  requested; null when metric data is unavailable.
              occupancy_percent:
                type:
                  - number
                  - 'null'
                description: >-
                  Average modeled occupancy percentage. Returned when requested;
                  null when metric data is unavailable.
              leased_percent:
                type:
                  - number
                  - 'null'
                description: >-
                  Average leased percentage. Returned when requested; null when
                  metric data is unavailable.
              exposure_percent:
                type:
                  - number
                  - 'null'
                description: >-
                  Average percentage of units exposed for lease. Returned when
                  requested; null when metric data is unavailable.
            required:
              - property_name
              - property_id
              - management_company_names
            additionalProperties: false
          description: >-
            Property rows for the current page. Each row includes property
            identity fields and any requested metric fields.
        pagination:
          $ref: '#/components/schemas/Pagination'
          description: Pagination details for the property bulk export rows.
      required:
        - rows
        - pagination
      additionalProperties: false
    AccountId:
      anyOf:
        - type: integer
        - type: string
      description: ApartmentIQ account ID used to set the request account context.
    PropertyMetricFields:
      type: array
      items:
        $ref: '#/components/schemas/PropertyMetricField'
      uniqueItems: true
      description: >-
        Optional metric field names. Omit or pass an empty array for
        identity-only rows.
    PropertyFilters:
      type: object
      description: >-
        Filters used to select properties and constrain the metric aggregation
        date range.
      properties:
        amenity_ids:
          anyOf:
            - type: array
              items:
                anyOf:
                  - type: integer
                  - type: string
            - type: string
          description: Amenity IDs that matching properties must include.
        bathroom_count:
          anyOf:
            - type: array
              items:
                type: number
            - type: string
          description: Bathroom counts that matching properties must offer.
        bedroom_count:
          anyOf:
            - type: array
              items:
                type: integer
            - type: string
          description: Bedroom counts that matching properties must offer.
        city:
          type: string
          description: City for location-based property filtering. Use with state.
        collected_at_gte:
          type: string
          format: date
          description: >-
            Inclusive start date for metric data. Must be on or after
            2022-01-01.
        collected_at_lte:
          type: string
          format: date
          description: Inclusive end date for metric data. Must be on or after 2022-01-01.
        concession_percent_gte:
          type: number
          description: Minimum concession percentage, expressed as a decimal value.
        concession_percent_lte:
          type: number
          description: Maximum concession percentage, expressed as a decimal value.
        concession_value_gte:
          type: number
          description: Minimum advertised concession value in dollars.
        concession_value_lte:
          type: number
          description: Maximum advertised concession value in dollars.
        construction_state:
          anyOf:
            - type: array
              items:
                type: string
            - type: string
          description: Construction state filters such as existing or new_supply.
        exposure_gte:
          type: number
          description: Minimum exposure percentage, expressed as a decimal value.
        exposure_lte:
          type: number
          description: Maximum exposure percentage, expressed as a decimal value.
        geo_boundary_ids:
          anyOf:
            - type: array
              items:
                anyOf:
                  - type: integer
                  - type: string
            - type: string
          description: Geo boundary IDs used to limit matching properties by market.
        lat:
          type: number
          description: Latitude for radius search. Use with lng.
        leased_percent_gte:
          type: number
          description: Minimum leased percentage, expressed as a decimal value.
        leased_percent_lte:
          type: number
          description: Maximum leased percentage, expressed as a decimal value.
        lng:
          type: number
          description: Longitude for radius search. Use with lat.
        ner_gte:
          type: number
          description: Minimum net effective rent.
        ner_lte:
          type: number
          description: Maximum net effective rent.
        ner_per_sq_ft_gte:
          type: number
          description: Minimum net effective rent per square foot.
        ner_per_sq_ft_lte:
          type: number
          description: Maximum net effective rent per square foot.
        number_of_stories_gte:
          type: number
          description: Minimum property story count.
        number_of_stories_lte:
          type: number
          description: Maximum property story count.
        occupancy_gte:
          type: number
          description: Minimum modeled occupancy percentage, expressed as a decimal value.
        occupancy_lte:
          type: number
          description: Maximum modeled occupancy percentage, expressed as a decimal value.
        property_class:
          anyOf:
            - type: array
              items:
                type: string
                enum:
                  - A
                  - B
                  - C
                  - D
            - type: string
          description: 'Property class values to include. Valid values: `A`, `B`, `C`, `D`.'
        property_ids:
          type: string
          description: Comma-separated ApartmentIQ property IDs to include.
        property_type:
          anyOf:
            - type: array
              items:
                type: string
                enum:
                  - conventional
                  - student
                  - student_housing
                  - senior
                  - senior_living
                  - build_to_rent
                  - affordable
            - type: string
          description: >-
            Property type filters to include. Valid values: `conventional`,
            `student`, `student_housing`, `senior`, `senior_living`,
            `build_to_rent`, `affordable`.
        radius:
          type: number
          description: >-
            Radius in miles for lat/lng search. Values are clamped between 0 and
            30.
        renovated_units:
          type: boolean
          description: Whether matching properties must have renovated unit inventory.
        rent_gte:
          type: number
          description: Minimum advertised rent.
        rent_lte:
          type: number
          description: Maximum advertised rent.
        rent_per_sq_ft_gte:
          type: number
          description: Minimum advertised rent per square foot.
        rent_per_sq_ft_lte:
          type: number
          description: Maximum advertised rent per square foot.
        size_gte:
          type: number
          description: Minimum unit size in square feet.
        size_lte:
          type: number
          description: Maximum unit size in square feet.
        stakeholder_entity_ids:
          anyOf:
            - type: array
              items:
                anyOf:
                  - type: integer
                  - type: string
            - type: string
          description: Stakeholder entity IDs associated with matching properties.
        state:
          type: string
          description: State for location-based property filtering. Use with city.
        total_units_gte:
          type: number
          description: Minimum total property unit count.
        total_units_lte:
          type: number
          description: Maximum total property unit count.
        transaction_cap_rate_gte:
          type: number
          description: Minimum transaction capitalization rate for pro-plus users.
        transaction_cap_rate_lte:
          type: number
          description: Maximum transaction capitalization rate for pro-plus users.
        transaction_date_closed_gte:
          type: string
          format: date
          description: Inclusive earliest transaction closed date for pro-plus users.
        transaction_date_closed_lte:
          type: string
          format: date
          description: Inclusive latest transaction closed date for pro-plus users.
        transaction_price_per_unit_gte:
          type: number
          description: Minimum transaction price per unit for pro-plus users.
        transaction_price_per_unit_lte:
          type: number
          description: Maximum transaction price per unit for pro-plus users.
        unified_status:
          anyOf:
            - type: array
              items:
                type: string
                enum:
                  - stabilized
                  - planning
                  - scheduled_construction
                  - under_construction
                  - lease_up
            - type: string
          description: Unified property status values to include.
        year_built_gte:
          type: number
          description: Minimum year built.
        year_built_lte:
          type: number
          description: Maximum year built.
        zip_code:
          type: string
          description: Zip code for location-based property filtering.
      additionalProperties: false
    Pagination:
      type: object
      properties:
        current_page:
          type: integer
          description: Current page number in the result set.
        total_pages:
          type: integer
          description: Total number of pages available for the request.
        total_count:
          type: integer
          description: Total number of matching records across all pages.
        per_page:
          type: integer
          description: Maximum number of records returned per page.
      required:
        - current_page
        - total_pages
        - total_count
        - per_page
      additionalProperties: false
      description: Pagination details for list-style responses.
    Error:
      type: object
      description: Error response payload.
      properties:
        error:
          type: string
          description: Short error message.
        message:
          type: string
          description: Additional error details, when available.
        quota_limit:
          type: integer
          description: Quota limit that applied to the request, when relevant.
        quota_usage:
          type: integer
          description: Quota already used, when relevant.
      required:
        - error
      additionalProperties: true
    PropertyMetricField:
      type: string
      enum:
        - rent
        - rent_0_bed
        - rent_1_bed
        - rent_2_bed
        - rent_3_bed
        - ner
        - ner_0_bed
        - ner_1_bed
        - ner_2_bed
        - ner_3_bed
        - rent_psf
        - rent_0_bed_psf
        - rent_1_bed_psf
        - rent_2_bed_psf
        - rent_3_bed_psf
        - ner_psf
        - ner_0_bed_psf
        - ner_1_bed_psf
        - ner_2_bed_psf
        - ner_3_bed_psf
        - rent_growth_rate_yoy
        - ner_growth_rate_yoy
        - concession_value
        - concession_percent
        - days_on_market
        - occupancy_percent
        - leased_percent
        - exposure_percent
      description: Metric field to include in each property row.
  responses:
    BadRequest:
      description: The request was invalid or malformed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Unauthorized - Invalid or missing authentication.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BulkExportForbidden:
      description: >-
        Forbidden - The user lacks account access, Explore Pro access, or
        remaining bulk export quota.
    RateLimitExceeded:
      description: >-
        Rate limit exceeded. Inspect the rate limit headers and wait before
        retrying.
      headers:
        X-RateLimit-Limit:
          description: The limit that applied to the request.
          schema:
            type: string
        X-RateLimit-Reset-After:
          description: The rate limit window length, in seconds.
          schema:
            type: string
        X-RateLimit-Reset:
          description: Unix timestamp when the current window resets.
          schema:
            type: string
        Retry-After:
          description: Seconds to wait before retrying the request.
          schema:
            type: string
      content:
        text/plain:
          schema:
            type: string
          example: |
            You have exceeded the rate limit for this API.
    InternalServerError:
      description: An unexpected error occurred while processing the request.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````