---
title: "Flexmls and Spark API: real estate website data"
description: "Distinguish a Flexmls IDX product from a Spark API build. Check data roles, MLS approval, credentials, display requirements, and ongoing maintenance."
canonical: "https://scalewithsearch.com/articles/flexmls-spark-api-agent-website"
---
## 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)

# Flexmls and Spark API: plan a real estate website data connection

Decide whether you need a supported IDX product or a custom data integration before commissioning a Flexmls-connected website. A raw API feed still needs an approved application and a maintained website implementation.

Spark describes data access through developer applications under MLS permissions. [Spark platform overview, fetched 2026.10.22](https://sparkplatform.com/docs/overview/api).

This guide prepares a technical scope. It does not establish that your MLS has approved the proposed data use.

## Is a Spark API connection a finished property-search website?

No. FBS distinguishes developer data feeds from ready-made Flexmls IDX products. [Spark product distinction, fetched 2026.10.22](https://sparkplatform.com/docs/overview/set_up_access).

Ask the provider which route they propose and what website work remains. Keep the feed, search interface, inquiry route, and maintenance responsibilities explicit.

## What should a real estate agent decide before hiring a developer?

Define the public pages and visitor tasks the data must support. List property search, property details, saved information, and contact actions only when the proposed project needs them. This keeps the integration brief tied to a website outcome that can be inspected.

## Does using Flexmls prove your website has API permission?

No. Spark's setup documentation requires an API key and describes an MLS-controlled approval process. [Spark access requirements, fetched 2026.10.22](https://sparkplatform.com/docs/overview/set_up_access).

Have the provider obtain written confirmation for the intended application and data use. Keep access UNRESOLVED until that confirmation exists.

## Who should handle developer registration?

Assign registration and technical access preparation to the responsible developer. Spark documents developer registration before requesting a suitable data plan. [Spark developer access sequence, fetched 2026.10.22](https://sparkplatform.com/docs/overview/set_up_access).

Record the registered party and your business's continuing access needs in the project handoff.

## Does demo access establish which live listings you will receive?

No. Spark says its example data demonstrates the API rather than establishing live-key data availability. [Spark demo-access limitation, fetched 2026.10.22](https://sparkplatform.com/docs/overview/set_up_access).

Use a demo to assess the proposed implementation. Verify actual permitted fields and coverage separately before accepting the production scope.

## Which role fits public listing display?

Spark identifies the IDX role for public-facing listing use. [Spark API-role guidance, fetched 2026.10.22](https://sparkplatform.com/docs/overview/set_up_access).

Ask the developer to map the proposed public pages to the approved key and use. Record any display request that remains outside the confirmed permission.

## Can private-access data appear on a public page?

Spark says data pulled with a Private role key must not be displayed publicly. [Spark Private-role boundary, fetched 2026.10.22](https://sparkplatform.com/docs/overview/set_up_access).

Require the technical design to separate private processing from public responses. Have the reviewer inspect sample public output before publication.

## Does a VOW project need the same brief as an ordinary IDX page?

Specify it separately. Spark distinguishes VOW access and its identified, signed-in visitor context from ordinary IDX display. [Spark VOW distinction, fetched 2026.10.22](https://sparkplatform.com/docs/overview/set_up_access).

Have the provider explain the intended permissions and visitor journey. Keep unresolved access decisions out of a public-page implementation.

## Where should you confirm data-plan availability and cost?

Confirm them with the actual MLS data plan and provider. Spark says plan availability is controlled by each MLS. [Spark Datamart guidance, fetched 2026.10.22](https://sparkplatform.com/docs/overview/set_up_access).

Current charges and terms for your project remain UNRESOLVED here. Request a dated written account of them before authorizing any purchase.

## Can the website place API credentials in browser code?

Do not put protected tokens or client secrets in browser code. Spark's OAuth documentation instructs developers to keep those credentials accessible only to the application. [Spark credential handling, fetched 2026.10.22](https://dev.sparkplatform.com/docs/authentication/oauth2_authentication).

Ask the developer to explain the server-side boundary and how credential access will be controlled during handoff.

## Which authentication method should the developer use?

Use the method supported by the issued key and current provider instructions. Spark's access guide distinguishes bearer-token keys from OpenID Connect keys. [Spark key-type guidance, fetched 2026.10.22](https://sparkplatform.com/docs/overview/set_up_access).

Request a written decision for the actual key. Avoid choosing a method from an unrelated tutorial.

## What should the listing-display review include?

Inspect both summary cards and property-detail views. Spark documents MLS-defined display requirements and separate summary and detail contexts. [Spark listing display rules, fetched 2026.10.22](https://sparkplatform.com/docs/supporting_documentation/compliance).

Require the provider to show how each approved view implements the applicable requirements. A working search request alone does not establish the finished display.

## Where do documented display requirements appear in the API?

Spark documents general requirements through System Info and listing-specific requirements with listing data. [Spark compliance data, fetched 2026.10.22](https://sparkplatform.com/docs/supporting_documentation/compliance).

Ask the developer to identify how the application reads and renders those fields. Save representative examples with the acceptance record, without treating them as universal MLS rules.

## Can a generic disclaimer settle every display requirement?

Do not treat generic text as evidence that all applicable requirements are satisfied. Spark distinguishes general and listing-specific display information. [Spark display requirement structure, fetched 2026.10.22](https://sparkplatform.com/docs/supporting_documentation/compliance).

Have the responsible reviewer compare the actual output with the approved data agreement and provider requirements. Legal interpretation remains outside this technical brief.

## What should happen when a listing changes or disappears?

Specify the permitted refresh, removal, and visitor behavior in the project scope. Have the provider source those requirements from the applicable data agreement. Require a demonstration of a changed-status and removed-listing case using authorized fixtures or test data.

## Should a visitor still be able to ask a question during an API outage?

Keep an approved contact route available when property data cannot load. Require an understandable failure state rather than presenting old information as current. Ask the developer to demonstrate how the page distinguishes unavailable data from an empty search result.

## How should you verify the inquiry handoff?

Match a controlled inquiry to the property context and intended recipient. Test the search result, detail page, and ordinary contact alternative where included. Record the received question and its page context separately from evidence that the property feed loaded.

## Does API access establish search-engine indexing quality?

Treat indexing as a separate website acceptance topic. Ask the provider to inspect the rendered pages, canonical destinations, crawl controls, and useful page content. This is a proposed review requirement. API permission alone does not provide evidence of how the final website renders.

## What should the provider show before production approval?

Require the approved access purpose, permitted data examples, rendered views, protected credential boundary, and failure behavior. Use an agreed preview for demonstrations. Record unsupported fields or unresolved permissions before they become assumptions in a public template.

## Who should maintain the connection after launch?

Assign a named technical owner for failures, provider changes, credential handling, and data-display repairs. Record the escalation route and support terms. Keep website ownership and the supplier's implementation responsibilities clear enough that another approved provider can understand the arrangement.

## What should a replacement-provider handoff contain?

Require application ownership details, configuration instructions, dependency information, source files where agreed, and confirmed data-access terms. Keep secrets in an approved protected store. Ask the MLS and provider to confirm any transfer or reapproval requirements rather than assuming existing access transfers automatically.

## What should you send with a Flexmls website scope request?

Send the desired public pages, visitor tasks, existing product details, proposed provider, and available access documentation. Mark permissions, charges, and approval timing UNRESOLVED where necessary. Request the integration and its acceptance evidence through the [written website scope](/work) before authorizing account or data-plan changes.


[Real estate website guides](/for/real-estate).

- [Delayed marketing exempt listings: check IDX website display](/articles/delayed-marketing-exempt-listings-idx-display)
- [IDX versus VOW: choose the listing display your real estate website needs](/articles/idx-versus-vow-website-display)
- [Seller IDX opt-out: brief the website suppression checks](/articles/seller-idx-opt-out-website-suppression)


## Related: Real estate

- [Delayed marketing exempt listings: check IDX website display](/articles/delayed-marketing-exempt-listings-idx-display)
- [IDX versus VOW: choose the listing display your real estate website needs](/articles/idx-versus-vow-website-display)
- [Seller IDX opt-out: brief the website suppression checks](/articles/seller-idx-opt-out-website-suppression)

----

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

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