RESO Tools

Open-source testing, client SDK, and reference implementation tools for the RESO Web API specification.

8
Packages
2,785
Tests
4
Compliance Suites
RESO (Real Estate Standards Organization) defines how real estate data is exchanged between MLSs, brokerages, and technology providers. These open-source tools help developers build, test, and certify RESO-compliant servers and applications – so listing data flows reliably across the industry.

MLS & Vendor Developers

Building a RESO-compliant server? Use the reference implementation as a starting point and run compliance tests locally.

App Developers

Consuming RESO APIs? Use the client SDK to query listings, validate responses, and parse OData filters.

RESO Certification

Preparing for certification? Run the same compliance tests used in production against your server.

How the packages fit together
Your Application
↓
reso-client
reso-validation
odata-expression-parser
↓
Reference Server
Your RESO Server
↓
reso-certification
reso-mcp-server
Libraries

Core Libraries

Stable
@reso-standards/reso-common
The shared RESO metadata model and projections: the ResoMetadata shape, pure helpers and the EDMX generator. Runs in a browser or in Node.
41 tests · Zero dependencies
View →
@reso-standards/reso-metadata-utils
OData metadata processing: CSDL parsing, XSD and semantic validation, EDMX to metadata-report serialization, and live metadata fetching.
156 tests · CSDL + EDMX
View →
@reso-standards/reso-validation
Validate real estate data against RESO metadata rules. Works in any JS runtime – Node.js, browsers, or edge functions. Use it to check field types, enumerations, and required fields before sending or accepting data.
98 tests · Zero dependencies
View →
@reso-standards/odata-expression-parser
Parse OData $filter expressions like ListPrice ge 200000 and City eq 'Austin' into a structured syntax tree. Useful for building query UIs, validating filters, or translating queries between systems.
180 tests · Zero dependencies
View →
@reso-standards/reso-client
Query RESO servers from TypeScript or JavaScript. Build OData URLs, fetch listings, parse metadata, and validate responses – without hand-crafting HTTP requests or dealing with protocol details.
118 tests · OAuth2 Client Credentials
View →
Tools

Developer Tools

Tools
@reso-standards/reso-certification
Run the same compliance tests used in RESO certification. Covers Web API Core, Data Dictionary, Add/Edit (RCP-010), and EntityEvent (RCP-027) endorsements. Test your server before submitting for certification.
250 tests · 4 Compliance Suites
View →
reso-mcp-server
MCP server that exposes RESO tools for AI agents. Query OData servers, parse metadata, validate records, and run compliance tests – all through the Model Context Protocol.
10 Tools · 75 tests · Reference implementation, not on npm
View →
Reference Implementation

RESO Reference Server

OData 4.01
@reso-standards/reso-reference-server
A fully working RESO Web API server you can run locally with Docker. Point it at the RESO Data Dictionary metadata and it automatically creates database tables, REST endpoints, Swagger documentation, and a React UI for browsing data. Use it as a reference for building your own server, or as a test target for compliance tools.
254 tests · PostgreSQL · MongoDB · SQLite · Docker
View →
Desktop Client

RESO Desktop Client

Preview
RESO Desktop Client
Electron desktop application for browsing any RESO-compliant OData server. Includes OAuth2 Client Credentials and Bearer Token authentication, metadata caching, and an optional built-in reference server for local test data. No Docker required.
SQLite · Electron · macOS / Windows / Linux
Download →
Getting Started

Prerequisites

Git
Node.js 22+ (for libraries & CLI)

Run the Reference Server

This starts a RESO Web API server with PostgreSQL, seeds it with sample listings, and gives you a Swagger UI and React frontend to explore.

git clone https://github.com/RESOStandards/reso-tools.git
cd reso-tools/reso-reference-server
docker compose up -d                      # Start server + PostgreSQL
docker compose --profile seed up          # Seed with test data

# Once running, you'll have:
#   http://localhost:8080/health       - Health check
#   http://localhost:8080/$metadata    - OData EDMX metadata
#   http://localhost:8080/api-docs     - Swagger API explorer
#   http://localhost:5173              - React UI

Run Compliance Tests

Verify your server passes RESO certification requirements. This example runs the Add/Edit endorsement tests against the local reference server.

cd reso-certification
npx reso-cert add-edit \
  --url http://localhost:8080 \
  --auth-token admin-token
Learn More