> ## 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 Quota Impact

> Calculate the quota impact for a property bulk export request without recording export usage.

<Warning>Requires Explore Pro access.</Warning>



## OpenAPI

````yaml /openapi/v2/schema.json post /properties/bulk/quota_impact
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/quota_impact:
    post:
      tags:
        - Bulk
      summary: Bulk Properties Quota Impact
      description: >-
        Calculate the quota impact for a property bulk export request without
        recording export usage.


        <Warning>Requires Explore Pro access.</Warning>
      operationId: createV2PropertiesBulkQuotaImpact
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkPropertiesQuotaImpactRequest'
            example:
              account_id: '{account_id}'
              property_filters:
                total_units_gte: 100
              fields:
                - rent
              page: 1
              per_page: 50
      responses:
        '200':
          description: Estimated property bulk export quota impact.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkPropertiesQuotaImpactResponse'
              example:
                total_quota: 5000
                consumed_quota: 1280
                requested_records: 50
                new_records: 32
                prev_records: 18
                expected_new_consumed_quota: 1312
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ExploreAccessForbidden'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    BulkPropertiesQuotaImpactRequest:
      type: object
      description: >-
        Request contract for calculating property bulk export quota impact
        without recording export usage.
      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
    BulkPropertiesQuotaImpactResponse:
      type: object
      properties:
        total_quota:
          type: integer
          description: Total property export quota available for the account.
        consumed_quota:
          type: integer
          description: Property export quota already consumed before this request.
        requested_records:
          type: integer
          description: Number of unique property records included in this request.
        new_records:
          type: integer
          description: Requested property records that have not previously consumed quota.
        prev_records:
          type: integer
          description: Requested property records that have already consumed quota.
        expected_new_consumed_quota:
          type: integer
          description: >-
            Projected consumed quota after exporting the new records in this
            request.
      required:
        - total_quota
        - consumed_quota
        - requested_records
        - new_records
        - prev_records
        - expected_new_consumed_quota
      additionalProperties: false
      description: Estimated quota impact for a property bulk export request.
    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
    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'
    ExploreAccessForbidden:
      description: Forbidden - The user lacks account access or Explore Pro access.
    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

````