Obtain OAuth 2.0 client credentials from your MLS or RESO-certified data provider and exchange them for an access token using the client credentials flow
Identify the base URL for your MLS's RESO Web API endpoint — this varies per MLS and is typically provided in onboarding documentation
Construct an OData $filter expression using RESO Data Dictionary field names, e.g., ?$filter=ListPrice ge 300000 and ListPrice le 600000 and StandardStatus eq 'Active'
Add $select to limit returned fields, $top and $skip (or $skiptoken for server-side paging) to paginate, and $orderby to sort results
Send a GET request to /Property with your filter and inspect the @odata.nextLink field in the response to retrieve subsequent pages
Parse the value array in the JSON response; each element is a RESO Data Dictionary-compliant property record
Known gotchas
Field names are case-sensitive and must match the RESO Data Dictionary exactly — MLS-specific custom fields are typically prefixed and not portable across systems
Server-side paging via $skiptoken is required for large result sets; using only $skip for deep pagination will often fail or time out on large MLS datasets
Access is gated by your MLS membership and data-use agreement; the same credentials will not work across different MLS boards
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