Wahi Search API

The Search API from Wahi — 1 operation(s) for search.

Operations 1

GET /search Search for property listings, including flats, houses, condos, and apartments for sale, rent, or lease. #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/wahi-search-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

wahi-search-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Listing Search API
  description: The Listing Search API enables users to find property listings that match specific criteria.
  version: 1.0.0
servers:
- url: https://api.prod.wahi.com/gpt
tags:
- name: Search
paths:
  /search:
    get:
      operationId: searchListings
      summary: Search for property listings, including flats, houses, condos, and apartments for sale, rent, or lease.
      parameters:
      - in: query
        name: first
        schema:
          type: integer
        description: Retrieve the first X items in the result set.
        required: false
        example: 10
      - in: query
        name: last
        schema:
          type: integer
        description: Retrieve the last X items in the result set.
        required: false
        example: 42
      - in: query
        name: sortBy
        description: Sort results based on a specific attribute.
        schema:
          type: string
          enum:
          - relevance
          - date
          - distance
          - listDate
          - listPrice
          - price
          - soldDate
          - updatedOn
          default: relevance
        required: false
      - in: query
        name: sortOrder
        description: Specify the sort order - ascending (asc) or descending (desc).
        schema:
          type: string
          enum:
          - asc
          - desc
          default: desc
        required: false
      - in: query
        name: active
        description: Filter results by active listings. By default, returns active listings only. If set to false, it returns sold listings only.
        schema:
          type: boolean
          default: true
        required: false
      - in: query
        name: coordinatesLatitude
        description: Latitude coordinate for geographic filtering.
        schema:
          type: number
          format: float
        required: false
      - in: query
        name: coordinatesLongitude
        description: Longitude coordinate for geographic filtering.
        schema:
          type: number
          format: float
        required: false
      - in: query
        name: distance
        description: Filter results by the distance from the specified coordinates. The distance unit is meters.
        schema:
          type: number
          format: float
        required: false
      - in: query
        name: maxPrice
        schema:
          type: number
          format: float
          description: Filter results by a maximum price in CAD.
        required: false
      - in: query
        name: minPrice
        schema:
          type: number
          format: float
          description: Filter results by a minimum price in CAD.
        required: false
      - in: query
        name: minBeds
        description: Filter results by a minimum number of bedrooms.
        schema:
          type: number
        required: false
      - in: query
        name: maxBeds
        description: Filter results by a maximum number of bedrooms.
        schema:
          type: number
        required: false
      - in: query
        name: minBaths
        description: Filter results by a minimum number of bathrooms.
        schema:
          type: number
        required: false
      - in: query
        name: maxBaths
        description: Filter results by a maximum number of bathrooms.
        schema:
          type: number
        required: false
      - in: query
        name: highestRatedSchools
        description: Filter listings by Fraser Institute School Rating with a score greater than or equal to 7.
        schema:
          type: boolean
        required: false
      - in: query
        name: searchString
        description: A search query string to find listings matching specific keywords or phrases.
        schema:
          type: string
        required: false
      - in: query
        name: propertyTypes
        description: Filter listings by specific property types.
        schema:
          type: array
          items:
            type: string
            enum:
            - Apartment
            - Detached
            - SemiDetached
            - Townhouse
            - Condominium
            - Land
            - Other
        required: false
      - in: query
        name: listingType
        description: Filter listings by sale or rent.
        schema:
          type: string
          enum:
          - Sale
          - Rent
        required: false
      - in: query
        name: garage
        description: Filter listings that include a garage.
        schema:
          type: boolean
        required: false
      - in: query
        name: fireplace
        description: Filter listings that include a fireplace.
        schema:
          type: boolean
        required: false
      - in: query
        name: airConditioning
        description: Filter listings that include air conditioning.
        schema:
          type: boolean
        required: false
      - in: query
        name: allowPets
        description: Filter listings that allow pets.
        schema:
          type: boolean
        required: false
      - in: query
        name: newlyAdded
        description: Filter listings that have been recently added.
        schema:
          type: boolean
        required: false
      - in: query
        name: minLotDepth
        description: Filter listings by minimum lot depth (in meters).
        schema:
          type: integer
        required: false
      - in: query
        name: maxLotDepth
        description: Filter listings by maximum lot depth (in meters).
        schema:
          type: integer
        required: false
      - in: query
        name: minLotWidth
        description: Filter listings by minimum lot width (in meters).
        schema:
          type: integer
        required: false
      - in: query
        name: maxLotWidth
        description: Filter listings by maximum lot width (in meters).
        schema:
          type: integer
        required: false
      - in: query
        name: minParkings
        description: Filter listings by minimum number of parking spaces.
        schema:
          type: integer
        required: false
      - in: query
        name: minSquareFt
        description: Filter listings by minimum square footage.
        schema:
          type: integer
        required: false
      - in: query
        name: maxSquareFt
        description: Filter listings by maximum square footage.
        schema:
          type: integer
        required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListingsResponse'
      tags:
      - Search
components:
  schemas:
    Listing:
      type: object
      description: A single property listing with its details.
      properties:
        mlsId:
          type: string
          description: The unique identifier for the property listing in MLS board.
        listPrice:
          type: number
          format: float
          description: The listing price in CAD.
        annualTaxAmount:
          type: number
          format: float
          description: The annual tax amount in CAD.
        coordinates:
          $ref: '#/components/schemas/Coordinates'
        geoZoneSeoPath:
          type: string
          description: The breadcrumb hierarchy path from province/state to neighborhood.
        highestRatedSchool:
          type: number
          format: float
          description: The rating of the highest-rated school nearby.
        listDate:
          type: string
          format: date-time
          description: The date the property was listed.
        soldPrice:
          type: number
          format: float
          description: The price the property was sold for, if applicable.
        soldDate:
          type: string
          format: date-time
          description: The date the property was sold, if applicable.
        address:
          $ref: '#/components/schemas/Address'
        numBedrooms:
          type: number
          format: float
          description: The total number of bedrooms in the property.
        numBedroomsFull:
          type: number
          format: float
          description: The number of full-size bedrooms in the property.
        numBedroomsPlus:
          type: number
          format: float
          description: The number of additional rooms that can be used as bedrooms.
        numBathrooms:
          type: number
          format: float
          description: The total number of bathrooms in the property.
        numBathroomsFull:
          type: number
          format: float
          description: The number of full-size bathrooms in the property.
        numBathroomsPlus:
          type: number
          format: float
          description: The number of additional rooms that can be used as bathrooms.
        numParkingSpaces:
          type: number
          format: float
          description: The number of parking spaces available at the property.
        detailsPropertyType:
          type: string
          description: The detailed property type description. More specific than the property type.
        type:
          type: string
          enum:
          - Sale
          - Rent
          description: The type of listing, either for sale or for rent.
        url:
          type: string
          description: The URL to access the listing page.
        coverImage:
          type: string
          description: The main image of the property listing.
        sqft:
          type: string
          description: The square footage of the property, displayed as a unique value (X), range (X-X), or comparative value (<X).
    ListingsResponse:
      title: ListingsResponse
      type: object
      description: The response object containing an array of property listings.
      properties:
        listings:
          title: Listings
          description: An array of property listings.
          type: array
          items:
            $ref: '#/components/schemas/Listing'
    Coordinates:
      type: object
      description: Latitude and longitude coordinates of a location.
      properties:
        latitude:
          type: number
          format: float
        longitude:
          type: number
          format: float
    Address:
      type: object
      description: Detailed address information for a property listing.
      properties:
        area:
          type: string
          description: The area where the property is located.
        city:
          type: string
          description: The city where the property is located.
        country:
          type: string
          description: The country where the property is located.
        district:
          type: string
          description: The district where the property is located.
        majorIntersection:
          type: string
          description: The nearest major intersection to the property.
        neighborhood:
          type: string
          description: The neighborhood where the property is located.
        streetDirection:
          type: string
          description: The direction the street is facing.
        streetName:
          type: string
          description: The name of the street where the property is located.
        streetNumber:
          type: string
          description: The street number of the property.
        streetSuffix:
          type: string
          description: The suffix for the street name (e.g., "Avenue" or "Street").
        unitNumber:
          type: string
          description: The unit number of the property, if applicable.
        zip:
          type: string
          description: The postal code of the property.
        state:
          type: string
          description: The state or province where the property is located.