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: Required Documents 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: Hot Sheet Parameters Listings: Notes Listings: Search Parameters Listings: Open Houses Listings: Photos Listings: Photos Metadata Listings: Photo Uploads Listings: Document Uploads Listings: Rental Calendar Listings: Required Documents 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: Groups News Feed: Metadata News Feed: Restrictions News Feed: Schedule News Feed: Settings News Feed: Templates Notifications Open Houses Overlays Overlays: Geometries Portals Portals: Listing Categories Portals: Metadata 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


  1. Jump Right In!
  2. Examples
  3. Listing Display
  4. MLS Data Sharing Agreements
  5. API URIs
  6. Rate Limit
  7. HTTP Headers
  8. API Clients
  9. Replication

Jump Right In!

Already Have an API Key?

We've written a simple PHP application demonstrating end-user authorization and data retrieval. Check out the project on github, poke around the source code, and run the application. If you're already set up with a web server and PHP, you should have this application up and running in minutes.



We have a growing set of API examples that will guide as you become familiar with our API. Check them out now, and check back often.


Listing Display

Be aware from the start that when you display listing data, you must follow the compliance rules defined by the MLS.

Not all listing data is suitable for display.
When using the Listings Service, you must consult the corresponding meta data services (e.g. Property Types and Standard Fields) for the PropertyType standard field and any other field where the HasList is true in the meta data.

See an example here.


MLS Data Sharing Agreements

Some MLSs having data sharing agreements, allowing a user to search listings in other MLSs. Consult the MlsId field in the standard fields service to see the MLSs whose listing data can be accessed.


The production API endpoint is located at The Authentication endpoint and Tile Information Service are located at

The API is versioned. The Listings resource for Spark® API version 1, for example, will be located at


Note: the latest API version is /v1.


Rate Limit

The API also is rate limited. If your key exceeds the rate limit, an HTTP 429 is returned along with the corresponding Spark API error code and a Retry-After header indicating the retry period. The limits are designed to be reasonable, but if you need a higher limit, please contact us.


HTTP Headers

Please include the following user agent identifier with each API request:

Header Description
User-Agent Specifies the client library being used, such as one of the supported API clients listed below. If you are using one of the API clients, there is no need to set this header manually.

API Clients

Check out our list of Spark API clients.



Special considerations often apply when replicating. If you want to replicate data using Spark API, please review our replication documentation.