RESO (Real Estate Standards Organization) · Authentication Profile
Reso Authentication
Authentication
RESO (Real Estate Standards Organization) secures its APIs with oauth2 and http across 3 declared security schemes, as derived from its OpenAPI definitions. OAuth 2.0 is offered via the clientCredentials flow(s).
Real-EstateUnited StatesRESOMLSProperty ListingsData StandardsODataIndustry BodyIDXPropTech
Methods: oauth2, http
Schemes: 3
OAuth flows: clientCredentials
API key in: header
Security Schemes
OAuth2 Bearer Token http
scheme: bearer
OAuth2 Client Credentials oauth2
RESO Cloud MCP API key apiKey
· in: header (Authorization)
Source
Authentication Profile
generated: '2026-07-26'
method: searched
docs: https://github.com/RESOStandards/transport/blob/main/proposals/web-api-core.md
source:
- https://github.com/RESOStandards/transport/blob/main/proposals/web-api-core.md
- https://github.com/RESOStandards/reso-tools/blob/main/reso-mcp-server/doc/GUIDE.md
- https://github.com/RESOStandards/reso-tools/blob/main/reso-certification/README.md
note: >-
Two authentication stories that must be held apart. (1) The auth model RESO MANDATES for every
RESO-certified Web API server - OAuth2 Bearer tokens or OAuth2 Client Credentials over TLS 1.2+,
with credentials issued by the individual MLS, never by RESO. (2) The auth on the one endpoint
RESO itself operates - the RESO Cloud MCP Server at services.reso.org/mcp, which gates on a
static bearer API key issued by RESO on request. Derived from OpenAPI securitySchemes was not
possible: RESO publishes no OpenAPI, so this profile is transcribed from the ratified
specification text.
summary:
types: [oauth2, http]
api_key_in: [header]
oauth2_flows: [clientCredentials]
transport_security: TLS 1.2 or above (mandatory)
openid_connect: >-
Removed. "The Open ID Connect layer was previously supported by the RESO Web API. As of
Web API 1.0.2, RESO only supports Bearer tokens and Client Credentials during Certification."
scopes_published: false
schemes:
- name: OAuth2 Bearer Token
type: http
scheme: bearer
applies_to: RESO-certified Web API servers (any MLS or data provider)
required: true
spec_text: >-
"Providers MUST use either OAuth2 Bearer tokens or Client Credentials for authentication
(RCP-026)."
spec: Web API Core 2.0.0/2.1.0 (RCP-37), section on Authentication; RCP-WEBAPI-026
issuer: The individual MLS or its software provider. RESO issues no Web API credentials.
- name: OAuth2 Client Credentials
type: oauth2
flow: clientCredentials
applies_to: RESO-certified Web API servers (any MLS or data provider)
required: true
token_url: Provider-specific - each MLS publishes its own token endpoint. RESO defines no central one.
parameters: [client_id, client_secret]
spec_text: >-
"A type of authorization grant that uses a client_id and client_secret ... in order to provide a
Bearer Token upon request. This method is more resilient against man-in-the-middle attacks than
Bearer Tokens since there is an additional token request step involved, and tokens may be
expired and refreshed programmatically."
spec: Web API Core 2.0.0/2.1.0 (RCP-37)
- name: RESO Cloud MCP API key
type: apiKey
in: header
parameter: Authorization
format: 'Bearer <api-key>'
applies_to: https://services.reso.org/mcp
required: true
issuer: RESO
how_to_obtain: >-
Email dev@reso.org with name, organization and intended use case (development, testing, demo,
integration). Beta programme; keys available to RESO members and conference attendees.
self_serve: false
probe: {url: 'https://services.reso.org/mcp', anonymous_status: 401, date: '2026-07-26'}
client_support:
reso_client_sdk:
package: '@reso-standards/reso-client'
supports: [bearer token, oauth2 client credentials]
reso_cert_cli:
package: '@reso-standards/reso-certification'
resolution_order:
- 'CLI flags: --auth-token, or --client-id / --client-secret / --token-url'
- 'Config file: --config path/to/config.json (per-entry auth)'
- '.env file in the current directory'
- 'Environment variables: RESO_AUTH_TOKEN, or RESO_CLIENT_ID / RESO_CLIENT_SECRET / RESO_TOKEN_URI'
web_api_commander:
language: java
supports: [bearer token, oauth2 client credentials]
error_semantics:
'403': Returned when the selected authentication mechanism is not successful (Web API Core section 2.6.1).
access_reality: >-
Authentication is standardised; access is not. A RESO-certified endpoint proves conformance to
this OAuth2 contract and proves nothing about reachability - credentials are issued only after a
data licence is signed with the individual MLS that runs the endpoint.
Work with this as data
Every security artifact here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for security posture
4 MCP tools reach this
find_securityBrowse and filter every security artifact in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This security artifact
curl "https://apis.io/api/v1/security/reso-authentication"
All security posture
curl "https://apis.io/api/v1/security?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.