---
title: "RESO Web API: An Agent Website Integration Brief"
description: "Brief a RESO Web API website integration with approved MLS access, authentication, listing queries, maintenance ownership, and received buyer inquiries."
canonical: "https://scalewithsearch.com/articles/reso-web-api-agent-website-brief"
---
## Site navigation

- [Scale With Search](https://scalewithsearch.com/)
- Services
  - Services
    - [AI systems](https://scalewithsearch.com/ai-systems)
    - [Site build](https://scalewithsearch.com/work#site-build)
    - [Whole website fix](https://scalewithsearch.com/work#whole-website-fix)
    - [Content library with SEO](https://scalewithsearch.com/work#content-library)
    - [Working session](https://scalewithsearch.com/audit)
  - Start here
    - [Send your brief](https://scalewithsearch.com/work#send-your-brief)
    - [Example scope](https://scalewithsearch.com/work#review-the-example-scope)
  - [Prices and terms](https://scalewithsearch.com/work#prices-and-terms)
- Industries
  - Real estate
    - [Real estate agents and teams](https://scalewithsearch.com/for/real-estate)
    - [Platforms, ownership, and IDX](https://scalewithsearch.com/for/real-estate/real-estate-website-platforms-ownership-idx)
    - [Search, content, and AI](https://scalewithsearch.com/for/real-estate/real-estate-search-content-ai)
    - [Inquiries, campaigns, and handoffs](https://scalewithsearch.com/for/real-estate/real-estate-website-inquiries-campaigns-handoffs)
    - [Buyer, seller, and local pages](https://scalewithsearch.com/for/real-estate/real-estate-buyer-seller-local-resources)
    - [Rules, privacy, and trust](https://scalewithsearch.com/for/real-estate/real-estate-website-rules-privacy-trust)
  - Browse by business
    - [Trades and home services](https://scalewithsearch.com/for/#group-trades)
    - [Health, wellness, and animal care](https://scalewithsearch.com/for/#group-practices)
    - [Law, finance, and IT](https://scalewithsearch.com/for/#group-professional)
    - [Marketing and SEO agencies](https://scalewithsearch.com/for/#group-agencies)
    - [Shops and manufacturers](https://scalewithsearch.com/for/#group-manufacturing)
    - [Restaurants, shops, studios, and nonprofits](https://scalewithsearch.com/for/#group-local-services)
  - Chiropractic practices
    - [Chiropractic and wellness practices](https://scalewithsearch.com/for/chiropractic-and-wellness-practices)
    - [Chiropractic and physical therapy clinics](https://scalewithsearch.com/for/chiropractic-and-physical-therapy-clinics)
  - [All industries](https://scalewithsearch.com/for/)
- Resources
  - Free tools
    - [AI readiness check](https://scalewithsearch.com/check)
    - [Free tools](https://scalewithsearch.com/tools/)
    - [Free Starter Kit](https://scalewithsearch.com/kit/business-memory-starter-kit.zip)
  - Guides
    - [AI-native library](https://scalewithsearch.com/ai-native)
    - [Industry intelligence](https://scalewithsearch.com/intelligence)
    - [Office job guides](https://scalewithsearch.com/guides/)
    - [Business memory](https://scalewithsearch.com/articles/business-memory-for-ai-agents-guide)
    - [Agent governance](https://scalewithsearch.com/articles/ai-agent-governance-guide-small-business)
    - [Migration and ownership](https://scalewithsearch.com/articles/leaving-vendor-ai-memory-guide)
  - Articles
    - [All articles](https://scalewithsearch.com/articles/)
    - [What changed](https://scalewithsearch.com/changes/)
- About
  - Evidence
    - [Proof](https://scalewithsearch.com/proof)
  - Scale With Search
    - [About](https://scalewithsearch.com/about)
    - [How it works](https://scalewithsearch.com/how-it-works)

# RESO Web API: what to specify for your agent website

For an accepted MLS connection, specify search behavior, field mapping, the authentication owner, and failure tests. Give the developer a brief that distinguishes an empty search from a service outage. Require evidence for those agreed behaviors before accepting the website integration.

RESO Web API is a standard for moving real estate data between systems. RESO creates the standard; it does not supply MLS listings. Access comes through the MLS and its provider after agreement to the MLS's licensing policies. [RESO Web API, checked 2026.10.13](https://www.reso.org/reso-web-api/).

For your agent website, specify the approved feed, search behavior, technical owner, and route for a visitor's property question. Require evidence for each before accepting the integration. The requirements below are recommendations for your website brief, with technical facts cited beside them.

## Separate the data connection from the website experience

RESO describes the Web API as using RESTful design and OData. In plain language, it standardizes how software requests real estate data. [RESO's technical overview, checked 2026.10.13](https://www.reso.org/reso-web-api/).

Ask your current website provider which service supplies listing data and who maintains its connection. If you already have working search, require a specific reason for replacing that connection. Name the visitor task to improve before commissioning custom development.

A useful brief might require buyers to search within your approved coverage, open a property, and send you a question about it. Keep seller inquiries available through a separate contact route. Assess both against their received messages, without assuming that choosing an API standard produces inquiries.

## Record approval before specifying public display

Treat access approval as a prerequisite. Use the [MLS API access guide](/articles/mls-api-access-for-owned-agent-website) for the application, signatories, licensing, and secure credential handoff.

Bring the dated approval record naming the MLS, brokerage, domain, provider, and permitted use into this brief. Confirm attribution, permitted fields, status visibility, and removal requirements with the MLS and broker. Rules differ by MLS. [NAR IDX overview, checked 2026.10.13](https://www.nar.realtor/about-nar/policies/internet-data-exchange-idx), [RESO access guidance, checked 2026.10.13](https://www.reso.org/reso-web-api/).

Use the [NAR public overview, checked 2026.10.13](https://www.nar.realtor/about-nar/policies/internet-data-exchange-idx) as a starting reference. Keep the site-specific approval record as the requirement for this connection.

## Give the developer a connection record without secrets

RESO's linked Web API Core specification lists OAuth2 bearer tokens and client credentials as supported authentication methods. [RESO Web API Core, security section, checked 2026.10.13](https://github.com/RESOStandards/transport/blob/a99fb6ca307208280ac51bca1f573e89cb67b202/proposals/web-api-core.md#29-security).

Require the developer to identify your provider's actual authentication flow. Record the service address, supported version, authorized account, documentation URL, and person responsible for credential renewal. Have the provider confirm these details for your connection.

Keep tokens and client secrets out of the public page, inquiry form, and shared brief. Agree a secure transfer method with the developer. IETF bearer-token guidance requires protection against disclosure in storage and transport. [RFC 6750, October 2012, checked 2026.10.13](https://www.rfc-editor.org/rfc/rfc6750#section-5).

Specify a server-side connection for private feed credentials. Require evidence that browser-visible requests, page source, and public error messages expose none of them. Name who can revoke access when the developer or provider changes.

## Translate search requirements into documented queries

FBS Spark provides a concrete implementation example. Its documentation identifies `Property`, `Media`, and `OpenHouse` resources, a `$metadata` endpoint, and property retrieval by `ListingKey`. Those details describe Spark's service. [Spark RESO overview, checked 2026.10.13](https://sparkplatform.com/docs/reso/overview).

Ask your developer to inspect your authorized service's metadata and document the resources it supports. Require a mapping from each website control to the provider's actual fields. Keep missing fields and unsupported functions visible in the brief.

Spark documents `$filter` for searching, `$select` for requested attributes, `$orderby` for sorting, and pagination parameters. Its limits depend on the access role. [Spark request parameters, checked 2026.10.13](https://sparkplatform.com/docs/reso/request_parameters).

Use the following table to agree behavior before the developer writes the queries:

| Website task | Developer requirement | Evidence to request |
| --- | --- | --- |
| Search your service area | Define approved coverage and mapped location filters | Results compared with a provider-approved reference |
| Filter property preferences | Map each control to supported fields and values | Matching results and clear handling of unsupported choices |
| Sort and move through results | Document sort order, page size, and continuation behavior | Tests for omissions and repeated results |
| Open a property | Preserve its stable identifier and load its approved details | Search result and detail page refer to the same property |
| Show permitted images | Confirm the supported media relationship and local display approval | Correct images and reviewed display |
| Search without a match | Give a clear empty result and a contact option | Empty-result test without a false service-error message |

These are proposed checks. Confirm every display choice with your MLS and broker under their current rules. Rules differ by MLS; the [NAR overview, checked 2026.10.13](https://www.nar.realtor/about-nar/policies/internet-data-exchange-idx) supplies no site-specific approval.

- [RESO Data Dictionary: listing fields for your real estate website](/articles/reso-data-dictionary-agent-listing-fields)

## Name the maintenance owner and failure behavior

Ask whether your implementation queries the provider directly or maintains an authorized local copy. RESO distinguishes live queries from replication, which copies data and requests subsequent changes. [RESO definitions, checked 2026.10.13](https://www.reso.org/reso-web-api/).

Require a written owner for updates, provider failures, credential expiry, and support escalation. Have that owner explain how the implementation follows the approved update and removal requirements. Leave detailed replication design to its separate technical brief.

Agree what visitors see when search is unavailable. Keep a verified contact route usable. Require a service error to remain distinguishable from an empty search. Ask for failure and recovery evidence before acceptance.

- [Replace a RETS feed without losing your website's inquiry paths](/articles/rets-to-reso-website-feed-migration)

## Test the property question through to its recipient

Require the property inquiry to preserve the listing identifier, page address, visitor's question, and usable reply details. Name the receiving person and destination. Keep a general buyer question available when the visitor has no selected property.

Run marked tests using contact details you control. Compare the submitted values with the message received. Record the listing display, form confirmation, and destination receipt separately. Repeat the check for the seller contact route.

Include these final checks in the handover:

| Acceptance check | Evidence to retain |
| --- | --- |
| Approved display | MLS and broker review against their dated requirements |
| Listing search and detail | Passed cases from the agreed query table |
| Private credentials | Reviewed browser-visible output and public error handling |
| Feed interruption and recovery | Observed failure state, fallback, and restored search |
| Buyer property question | Received identifier, page, complete question, and reply details |
| Seller inquiry | Separate received message at its agreed destination |
| Ownership and maintenance | Account owner, documentation, support contact, and exit instructions |

Treat any failed check as unfinished work. These criteria report no completed integration or tested inquiry on your present website.

<a id="bring-the-integration-brief-into-your-website-scope"></a>

## Scope the RESO Web API integration

The Web API brief names approved access, required search behavior, and a maintenance owner. Resolve the proposed connection at [whole website fix: Web API integrations](/for/real-estate). Listing-feed costs are separate scope decisions under the whole website fix.

[Published website scope, checked 2026.10.13](https://scalewithsearch.com/work). [Web API integrations, published scope, checked 2026.10.14](https://scalewithsearch.com/work).

- [How MLS listings appear on your website, and what search can miss.](/articles/idx-mls)
- [Do you need IDX on your real estate website?](/articles/do-you-need-idx-real-estate-website)
- [Test the seller inquiry path on your real estate website](/articles/seller-inquiry-path-agent-website)


## Related: Real estate

- [How MLS listings appear on your website, and what search can miss.](/articles/idx-mls)
- [Do you need IDX on your real estate website?](/articles/do-you-need-idx-real-estate-website)
- [Test the seller inquiry path on your real estate website](/articles/seller-inquiry-path-agent-website)

----

```text
                  .|########||.                                       .|########||.                                       .|########||.
               |##||.      .||##|.                                 |##||.      .||##|.                                 |##||.      .||##|.
             |#|.              .|#|.                             |#|.              .|#|.                             |#|.              .|#|.
           |#|                    |#|                          |#|                    |#|                          |#|                    |#|
         .#|                        |#.                      .#|                        |#.                      .#|                        |#.
        .#.                          .#|                    .#.                          .#|                    .#.                          .#|
       |#.                            .#|                  |#.                            .#|                  |#.                            .#|
      |#             ......             #|                |#             ......             #|                |#             ......             #|
     .#           ||#########|           #|              .#           ||#########|           #|              .#           ||#########|           #|
    .#.         |######||######|.        .#.            .#.         |######||######|.        .#.            .#.         |######||######|.        .#.
    #.        .##|###|##|#|######|        .#            #.        .##|###|##|#|######|        .#            #.        .##|###|##|#|######|        .#
   ||        |##|#||||||||||||#||#|        ||          ||        |##|#||||||||||||#||#|        ||          ||        |##|#||||||||||||#||#|        ||
   #        |#||||||||||||||||||||#|        #.         #        |#||||||||||||||||||||#|        #.         #        |#||||||||||||||||||||#|        #.
  ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||
  #       .#||||||||||||||||||||||||#|       #        #       .#||||||||||||||||||||||||#|       #        #       .#||||||||||||||||||||||||#|       #
 ||   ....|||#||||||##|#|||#|#||##||||....|. ||      ||   ....|||#||||||##|#|||#|#||##||||....|. ||      ||   ....|||#||||||##|#|||#|#||##||||....|. ||
 #.  .  ....|#  ....#|||   ||| .#|||  ....#. .#      #.  .  ....|#  ....#|||   ||| .#|||  ....#. .#      #.  .  ....|#  ....#|||   ||| .#|||  ....#. .#
 #   .  ||||#| .#####||  . .#| .#|||  ||||#   #.     #   .  ||||#| .#####||  . .#| .#|||  ||||#   #.     #   .  ||||#| .#####||  . .#| .#|||  ||||#   #.
.|   |||||  #. |#|||||. ||  #. |#||. .|||||   ||    .|   |||||  #. |#|||||. ||  #. |#||. .|||||   ||    .|   |||||  #. |#|||||. ||  #. |#||. .|||||   ||
||   |....  #. ....|#.      |. ...|. ....||   ||    ||   |....  #. ....|#.      |. ...|. ....||   ||    ||   |....  #. ....|#.      |. ...|. ....||   ||
#.  .||||||##||||||##||####|||||||#||||||#|   .#    #.  .||||||##||||||##||####|||||||#||||||#|   .#    #.  .||||||##||||||##||####|||||||#||||||#|   .#
#    .||####|###########################|.     #    #    .||####|###########################|.     #    #    .||####|###########################|.     #
#      .#||||||.#.|| # |. ..# #| #|||||#|      #    #      .#||||||.#.|| # |. ..# #| #|||||#|      #    #      .#||||||.#.|| # |. ..# #| #|||||#|      #
#      .#|||||| ..  |# ## |#| ...#|#|||#|      #    #      .#|||||| ..  |# ## |#| ...#|#|||#|      #    #      .#|||||| ..  |# ## |#| ...#|#|||#|      #
#      .#|||#|# .# .#| #| ##|.#..#|||||#|      #    #      .#|||#|# .# .#| #| ##|.#..#|||||#|      #    #      .#|||#|# .# .#| #| ##|.#..#|||||#|      #
#      .#||||||############|######|||||#|      #    #      .#||||||############|######|||||#|      #    #      .#||||||############|######|||||#|      #
#   |...||#||||||#||||#|#||||||#|||||#||| |.|  #    #   |...||#||||||#||||#|#||||||#|||||#||| |.|  #    #   |...||#||||||#||||#|#||||||#|||||#||| |.|  #
#. .. ||||# .|||##|.  |#| .|| || .|||#. #|  # .#    #. .. ||||# .|||##|.  |#| .|| || .|||#. #|  # .#    #. .. ||||# .|||##|.  |#| .|| || .|||#. #|  # .#
|| |  ...||  ...##| |  #| .|. |. #####  .. .| ||    || |  ...||  ...##| |  #| .|. |. #####  .. .| ||    || |  ...||  ...##| |  #| .|. |. #####  .. .| ||
|| ||||| || ||||#|  .  |. |. |#. ||||| |#| || ||    || ||||| || ||||#|  .  |. |. |#. ||||| |#| || ||    || ||||| || ||||#|  .  |. |. |#. ||||| |#| || ||
.# |.....#|....|#.||||.|||##.|#|....||.#||.#. #.    .# |.....#|....|#.||||.|||##.|#|....||.#||.#. #.    .# |.....#|....|#.||||.|||##.|#|....||.#||.#. #.
 #.|||||||#############################| ||| .#      #.|||||||#############################| ||| .#      #.|||||||#############################| ||| .#
 ||       ##||#||#||||||#||#||#||#||##.      ||      ||       ##||#||#||||||#||#||#||#||##.      ||      ||       ##||#||#||||||#||#||#||#||##.      ||
  #       .#|||||||||#||#|||||||||||#|       #        #       .#|||||||||#||#|||||||||||#|       #        #       .#|||||||||#||#|||||||||||#|       #
  ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||
  .#        |#||||||||||||||||||||#|        #.        .#        |#||||||||||||||||||||#|        #.        .#        |#||||||||||||||||||||#|        #.
   ||        |#||||||||||||||||||#|        ||          ||        |#||||||||||||||||||#|        ||          ||        |#||||||||||||||||||#|        ||
    #.        .######|#|#########|        .#            #.        .######|#|#########|        .#            #.        .######|#|#########|        .#
    .#.         |#####||||#####|         .#.            .#.         |#####||||#####|         .#.            .#.         |#####||||#####|         .#.
     |#           ||########||           #.              |#           ||########||           #.              |#           ||########||           #.
      |#             ......             #|                |#             ......             #|                |#             ......             #|
       |#.                            .#|                  |#.                            .#|                  |#.                            .#|
        |#.                          .#.                    |#.                          .#.                    |#.                          .#.
         .#|                        |#.                      .#|                        |#.                      .#|                        |#.
           |#|                    |#|                          |#|                    |#|                          |#|                    |#|
            .|#|.              .|#|.                            .|#|.              .|#|.                            .|#|.              .|#|.
               |##||.      .||##|                                  |##||.      .||##|                                  |##||.      .||##|
                 .||########||.                                      .||########||.                                      .||########||.

Scale With Search  2026  [scalewithsearch.com](https://scalewithsearch.com)
```
