mlsgrid website screenshot

mlsgrid

The MLS Grid is a normalized, RESO-compliant data distribution platform that gives brokers, MLSs, and application vendors a single OData v4 Web API and one master data license agreement covering 50+ participating MLSs across the United States. Built on the RESO Data Dictionary, the MLS Grid Web API standardizes Property, Member, Office, OpenHouse, Media, and Lookup resources for IDX, VOW, broker-only, and product-development use cases, replacing the per-MLS RETS feed sprawl that historically burdened real-estate technology vendors.

1 APIs 15 Features

APIs

MLS Grid RESO Web API

Normalized, RESO Data Dictionary–compliant OData v4 Web API for incremental replication of MLS listing data — Property, Member, Office, OpenHouse, Media, and Lookup resources — ...

Collections

Pricing Plans

Mlsgrid Plans Pricing

2 plans

PLANS

Rate Limits

Mlsgrid Rate Limits

0 limits

RATE LIMITS

FinOps

Features

RESO Data Dictionary compliant entity model (Property, Member, Office, OpenHouse, Media, Lookup)
RESO Web API compliant OData v4 surface with $select, $filter, $expand, $top, $count, @odata.nextLink
Single Master Data License Agreement spanning all participating MLSs
OAuth 2.0 bearer-token authentication with long-lived tokens
Incremental replication via OriginatingSystemName + ModificationTimestamp pattern
$expand=Media,Rooms,UnitTypes for nested resource replication on Property
Standalone Media resource where the originating MLS permits (e.g. Northstar MLS)
All date fields normalized to UTC
Prefixed key fields (e.g. actris-1234567) to namespace records across MLSs
MlgCanView flag for license-driven retention and deletion handling
MlgCanUse array indicating allowed use cases (IDX, VOW, BO, PT)
50+ participating MLSs including ACTRIS, MRED, Northstar, NWMLS, REcolorado, MARIS, Heartland, Realtracs, OneKey
Quarterly compliance audits and centralized vendor management
Per-minute import cadence where the originating MLS permits
Documented rate limits (2 RPS, 7,200/hour, 40,000/24h, 4 GB/hour) with HTTP 429 on violation

Semantic Vocabularies

Mlsgrid Context

24 classes · 2 properties

JSON-LD

API Governance Rules

mlsgrid API Rules

5 rules · 2 errors 2 warnings 1 info

SPECTRAL

Example Payloads

Resources

🌐
Portal
Portal
🔗
Documentation
Documentation
🔗
Documentation
Documentation
🔗
Documentation
Documentation
🔗
Documentation
Documentation
🔗
Resources
Resources
📜
PrivacyPolicy
PrivacyPolicy
📜
TermsOfService
TermsOfService
💬
Support
Support
🔗
Contact
Contact
👥
GitHubOrganization
GitHubOrganization
🔗
Documentation
Documentation
🔗
Documentation
Documentation
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps
🔗
Vocabulary
Vocabulary
🔗
SpectralRuleset
SpectralRuleset

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: MLS Grid RESO Web API
  version: 2.0.0
request:
  auth:
    type: bearer
    token: '{{bearerToken}}'
items:
- info:
    name: Metadata
    type: folder
  items:
  - info:
      name: Get Service Metadata
      type: http
    http:
      method: GET
      url: https://api.mlsgrid.com/v2/$metadata
    docs: Returns the OData v4 EDMX metadata document describing all entity types, properties, navigation properties, and
      enumerations exposed by the MLS Grid Web API.
- info:
    name: Property
    type: folder
  items:
  - info:
      name: List Properties
      type: http
    http:
      method: GET
      url: https://api.mlsgrid.com/v2/Property
      params:
      - name: $filter
        value: OriginatingSystemName eq 'actris' and ModificationTimestamp gt 2026-01-01T00:00:00Z
        type: query
        description: 'OData `$filter` expression. Required pattern uses `OriginatingSystemName eq ''<system>''` combined with

          `ModificationTimestamp gt <UTC datetime>` for incremental replication. Replication queries are

          restricted to a limited set of searchable fields documented per resource.

          '
      - name: $select
        value: ListingKey,StandardStatus,ListPrice,ModificationTimestamp
        type: query
        description: Comma-separated list of fields to return. Reduces payload size.
      - name: $expand
        value: Media,Rooms,UnitTypes
        type: query
        description: Comma-separated list of related resources to expand inline. Common values for Property are `Media`, `Rooms`,
          and `UnitTypes`.
      - name: $top
        value: ''
        type: query
        description: Maximum number of records to return per page.
      - name: $count
        value: ''
        type: query
        description: When `true`, includes `@odata.count` in the response.
    docs: Replicate Property listings filtered by `OriginatingSystemName` and `ModificationTimestamp`. Use `$expand=Media,Rooms,UnitTypes`
      to include nested resources and `@odata.nextLink` for pagination.
  - info:
      name: Get Property by Key
      type: http
    http:
      method: GET
      url: https://api.mlsgrid.com/v2/Property(':ListingKey')
      params:
      - name: ListingKey
        value: ''
        type: path
        description: Prefixed MLS Grid listing key.
      - name: $expand
        value: Media,Rooms,UnitTypes
        type: query
        description: Comma-separated list of related resources to expand inline. Common values for Property are `Media`, `Rooms`,
          and `UnitTypes`.
    docs: Retrieve a single Property record by its prefixed `ListingKey` (e.g. `actris-1234567`).
- info:
    name: Member
    type: folder
  items:
  - info:
      name: List Members
      type: http
    http:
      method: GET
      url: https://api.mlsgrid.com/v2/Member
      params:
      - name: $filter
        value: OriginatingSystemName eq 'actris' and ModificationTimestamp gt 2026-01-01T00:00:00Z
        type: query
        description: 'OData `$filter` expression. Required pattern uses `OriginatingSystemName eq ''<system>''` combined with

          `ModificationTimestamp gt <UTC datetime>` for incremental replication. Replication queries are

          restricted to a limited set of searchable fields documented per resource.

          '
      - name: $select
        value: ListingKey,StandardStatus,ListPrice,ModificationTimestamp
        type: query
        description: Comma-separated list of fields to return. Reduces payload size.
      - name: $top
        value: ''
        type: query
        description: Maximum number of records to return per page.
      - name: $count
        value: ''
        type: query
        description: When `true`, includes `@odata.count` in the response.
    docs: Replicate Member (agent) records filtered by `OriginatingSystemName` and `ModificationTimestamp`.
- info:
    name: Office
    type: folder
  items:
  - info:
      name: List Offices
      type: http
    http:
      method: GET
      url: https://api.mlsgrid.com/v2/Office
      params:
      - name: $filter
        value: OriginatingSystemName eq 'actris' and ModificationTimestamp gt 2026-01-01T00:00:00Z
        type: query
        description: 'OData `$filter` expression. Required pattern uses `OriginatingSystemName eq ''<system>''` combined with

          `ModificationTimestamp gt <UTC datetime>` for incremental replication. Replication queries are

          restricted to a limited set of searchable fields documented per resource.

          '
      - name: $select
        value: ListingKey,StandardStatus,ListPrice,ModificationTimestamp
        type: query
        description: Comma-separated list of fields to return. Reduces payload size.
      - name: $top
        value: ''
        type: query
        description: Maximum number of records to return per page.
      - name: $count
        value: ''
        type: query
        description: When `true`, includes `@odata.count` in the response.
    docs: Replicate Office (brokerage) records filtered by `OriginatingSystemName` and `ModificationTimestamp`.
- info:
    name: OpenHouse
    type: folder
  items:
  - info:
      name: List Open Houses
      type: http
    http:
      method: GET
      url: https://api.mlsgrid.com/v2/OpenHouse
      params:
      - name: $filter
        value: OriginatingSystemName eq 'actris' and ModificationTimestamp gt 2026-01-01T00:00:00Z
        type: query
        description: 'OData `$filter` expression. Required pattern uses `OriginatingSystemName eq ''<system>''` combined with

          `ModificationTimestamp gt <UTC datetime>` for incremental replication. Replication queries are

          restricted to a limited set of searchable fields documented per resource.

          '
      - name: $select
        value: ListingKey,StandardStatus,ListPrice,ModificationTimestamp
        type: query
        description: Comma-separated list of fields to return. Reduces payload size.
      - name: $top
        value: ''
        type: query
        description: Maximum number of records to return per page.
    docs: Replicate OpenHouse events filtered by `OriginatingSystemName` and `ModificationTimestamp`.
- info:
    name: Media
    type: folder
  items:
  - info:
      name: List Media
      type: http
    http:
      method: GET
      url: https://api.mlsgrid.com/v2/Media
      params:
      - name: $filter
        value: OriginatingSystemName eq 'actris' and ModificationTimestamp gt 2026-01-01T00:00:00Z
        type: query
        description: 'OData `$filter` expression. Required pattern uses `OriginatingSystemName eq ''<system>''` combined with

          `ModificationTimestamp gt <UTC datetime>` for incremental replication. Replication queries are

          restricted to a limited set of searchable fields documented per resource.

          '
      - name: $select
        value: ListingKey,StandardStatus,ListPrice,ModificationTimestamp
        type: query
        description: Comma-separated list of fields to return. Reduces payload size.
      - name: $top
        value: ''
        type: query
        description: Maximum number of records to return per page.
    docs: Replicate Media records as a standalone resource where supported by the originating MLS. Use `MediaModificationTimestamp`
      for incremental replication.
- info:
    name: Lookup
    type: folder
  items:
  - info:
      name: List Lookup Values
      type: http
    http:
      method: GET
      url: https://api.mlsgrid.com/v2/Lookup
      params:
      - name: $filter
        value: OriginatingSystemName eq 'actris' and ModificationTimestamp gt 2026-01-01T00:00:00Z
        type: query
        description: 'OData `$filter` expression. Required pattern uses `OriginatingSystemName eq ''<system>''` combined with

          `ModificationTimestamp gt <UTC datetime>` for incremental replication. Replication queries are

          restricted to a limited set of searchable fields documented per resource.

          '
      - name: $select
        value: ListingKey,StandardStatus,ListPrice,ModificationTimestamp
        type: query
        description: Comma-separated list of fields to return. Reduces payload size.
      - name: $top
        value: ''
        type: query
        description: Maximum number of records to return per page.
    docs: Retrieve enumerated lookup values per originating MLS. Filter by `OriginatingSystemName` and `LookupName`.
bundled: true