MLS Grid · Authentication Profile
Mls Grid Authentication
Authentication
MLS Grid secures its APIs with http across 1 declared security scheme, as derived from its OpenAPI definitions.
Real EstateUnited StatesMLSRESOProperty ListingsIDXPropTechODataData Licensing
Methods: http
Schemes: 1
OAuth flows:
API key in:
Security Schemes
bearerAuth http
scheme: bearer
· in: header ()
Source
Authentication Profile
generated: '2026-07-26'
method: searched
source: https://docs.mlsgrid.com/master.md
docs: https://docs.mlsgrid.com/master.md#authentication
note: >-
No OpenAPI or OData $metadata document could be retrieved anonymously (every anonymous call to
api.mlsgrid.com returns HTTP 401), so this profile is read from the public documentation rather
than derived from a machine-readable contract.
summary:
types:
- http
api_key_in: []
oauth2_flows: []
self_serve: false
schemes:
- name: bearerAuth
type: http
scheme: bearer
bearerFormat: OAuth 2.0 access token (long-lived)
in: header
header: Authorization
value_template: 'Bearer <access_token>'
description: >-
MLS Grid describes its scheme as "a simplified Oauth 2 authentication schema with long term
tokens" — there is no token endpoint and no authorization-code round trip. Trust is established
out of band through the subscription sign-up process; the token is generated inside the MLS Grid
web application and pasted into the Authorization header.
sources:
- https://docs.mlsgrid.com/master.md
- https://docs.mlsgrid.com/api-documentation/api-version-2.0.md
issuance:
self_serve: false
flow: >-
1) Accept the MLS Grid Master Data License Agreement through the MLS Grid online licensing
portal. 2) Have a data subscription created and a licensee added. 3) Be approved by the
originating MLS. Only then is an API token generated and presented on the token tab when viewing
a subscription in the MLS Grid web application.
console: https://app.mlsgrid.com/
license_agreement: https://www.mlsgrid.com/s/MLS-GRID-Data-License-Agreement.pdf
rotation: >-
Contact support@mlsgrid.com to have the token re-generated; regeneration invalidates the old
token. No self-service rotation endpoint is documented.
expiry: Long-lived; no documented TTL or refresh flow.
additional_requirements:
- requirement: gzip
detail: >-
Every request must send an Accept-Encoding header containing gzip. Without it the service
returns HTTP 400 "COMPRESSION REQUIRED" before it evaluates authentication.
source: https://docs.mlsgrid.com/api-documentation/api-version-2.0.md
- requirement: media-user-agent
detail: >-
Requests that download media from a MediaURL must send an HTTP User-Agent header whose value is
the OAuth 2 access token itself. From 2026-06-01 any other User-Agent is denied media access.
source: https://docs.mlsgrid.com/releases/changes-to-mls-grid-media-access.md
scopes:
documented: false
note: >-
No OAuth scope surface is published. Authorization is expressed per record in the payload
(MlgCanUse use-case array and the MlgCanView license flag) and per subscription (feed type:
IDX / VOW / BO / PT), not as token scopes.
discovery:
probed:
- url: https://api.mlsgrid.com/.well-known/openid-configuration
status: 401
- url: https://app.mlsgrid.com/.well-known/openid-configuration
status: 200
note: Returns the web application's HTML SPA shell, not an OIDC discovery document.
- url: https://app.mlsgrid.com/.well-known/oauth-authorization-server
status: 200
note: Returns the web application's HTML SPA shell, not an RFC 8414 metadata document.
- url: https://www.mlsgrid.com/.well-known/openid-configuration
status: 404
openid_connect: false
rfc8414: false
probed_on: '2026-07-26'