RESO Tools

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

7
Packages
433+
Tests
3
DB Backends
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
odata-client
validation
odata-expression-parser
Reference Server
Your RESO Server
certification
data-generator
Libraries

Core Libraries

Stable
@reso-standards/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.
41 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.
97 tests · Zero dependencies
View →
@reso-standards/odata-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.
101 tests · Depends on odata-expression-parser
View →
Tools

Developer Tools

Tools
@reso-standards/data-generator
Generate realistic sample real estate data for testing. Creates properties, agents, offices, media, and more that conform to the RESO Data Dictionary. Use the CLI or import as a library.
69 tests · CLI + Library
View →
@reso-standards/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.
49 tests · Certification
View →
Reference Implementation

RESO Reference Server

OData 4.01
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.
76 tests · PostgreSQL · MongoDB · SQLite · Docker
View →
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 certification
npx reso-cert-add-edit \
  --url http://localhost:8080 \
  --resource Property \
  --payloads ./add-edit/sample-payloads \
  --auth-token admin-token
Learn More