# RESO (Real Estate Standards Organization) > RESO is the United States industry body that writes and certifies the machine-readable contract > for residential real estate data. It publishes the RESO Data Dictionary (field, enumeration and > lookup vocabulary) and the RESO Web API (a profile of OData 4.0/4.01), plus the RESO Common > Format, EntityEvent replication, Push Replication with Webhooks, Validation Expressions and the > URN-based Universal Parcel Identifier. NAR Policy Statement 7.90 requires MLSs owned and operated > by associations of REALTORS to implement the Data Dictionary and Web API and adopt new releases > within one year of ratification. RESO operates no listing API and holds no listing data - it > certifies other organizations' servers. Access to real estate data always requires a signed data > licence with an individual MLS. Generated by API Evangelist from apis.yml and the artifacts in this repository, 2026-07-26. RESO publishes no llms.txt (https://www.reso.org/llms.txt returns 404). ## Two facts to hold apart - The contract is open. Specifications, reference OData EDMX metadata, Data Dictionary JSON and all tooling are anonymously downloadable from transport.reso.org and github.com/RESOStandards. - The data is not. A RESO-certified endpoint is run by a local MLS; credentials are issued only after a data licence with that MLS is signed. There is no RESO registry of endpoint base URLs. `api.reso.org` appears in the specification as an illustrative example only and does not resolve. ## Standards - [RESO Web API Core (RCP-37) v2.1.0](https://transport.reso.org/proposals/web-api-core): OData 4.0/4.01 profile. Servers MUST expose EDMX at $metadata, return JSON, use TLS 1.2+, and authenticate with OAuth2 Bearer tokens or Client Credentials. - [RESO Data Dictionary (RCP-36/40) v2.0](https://transport.reso.org/proposals/data-dictionary): standard field names, types and enumerations. 44 resources, 2,167 fields in the 2.1 reference. - [Web API Add/Edit (RCP-10) v2.0.0](https://transport.reso.org/proposals/web-api-add-edit): create, update and delete over OData POST, PATCH, DELETE. - [EntityEvent Resource and Replication (RCP-27) v2.0.2](https://transport.reso.org/proposals/entity-events) - [Push Replication with Webhooks (RCP-28) v1.0.1](https://transport.reso.org/proposals/webhooks-push) - [Validation Expressions (RCP-19) v1.0.0](https://transport.reso.org/proposals/validation-expressions) - [RESO Common Format (RCP-25) v1.7](https://transport.reso.org/proposals/reso-common-format) - [Universal Parcel Identifier (UPI) 2.0](https://www.reso.org/universal-parcel-identifier/) ## APIs - [RESO Web API](https://www.reso.org/reso-web-api/): the transport standard. No RESO-operated endpoint - every conformant server is run by an MLS or data provider. - [RESO Cloud MCP Server](https://services.reso.org/mcp): the one production endpoint RESO operates. MCP over Streamable HTTP, API-key gated (beta; request access from dev@reso.org). Tools: authenticate, query, metadata, create, update, delete, parse-filter. ## Specs and reference artifacts (in this repository) - openapi/reso-dd-2.1-enum.xml - Data Dictionary 2.1 reference OData EDMX (enumerations) - openapi/reso-dd-2.1-lookup-resource.xml - Data Dictionary 2.1 reference EDMX (Lookup Resource) - openapi/reso-dd-2.0-enum.xml, openapi/reso-dd-2.0-lookup-resource.xml - openapi/reso-dd-1.7-enum.xml, openapi/reso-dd-1.7-lookup-resource.xml - openapi/reso-dd-2.1.json, openapi/reso-dd-2.0.json, openapi/reso-dd-1.7.json - machine-readable Data Dictionary references - data-model/reso-data-model.yml - derived entity graph: 44 entities, 146 relationships from the EDMX NavigationProperty definitions - No OpenAPI: RESO publishes none. The RESO Commander can generate OpenAPI 3 from a server's EDMX. - No AsyncAPI: the event surface is specified as RCP-27/RCP-28, not as an AsyncAPI document. ## Operating knowledge (in this repository) - conventions/reso-conventions.yml - OData query options, pagination, enumerations, versioning, error envelope, rate-limit signalling. No idempotency contract is published. - errors/reso-problem-types.yml - the OData JSON error envelope and the Web API Core status table (400, 403, 404, 413, 415, 429, 500, 501). Not RFC 9457. - authentication/reso-authentication.yml - OAuth2 Bearer / Client Credentials (RCP-026), TLS 1.2+. OpenID Connect was removed in Web API 1.0.2. - lifecycle/reso-lifecycle.yml - SemVer policy, ratification process, breaking-change definition, active deprecation notices, two-year endorsement expiry, the NAR one-year adoption clock. - conformance/reso-conformance.yml - which cross-cutting standards the profile conforms to. - asyncapi/reso-webhooks.yml - the EntityEvent + webhook push event surface. - mcp/reso-mcp.yml and mcp/reso-tool-crosswalk.yml - the MCP tools and how each binds to an OData request form. - skills/ - three agent skills: query a certified server, replicate with EntityEvent, certify a server. ## Tools and SDKs - [RESO Tools](https://tools.reso.org/) - the developer portal for the open-source toolkit - [@reso-standards/reso-client](https://www.npmjs.com/package/@reso-standards/reso-client) - TypeScript OData client SDK - [@reso-standards/reso-certification](https://www.npmjs.com/package/@reso-standards/reso-certification) - certification SDK + `reso-cert` CLI - [@reso-standards/reso-reference-server](https://www.npmjs.com/package/@reso-standards/reso-reference-server) - metadata-driven reference OData server - [@reso-standards/reso-validation](https://www.npmjs.com/package/@reso-standards/reso-validation), [@reso-standards/odata-expression-parser](https://www.npmjs.com/package/@reso-standards/odata-expression-parser), [@reso-standards/reso-metadata-utils](https://www.npmjs.com/package/@reso-standards/reso-metadata-utils), [@reso-standards/reso-common](https://www.npmjs.com/package/@reso-standards/reso-common) - [reso/reso-php](https://packagist.org/packages/reso/reso-php) - PHP reference client - [RESO Commander](https://github.com/RESOStandards/web-api-commander) - legacy Java CLI and OData client; to be deprecated in favour of the RESO SDK - [UPI Builder](https://upi.reso.org/builder/) - public, no-login Universal Parcel Identifier tool ## Docs - [Transport specifications](https://transport.reso.org/) - 7 ratified standards, 14 in progress - [Versioning policy](https://transport.reso.org/versioning/) - [Recent policy changes](https://transport.reso.org/policy-changes/) - [RCP process](https://transport.reso.org/reso-rcp-process) - [Data Dictionary Wiki](https://dd.reso.org/) - browse every standard field, resource and enumeration - [Developer resources](https://www.reso.org/developer-resources/) and [developer FAQs](https://www.reso.org/developer-faqs/) - [Security audit log](https://tools.reso.org/security/) - [Release notes](https://tools.reso.org/releases/) ## Certification - [Certification programme](https://www.reso.org/certification/) - Data Dictionary 2.0, Web API Core 2.0.0 and RESO Common Format; complimentary for members - [Public certificate directory](https://www.reso.org/certificates/) - no login - [RESO Analytics portal](https://certification.reso.org/) - [Fee schedule](https://www.reso.org/certification-fee-schedule/) - Endorsements expire after two years (RESO Board policy, effective December 2025) ## Contact - dev@reso.org - developer, certification and MCP API key requests - [Support](https://www.reso.org/support/) | [Contact](https://www.reso.org/contact-us/) - [Membership](https://www.reso.org/membership/) | [Join](https://www.reso.org/join/) - [GitHub](https://github.com/RESOStandards) | [Blog](https://www.reso.org/blog/)