Developer Documentation
Platform Overview
API Services
Overview Accounts Accounts: Associations Accounts: Metadata Accounts: Profile Appstore: Users Broker Distributions Broker Tours Consumers Consumers: Linked Agents Contacts Contacts: Activity Contacts: Export Contacts: Tags Contacts: Portal Accounts Developers: Identities Developers: Keys Developers: Authorizations Developers: Billing Summary Developers: Change History Developers: Domains Developers: News Feed Webhooks Developers: Roles Developers: Syndications Developers: Templates Developers: Usage Detail Developers: Usage Summary Devices Flexmls: Email Links Flexmls: Listing Meta Origins Flexmls: Listing Meta Translations Flexmls: Listing Meta Field List Translations Flexmls: Listing Reports Flexmls: Mapping Layers Flexmls: Mapping Shapegen IDX IDX Links Listing Carts Listing Carts: Portal/VOW Carts Incomplete Listings Incomplete Listings: Documents Incomplete Listings: Documents Metadata Incomplete Listings: Document Uploads Incomplete Listings: Floor Plans Incomplete Listings: FloPlans Incomplete Listings: Photos Incomplete Listings: Photos Metadata Incomplete Listings: Photo Uploads Incomplete Listings: Rooms Incomplete Listings: Tickets Incomplete Listings: Units Incomplete Listings: Videos Incomplete Listings: Videos Metadata Incomplete Listings: Virtual Tours Incomplete Listings: Virtual Tours Metadata Listings Listings: Clusters Listings: Documents Listings: Documents Metadata Listings: Floor Plans Listings: FloPlans Listings: Historical Listings: History Listings: Notes Listings: Search Parameters Listings: Open Houses Listings: Photos Listings: Photos Metadata Listings: Photo Uploads Listings: Document Uploads Listings: Rental Calendar Listings: Rooms Listings: Rules Listings: Tour of Homes Listings: Tickets Listings: Units Listings: Validation Listings: Videos Listings: Videos Metadata Listings: Virtual Tours Listings: Virtual Tours Metadata Listing Meta: Custom Fields Listing Meta: Custom Field Groups Listing Meta: Field Order Listing Meta: Field Relations Listing Meta: Property Types Listing Meta: Rooms Listing Meta: Standard Fields Listing Meta: Units Registered Listings Market Statistics News Feed News Feed: Curation News Feed: Events News Feed: Metadata News Feed: Restrictions News Feed: Schedule News Feed: Settings News Feed: Templates Open Houses Overlays Overlays: Shapes Portals Preferences Saved Searches Saved Searches: Provided Saved Searches: Restrictions Saved Searches: Tags Search Templates: Quick Searches Search Templates: Views Search Templates: Sorts Shared Links System Info System Info: Languages System Info: Search Templates
Supporting Documentation
Terms of Use

Which API is Right for You?

FBS offers two APIs: the Spark® API and our RESO Web API.

Our RESO Web API is a set of endpoints nested within the Spark API. Both APIs share authentication and credentials, so developers can try each with a single API key and choose the one that best fits their needs.*


Spark API vs. RESO Web API Comparison


Spark API



Offers a much greater degree of data standardization than RETS, with a large group of consistent Spark API fields standardized across MLSs.

Uses RESO Data Dictionary fields to provide the highest possible degree of standardization and field name consistency between MLSs. Meant to support interoperability of code used across multiple MLSs.

Writes back to Flexmls

Supports writes to certain services based on role and user.

No. Our RESO Web API is read-only.


Provides many features that are not available via the RESO Web API, including but not limited to:

Supports standard services, including but not limited to:

Real-time requests

Both the Spark API and our RESO Web API are fast enough to support live requests for data. Request exactly what you need and pass it directly through to a website or app.


Yes. Both APIs have separate replication endpoints and support for replication with pagination parameters. Note that replication is only allowed for API keys with a replication role.

Standard role support

Yes. Both APIs use standard roles to determine which data should be available, including the following roles:

Encoded field names

No. Both standard and custom fields are provided in human-readable format.

Field names and values are provided in human-readable format whenever possible. Custom field names and certain field values are encoded to comply with RESO Web API transport specifications, and can be decoded to human-readable values via metadata translations.


* The only time an API key can't be used with both APIs is if it is based on a custom template created by MLS or FBS staff. In those instances, the API key is limited to using the RESO Web API; the Spark API will be inaccessible.