Determine which data plan you need (IDX for public display, Private for back-office, or Broker/Agent Own Data for broker-scoped access) and enroll through your Flexmls MLS board
Obtain your Spark API key from the MLS's data plan enrollment; contact api-support@fbsdata.com if your MLS does not yet offer the needed plan
Authenticate by including your API key in the X-SparkApi-User-Agent header or via OAuth 2.0 hybrid session flow depending on the application type
Issue GET requests to /v1/listings with SparkQL filter expressions; SparkQL supports standard field comparisons, geospatial proximity, and multi-value field matching
Page through results using _limit and _offset parameters, and use _pagination=1 to receive total count metadata
For photo retrieval, access the /v1/listings/{id}/photos endpoint; photos are returned as URL arrays with width and height metadata
Known gotchas
API key roles strictly govern what data is accessible; an IDX key cannot retrieve MLS-confidential fields and attempting to do so will return empty or redacted values, not an error
Spark API access is MLS-specific — a key issued by one Flexmls MLS board does not grant access to listings from another board, even if both use Flexmls
SparkQL syntax differs from OData $filter; code written for RESO Web API filters will not work without translation
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp