Keller Williams Search API

The Search API from Keller Williams — 5 operation(s) for search.

Operations 7

GET /listings Listings search #
POST /listings Create Listings #
DELETE /listings/{list_uuid} Delete Listings #
PATCH /listings/{list_uuid} Update Listings #
GET /listings/lookup-table Find table #
GET /listings/region/{regionId} Region details by ID #
GET /listings/orgs/{orgId}/people People Orgs #

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/keller-williams-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

keller-williams-search-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: KW Listings Search API
  description: The Listings service returns all Keller Williams Listing Service listings specific to an agent. This is not a substitution for or tied to any Multiple Listings Services database records.
  contact:
    name: Kellerwilliams
    url: https://kw.com
  version: '2'
servers:
- url: https://partners.api.kw.com/v2
  description: Production
- url: https://sandbox.partners.api.kw.com/v2
  description: Sandbox
tags:
- name: Search
paths:
  /listings:
    get:
      tags:
      - Search
      summary: Listings search
      description: This endpoint returns listings.
      operationId: listings-read
      parameters:
      - name: Authorization
        in: header
        required: true
        description: 'Basic token is created by base 64 encoding your credentials: <Basic base64Encode(API_KEY:API_SECRET)>'
        schema:
          type: string
      - name: sort
        in: query
        required: false
        schema:
          type: number
        description: Could be Ascendant or Descendant (-). Visit [Filtering and Sorting](/filtering-and-sorting) for more details.
      - name: page[offset]
        in: query
        required: false
        schema:
          type: number
          default: 1
        description: "Page Number you would like to retrieve. Offset defaults to 1. Requesting an offset less than 1 will default to 1 as this is the starting set of listings.\n`GET ?page[offset]=2&page[limit]=12`.- **[Page](http://jsonapi.org/format/#fetching-pagination)\n\n  This retreives the second page.\n  `GET ?page[offset]=2"
      - name: limit
        in: query
        required: false
        schema:
          type: number
          default: 10
        description: Number of listings return size. `GET ?limit=10`.  Limit should be 100 or less and use offset get the next set of listings
      - name: offset
        in: query
        required: false
        schema:
          type: number
          default: 1
        description: "The next set of listings number you would like to retrieve. Offset defaults to 1. Requesting an offset less than 1 will default to 1 as this is the starting set of listings.\n`GET ?offset=2&limit]=10`.- **[Page](http://jsonapi.org/format/#fetching-pagination)\n\n  This retreives the second set of listings from 11-20.\n  `GET ?offset=2"
      - name: page[limit]
        in: query
        required: false
        schema:
          type: number
          default: 10
        description: "Page size. [Size](http://jsonapi.org/format/#fetching-pagination)\n  `GET ?page[limit]=12`.  Page limit should be 100 or less and use offset get the next set of listings"
      - in: query
        name: filter[:attribute_name][:operator]=:value
        schema:
          type: string
        description: Dynamic filtering. Visit [Filtering and Sorting](/filtering-and-sorting) for more details.
      - in: query
        name: scroll_id
        schema:
          type: string
        description: "Scroll ID of the search. `GET ?scroll=1m&scroll_id=FGluY2x1ZGVfY29udGV4dF91dWlkDnF1ZXJ5VGhlbkZldGNoBRR6c0ZfTzNjQmppWDR5MjB6azI1aQAAAAAAMeioFnpRQTVMVHdTVEVXeVZkT3Zfc0Jld2cUNVh0X08zY0JuSF9zWmtIY2t3MWkAAAAAADHa0hY5M1VrWkM0dlRHYWUyLUtsZXczQ0RRFFBYZF9PM2NCdEZiektwOW5rM0poAAAAAAAx4SUWZnNoTzVEQzBSZFdldGFaY01vVTJkURRObGxfTzNjQjlSaU40a2JaazdKagAAAAAAMca2FmVuS3dpSXNQU3o2ZUFlZnBwNjREM2cUTjFsX08zY0I5UmlONGtiWms3Sm0AAAAAADHGtxZlbkt3aUlzUFN6NmVBZWZwcDY0RDNn`\n\t\nUse this parameter in conjunction with scroll."
      - in: query
        name: scroll
        schema:
          type: string
          default: 1m
        description: Period to retain the search context for scrolling. `GET ?scroll=1m`
      responses:
        '200':
          $ref: '#/components/responses/ListingsResponse'
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
        '500':
          $ref: '#/components/responses/InternalServerErrorResponse'
        '502':
          $ref: '#/components/responses/UnhandledErrorResponse'
    post:
      tags:
      - Search
      summary: Create Listings
      description: 'This endpoint creates listings.  Note: Avoid using special charater like % in the listing description which will create problems.'
      operationId: listings-create
      parameters:
      - name: Authorization
        in: header
        required: true
        description: 'Basic token is created by base 64 encoding your credentials: <Basic base64Encode(API_KEY:API_SECRET)>'
        schema:
          type: string
      requestBody:
        $ref: '#/components/requestBodies/ListingsCreate'
      responses:
        '201':
          $ref: '#/components/responses/ListingsCreated'
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
        '500':
          $ref: '#/components/responses/InternalServerErrorResponse'
        '502':
          $ref: '#/components/responses/UnhandledErrorResponse'
  /listings/{list_uuid}:
    delete:
      tags:
      - Search
      summary: Delete Listings
      description: This endpoint removes listings.
      operationId: listings-details-delete
      parameters:
      - name: Authorization
        in: header
        required: true
        description: 'Basic token is created by base 64 encoding your credentials: <Basic base64Encode(API_KEY:API_SECRET)>'
        schema:
          type: string
      - name: list_uuid
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/DeleteResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
        '403':
          $ref: '#/components/responses/ForbiddenErrorResponse'
        '500':
          $ref: '#/components/responses/InternalServerErrorResponse'
        '502':
          $ref: '#/components/responses/UnhandledErrorResponse'
    patch:
      tags:
      - Search
      summary: Update Listings
      description: This endpoint updates listings.
      operationId: listings-details-update
      parameters:
      - name: Authorization
        in: header
        required: true
        description: 'Basic token is created by base 64 encoding your credentials: <Basic base64Encode(API_KEY:API_SECRET)>'
        schema:
          type: string
      - name: list_uuid
        in: path
        required: true
        schema:
          type: string
      requestBody:
        $ref: '#/components/requestBodies/ListingsUpdate'
      responses:
        '200':
          $ref: '#/components/responses/ListingsCreated'
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
        '403':
          $ref: '#/components/responses/ForbiddenErrorResponse'
        '500':
          $ref: '#/components/responses/InternalServerErrorResponse'
        '502':
          $ref: '#/components/responses/UnhandledErrorResponse'
  /listings/lookup-table:
    get:
      tags:
      - Search
      summary: Find table
      description: This endpoint returns table
      operationId: listings-read-by-table
      parameters:
      - name: Authorization
        in: header
        required: true
        description: 'Basic token is created by base 64 encoding your credentials: <Basic base64Encode(API_KEY:API_SECRET)>'
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/LookupTableResponse'
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '500':
          $ref: '#/components/responses/InternalServerErrorResponse'
        '502':
          $ref: '#/components/responses/UnhandledErrorResponse'
  /listings/region/{regionId}:
    get:
      tags:
      - Search
      summary: Region details by ID
      description: This endpoint returns region details by ID.
      operationId: listings-region-details-read
      parameters:
      - name: Authorization
        in: header
        required: true
        description: 'Basic token is created by base 64 encoding your credentials: <Basic base64Encode(API_KEY:API_SECRET)>'
        schema:
          type: string
      - name: regionId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/ListingsResponse'
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '500':
          $ref: '#/components/responses/InternalServerErrorResponse'
        '502':
          $ref: '#/components/responses/UnhandledErrorResponse'
  /listings/orgs/{orgId}/people:
    get:
      tags:
      - Search
      summary: People Orgs
      operationId: listings-region-people-read
      description: This endpoint returns People Orgs by ID.
      parameters:
      - name: Authorization
        in: header
        required: true
        description: 'Basic token is created by base 64 encoding your credentials: <Basic base64Encode(API_KEY:API_SECRET)>'
        schema:
          type: string
      - name: orgId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/OrgsPeople'
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedErrorResponse'
        '500':
          $ref: '#/components/responses/InternalServerErrorResponse'
        '502':
          $ref: '#/components/responses/UnhandledErrorResponse'
components:
  schemas:
    LookupTableHitCountry:
      type: object
      properties:
        _index:
          type: string
        _type:
          type: string
        _id:
          type: string
          enum:
          - country
        _score:
          type: integer
        _source:
          type: object
          properties:
            country:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: integer
                  label:
                    type: string
                  value:
                    type: string
    ListingsResponse:
      type: object
      properties:
        took:
          type: integer
        timed_out:
          type: boolean
        _shards:
          type: object
          properties:
            total:
              type: integer
            successful:
              type: integer
            skipped:
              type: integer
            failed:
              type: integer
        hits:
          type: object
          properties:
            total:
              type: object
              properties:
                value:
                  type: integer
                relation:
                  type: string
            max_score:
              type: number
            hits:
              type: array
              items:
                type: object
                properties:
                  _index:
                    type: string
                  _type:
                    type: string
                  _id:
                    type: string
                  _score:
                    type: string
                  _source:
                    type: object
                    properties:
                      brokerage:
                        type: object
                        properties:
                          email:
                            type: string
                          name:
                            type: string
                          phone:
                            type: string
                      close_dt:
                        type: string
                      close_price:
                        type: string
                      co_list_agent_office:
                        type: string
                      co_list_kw_uid:
                        type: string
                      co_sell_agent_office:
                        type: string
                      commissions:
                        type: string
                      contract_expiry_dt:
                        type: string
                      contract_expiry_dt_lock:
                        type: boolean
                      currency_code:
                        type: string
                      current_list_price:
                        type: integer
                      expenses:
                        type: string
                      full_bath:
                        type: integer
                      geo:
                        type: object
                        properties:
                          address_id:
                            type: array
                            items:
                              type: integer
                          city:
                            type: array
                            items:
                              type: integer
                          county:
                            type: array
                            items:
                              type: integer
                          mcd:
                            type: array
                            items:
                              type: integer
                          neighborhood:
                            type: array
                            items:
                              type: integer
                          postal_code:
                            type: array
                            items:
                              type: integer
                          property_id:
                            type: integer
                          school_attendance:
                            type: array
                            items:
                              type: integer
                          school_district:
                            type: array
                            items:
                              type: integer
                          state:
                            type: array
                            items:
                              type: integer
                      green_home:
                        type: string
                      half_bath:
                        type: integer
                      history:
                        type: string
                      hoa:
                        type: array
                        items:
                          type: object
                          properties:
                            assoc_amenities:
                              type: array
                              items:
                                type: string
                            assoc_fee:
                              type: integer
                            assoc_fee_freq:
                              type: string
                            assoc_fee_freq_search:
                              type: string
                            assoc_fee_includes:
                              type: array
                              items:
                                type: string
                            assoc_fee_search:
                              type: string
                            assoc_req:
                              type: string
                            has_assoc:
                              type: boolean
                      is_deleted:
                        type: boolean
                      is_kww_listing:
                        type: boolean
                      kw_agent:
                        type: boolean
                      kw_attribute:
                        type: string
                      kw_created_at:
                        type: string
                      kw_expiry_dt:
                        type: string
                      kw_expiry_dt_lock:
                        type: boolean
                      kw_listing:
                        type: boolean
                      kw_mc:
                        type: boolean
                      kw_updated_at:
                        type: string
                      kw_updated_by:
                        type: string
                      kwls_status:
                        type: string
                      kww_region:
                        type: string
                      lease_price:
                        type: string
                      list_address:
                        type: object
                        properties:
                          address:
                            type: string
                          city:
                            type: string
                          coordinates_gp:
                            type: object
                            properties:
                              lat:
                                type: number
                              lon:
                                type: number
                          coordinates_gs:
                            type: object
                            properties:
                              coordinates:
                                type: array
                                items:
                                  type: number
                              type:
                                type: string
                          country:
                            type: string
                          full_street_address:
                            type: string
                          postal_code:
                            type: string
                          state_prov:
                            type: string
                          street_direction:
                            type: string
                          street_name:
                            type: string
                          street_number:
                            type: string
                          street_post_dir:
                            type: string
                          street_suffix:
                            type: string
                          unit_number:
                            type: string
                          zip_4:
                            type: string
                      list_agent_office:
                        type: object
                        properties:
                          list_agent_email:
                            type: string
                          list_agent_fax:
                            type: string
                          list_agent_first_name:
                            type: string
                          list_agent_full_name:
                            type: string
                          list_agent_key:
                            type: string
                          list_agent_key_2:
                            type: string
                          list_agent_last_name:
                            type: string
                          list_agent_mls_id:
                            type: string
                          list_agent_mls_id_2:
                            type: string
                          list_agent_office_phone:
                            type: string
                          list_agent_preferred_phone:
                            type: string
                          list_agent_url:
                            type: string
                          list_office_address:
                            type: string
                          list_office_email:
                            type: string
                          list_office_fax:
                            type: string
                          list_office_key:
                            type: string
                          list_office_key_2:
                            type: string
                          list_office_mls_id:
                            type: string
                          list_office_mls_id_2:
                            type: string
                          list_office_name:
                            type: string
                          list_office_phone:
                            type: string
                          list_office_url:
                            type: string
                      list_category:
                        type: string
                      list_category_id:
                        type: integer
                      list_desc:
                        type: string
                      list_desc_en:
                        type: string
                      list_desc_lock:
                        type: boolean
                      list_dt:
                        type: string
                      list_id:
                        type: integer
                      list_key:
                        type: string
                      list_kw_uid:
                        type: string
                      list_status:
                        type: string
                      list_status_id:
                        type: integer
                      list_status_lock:
                        type: boolean
                      list_type:
                        type: string
                      list_type_id:
                        type: integer
                      list_uuid:
                        type: string
                      living_area:
                        type: integer
                      living_area_units:
                        type: string
                      location:
                        type: object
                        properties:
                          county:
                            type: string
                          municipality:
                            type: string
                          neighborhoods:
                            type: string
                          prop_directions:
                            type: string
                          region:
                            type: string
                          schools:
                            type: string
                          subdivision:
                            type: string
                          township:
                            type: string
                          zoning:
                            type: string
                      lot_depth_area:
                        type: string
                      lot_depth_units:
                        type: string
                      lot_front_area:
                        type: string
                      lot_front_units:
                        type: string
                      lot_size_area:
                        type: number
                      lot_size_units:
                        type: string
                      luxury_home:
                        type: boolean
                      manual_entry:
                        type: boolean
                      market_center:
                        type: string
                      marketing_info:
                        type: object
                        properties:
                          courtesy_label:
                            type: string
                          courtesy_location:
                            type: string
                          courtesy_of_detail:
                            type: string
                          courtesy_of_list:
                            type: string
                          display_address:
                            type: boolean
                          display_internet:
                            type: boolean
                          display_list_price:
                            type: boolean
                          display_listing:
                            type: boolean
                          display_photo:
                            type: boolean
                          legal_accept_disclaimer:
                            type: boolean
                          legal_description:
                            type: string
                          legal_exclusive_rights:
                            type: boolean
                          living_area_display:
                            type: string
                          photo_courtesy_required:
                            type: boolean
                          vow:
                            type: boolean
                      mls_id:
                        type: string
                      mls_name:
                        type: string
                      mls_number:
                        type: string
                      mls_source_id:
                        type: integer
                      mls_updated_at:
                        type: string
                      office_size:
                        type: string
                      office_size_units:
                        type: string
                      one_quarter_bath:
                        type: integer
                      open_houses:
                        type: string
                      open_houses_lock:
                        type: boolean
                      original_list_category:
                        type: string
                      original_list_category_id:
                        type: integer
                      original_list_price:
                        type: integer
                      other_area_size:
                        type: string
                      other_area_size_units:
                        type: string
                      partial_bath:
                        type: integer
                      photos:
                        type: array
                        items:
                          type: object
                          properties:
                            kw_ph_url:
                              type: string
                            ph_label:
                              type: string
                            ph_order:
                              type: number
                            ph_short_desc:
                              type: string
                            ph_tags:
                              type: string
                            ph_updated_at:
                              type: string
                            ph_url:
                              type: string
                      photos_lock:
                        type: boolean
                      price_history:
                        type: array
                        items:
                          type: object
                          properties:
                            current_list_price:
                              type: integer
                            in_use:
                              type: boolean
                            percent_change:
                              type: integer
                            previous_list_price:
                              type: integer
                            price_updated_at:
                              type: string
                      price_tax_suffix:
                        type: boolean
                      prop_subtype:
                        type: string
                      prop_subtype_id:
                        type: integer
                      prop_subtype_lock:
                        type: boolean
                      prop_type:
                        type: string
                      prop_type_id:
                        type: integer
                      prop_type_lock:
                        type: boolean
                      property_address:
                        type: object
                        properties:
                          address:
                            type: string
                          city_long:
                            type: string
                          city_short:
                            type: string
                          coordinates_gp:
                            type: object
                            properties:
                              lat:
                                type: number
                              lon:
                                type: number
                          coordinates_gs:
                            type: object
                            properties:
                              coordinates:
                                type: array
                                items:
                                  type: number
                              type:
                                type: string
                          country_long:
                            type: string
                          country_short:
                            type: string
                          county:
                            type: string
                          county_fips:
                            type: string
                          full_street_address:
                            type: string
                          habitation_name:
                            type: string
                          level_number:
                            type: string
                          postal_code_long:
                            type: string
                          postal_code_short:
                            type: string
                          rural_address:
                            type: string
                          state_prov_short:
                            type: string
                          street_direction:
                            type: string
                          street_long:
                            type: string
                          street_number:
                            type: string
                          street_suffix_short:
                            type: string
                          unit_number:
                            type: string
                          unit_type:
                            type: string
                          zip_4:
                            type: string
                      raw:
                        type: object
                        properties:
                          co_list_kw_uid:
                            type: string
                          co_list_market_center:
                            type: string
                          display_listing:
                            type: string
                          lambda_updated_at:
                            type: string
                          list_kw_uid:
                            type: string
                          list_status:
                            type: string
                          list_status_id:
                            type: string
                          market_center:
                            type: string
                          parking_total:
                            type: string
                          prop_type:
                            type: string
                          prop_type_id:
                            type: string
                          signature_id:
                            type: string
                          source_list_id:
                            type: string
                          trace_id:
                            type: string
                      retail_size:
                        type: string
                      retail_size_units:
                        type: string
                      sell_agent_office:
                        type: string
                      sell_kw_uid:
                        type: string
                      source_system_name:
                        type: string
                      special_list_condition:
                        type: string
                      structure:
                        type: object
                        properties:
                          appliances:
                            type: array
                            items:
                              type: string
                          architectural_styles:
                            type: string
                          basement_desc:
                            type: string
                          building_name:
                            type: string
                          construction_materials:
                            type: array
                            items:
                              type: string
                          dining_room_desc:
                            type: string
                      

# --- truncated at 32 KB (131 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/keller-williams/refs/heads/main/openapi/keller-williams-search-api-openapi.yml