> ## 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.

# Search Geo Boundaries

> Search market geo boundaries by text query.

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



## OpenAPI

````yaml /openapi/v2/schema.json post /geo_boundaries/search
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:
  /geo_boundaries/search:
    post:
      tags:
        - Markets
      summary: Search Geo Boundaries
      description: |-
        Search market geo boundaries by text query.

        <Warning>Requires Explore Pro access.</Warning>
      operationId: searchV2GeoBoundaries
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GeoBoundarySearchRequest'
            example:
              account_id: '{account_id}'
              query: Raleigh
              geo_types:
                - MSA
              limit: 5
      responses:
        '200':
          description: Matching market geo boundaries.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeoBoundarySearchResponse'
              example:
                markets:
                  - id: 4127
                    name: Raleigh-Cary, NC
                    description: Raleigh-Cary, NC Metro Area
                    centroid:
                      - 35.7796
                      - -78.6382
                    place_type: null
                    geo_type: MSA
                  - id: 90114
                    name: Downtown Raleigh
                    description: Downtown Raleigh submarket
                    centroid:
                      - 35.7789
                      - -78.6389
                    place_type: neighborhood
                    geo_type: Submarket
        '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:
    GeoBoundarySearchRequest:
      type: object
      properties:
        account_id:
          $ref: '#/components/schemas/AccountId'
        query:
          type: string
          description: Search term.
        geo_types:
          type: array
          items:
            type: string
            enum:
              - Custom
              - MSA
              - BespokeSubmarket
              - CensusPlace
              - Neighborhood
              - County
              - ZipCode
              - State
          description: >-
            Frontend geo types to include. Defaults to market geo types when
            omitted. Valid values: `Custom`, `MSA`, `BespokeSubmarket`,
            `CensusPlace`, `Neighborhood`, `County`, `ZipCode`, `State`.
        limit:
          type: integer
          minimum: 1
          description: Maximum number of markets to return. Defaults to 10.
      required:
        - account_id
        - query
      additionalProperties: false
    GeoBoundarySearchResponse:
      type: object
      properties:
        markets:
          type: array
          items:
            $ref: '#/components/schemas/GeoBoundaryMarket'
          description: Markets and geographies matching the search query.
      required:
        - markets
      additionalProperties: false
      description: Geo-boundary search results.
    AccountId:
      anyOf:
        - type: integer
        - type: string
      description: ApartmentIQ account ID used to set the request account context.
    GeoBoundaryMarket:
      type: object
      properties:
        id:
          type: integer
          description: ApartmentIQ geo-boundary ID.
        name:
          type:
            - string
            - 'null'
          description: Display name for the market or geography.
        description:
          type:
            - string
            - 'null'
          description: Additional label or context for the geography, when available.
        centroid:
          type:
            - array
            - 'null'
          items:
            type: number
          description: >-
            Longitude and latitude for the center of the geography, when
            available.
        place_type:
          type:
            - string
            - 'null'
          description: Human-readable place type for the geography.
        geo_type:
          type:
            - string
            - 'null'
          description: ApartmentIQ geography type, such as MSA, Submarket, or Zip.
      required:
        - id
        - name
        - description
        - centroid
        - place_type
        - geo_type
      additionalProperties: false
      description: Market or geography returned by geo-boundary search.
    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
  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

````