Developer Documentation
Platform Overview
Authentication
API Services
Overview Accounts Accounts: Associations Accounts: Metadata Accounts: Profile Appstore: Users Broker Distributions Broker Tours Consumers Consumers: Linked Agents Contacts Contacts: Activity Contacts: Export Contacts: Tags Contacts: Portal Accounts Developers: Identities Developers: Keys Developers: Authorizations Developers: Billing Summary Developers: Change History Developers: Domains Developers: News Feed Webhooks Developers: Roles Developers: Syndications Developers: Templates Developers: Usage Detail Developers: Usage Summary Devices Flexmls: Email Links Flexmls: Listing Meta Origins Flexmls: Listing Meta Translations Flexmls: Listing Meta Field List Translations Flexmls: Listing Reports Flexmls: Mapping Layers Flexmls: Mapping Shapegen IDX IDX Links Listing Carts Listing Carts: Portal/VOW Carts Incomplete Listings Incomplete Listings: Documents Incomplete Listings: Documents Metadata Incomplete Listings: Document Uploads Incomplete Listings: Floor Plans Incomplete Listings: FloPlans Incomplete Listings: Photos Incomplete Listings: Photos Metadata Incomplete Listings: Photo Uploads Incomplete Listings: Rooms Incomplete Listings: Tickets Incomplete Listings: Units Incomplete Listings: Videos Incomplete Listings: Videos Metadata Incomplete Listings: Virtual Tours Incomplete Listings: Virtual Tours Metadata Listings Listings: Clusters Listings: Documents Listings: Documents Metadata Listings: Floor Plans Listings: FloPlans Listings: Historical Listings: History Listings: Notes Listings: Search Parameters Listings: Open Houses Listings: Photos Listings: Photos Metadata Listings: Photo Uploads Listings: Document Uploads Listings: Rental Calendar Listings: Rooms Listings: Rules Listings: Tour of Homes Listings: Tickets Listings: Units Listings: Validation Listings: Videos Listings: Videos Metadata Listings: Virtual Tours Listings: Virtual Tours Metadata Listing Meta: Custom Fields Listing Meta: Custom Field Groups Listing Meta: Field Order Listing Meta: Field Relations Listing Meta: Property Types Listing Meta: Rooms Listing Meta: Standard Fields Listing Meta: Units Registered Listings Market Statistics News Feed News Feed: Curation News Feed: Events News Feed: Metadata News Feed: Restrictions News Feed: Schedule News Feed: Settings News Feed: Templates Open Houses Overlays Overlays: Shapes Portals Preferences Saved Searches Saved Searches: Provided Saved Searches: Restrictions Saved Searches: Tags Search Templates: Quick Searches Search Templates: Views Search Templates: Sorts Shared Links System Info System Info: Languages System Info: Search Templates
Supporting Documentation
Examples
RESO Web API
RETS
FloPlan
Terms of Use

Privileged API Keys Only

Special permission is required to access this service. Please contact api-support@sparkplatform.com or your API key provider to request access to this data.

Developers: Templates

API templates allow MLS and Association staff to override field display and search restrictions for a given access role.
API keys restricted to a template can only access the RESO Web API endpoint.

 
  1. Supported Roles
  2. Available Services
    1. All Developer Templates
    2. Individual Developer Template
    3. Field Overrides for a Template
    4. Restrictive Filters for a Template
  3. Developer Template Description
  4. Expansions
 

Supported Roles

Role Reads Writes Notes
IDX No No
Public No No
VOW No No
Portal No No
Private Yes Yes Only accessible by MLS and association users, and by API keys granted explicit permission.

More information about roles may be found here.

 

Available Services

All Developer Templates

/<API Version>/developers/templates

HTTP Method Description Conditional Notes
GET Returns all templates accessible by the current user. No
POST Creates a new template No
PUT Returns HTTP 405 (Method Not Allowed) No Not implemented
DELETE Returns HTTP 405 (Method Not Allowed) No Not implemented

GET Request

Parameters:

 
 

GET Response

{
    "D": {
        "Success": true,
        "Results": [
          {
            "Id": "20160328145528265879000000",
            "ResourceUri": "/v1/developers/templates/20160328145528265879000000"
            "OwnerId": "20160328145519032513000000",
            "AssociationId": "20160328145458846124000000", 
            "MlsId": "20160328145437348560000000",
            "Name": "Company IDX Template",
            "Description": "The best template out of all the templates.",
            "SyndicationId": "20160328145508904022000000",
            "ListingPhotoLimit": null,
            "Role": "idx",
            "CreatedTimestamp": "2013-06-27T10:01:06-05:00",
            "ModificationTimestamp": "2013-06-27T10:01:06-05:00",
            "RestrictiveFilters": {
              "RESODictionaryVersion": 1.0,
              "Agent": null,
              "Property": {
                 "Filter": "StandardStatus eq 'Active'"
              }
            },
            "FieldOverrides": {
              "RESODictionaryVersion": 1.0,
              "Agent": null,
              "Property": {
                "Residential": {
                  "TotalBaths": {
                    "Rule": "Visible"
                  },
                  "ListPrice": {
                    "Rule": "Hidden"
                  }
                }
              }
            }
          }
        ]
    }
}
 

POST Request

Request body:


{
    "D": {
      "Name": "Company IDX Template",
      "Description": "The best template out of all the templates.",
      "SyndicationId": "20160328145508904022000000",
      "ListingPhotoLimit": null,
      "Role": "idx",
      "RestrictiveFilters": {
        "RESODictionaryVersion": 1.0,
        "Agent": null,
        "Property": {
           "Filter": "StandardStatus eq 'Active'"
        }
      },
      "FieldOverrides": {
        "RESODictionaryVersion": 1.0,
        "Agent": null,
        "Property": {
          "Residential": {
            "TotalBaths": {
              "Rule": "Visible"
            },
            "ListPrice": {
              "Rule": "Hidden"
            }
          }
        }
      }
    }
}
 

POST Response

The standard success/fail response is returned.

 
 

Individual Developer Template

/<API Version>/developers/templates/<Template.Id>

HTTP Method Description Conditional Notes
GET Returns a specific API template No
POST Returns HTTP 405 (Method Not Allowed) No Not implemented
PUT Updates a template record No
DELETE Deletes a template record No A template cannot be destroyed if it is used by any API key.

GET Request

Parameters:

Parameter Required Notes
Standard expansion parameters No
 
 

GET Response

See the GET request section for for the templates service.

PUT Request

Request body:

{
    "D": {
      "Name": "Company VOW Template",
      "Role": "vow"
    }
}
 

PUT Response

The standard success/fail response is returned.

 

DELETE Request

Parameters:

 

DELETE Response

The standard success/fail response is returned.

 
 

Field Overrides for a Template

/<API Version>/developers/templates/<Template.Id>/FieldOverrides

HTTP Method Description Conditional Notes
GET Returns HTTP 405 (Method Not Allowed) No Not implemented
POST Returns HTTP 405 (Method Not Allowed) No Not implemented
PUT Updates the FieldOverrides data for a template. No
DELETE Returns HTTP 405 (Method Not Allowed) No Not implemented

PUT Request

Request body:


{
    "D": {
      "RESODictionaryVersion": 1.0,
      "Agent": {
        "All": {
          "MemberKey": {
            "Rule": "Visible"
          }
        }
      },
      "Property": {
        "Residential": {
          "TotalBaths": {
            "Rule": "Visible"
          },
          "ListPrice": {
            "Rule": "Hidden"
          }
        }
      }
    }
}
 

PUT Response

The standard success/fail response is returned.

 
 

Restrictive Filters for a Template

/<API Version>/developers/templates/<Template.Id>/RestrictiveFilters

HTTP Method Description Conditional Notes
GET Returns HTTP 405 (Method Not Allowed) No Not implemented
POST Returns HTTP 405 (Method Not Allowed) No Not implemented
PUT Updates the RestrictiveFilters data for a template. No
DELETE Returns HTTP 405 (Method Not Allowed) No Not implemented

PUT Request

Request body:


{
    "D": {
      "RESODictionaryVersion": 1.0,
      "Property": {
         "Filter": "StandardStatus eq 'Active'"
      }
    }
}
 

PUT Response

The standard success/fail response is returned.

 
 

Developers: Template Description

Attribute Data Type Writeable Required Description
Id Character No No The unique identifier for the template.
ResourceUri Character No No The URI to the individual template.
OwnerId Character No No The ID of the user that owns the template. This will match either AssociationId or MlsId.
AssociationId Character No No Populated if the template belongs to an association.
MlsId Character No No The MLS the template belongs to. Always populated, even if owned by an association.
Name Character Yes Yes The name of the template.
Description Character Yes Yes A longer description detailing the purpose of the template.
SyndicationId Character Yes No The Id of the syndication used to filter listings. Only listings opted in (or, not opted out) of the specified syndication will be delivered.
ListingPhotoLimit Intenger No No If set, only the first number of listing photos specified by this value will be returned.
Role Character No No The base role for the template.
CreatedTimestamp Timestamp No No The time the template was created.
ModificationTimestamp Timestamp No No The time the template was last updated.
 

Expansions

Expansion Roles Single Record Only? Selection Support? Description
FieldOverrides All No No A hash of filters auto-applied to resource data for keys using this template. Any RESO resource, such as Property and Member, can be an attribute for this hash.

For the Property resource, field override settings are further grouped by property class. All other resources are merely grouped under an All attribute.

Possible Rule values are "Hidden", which means the field is never visible, or "Visible", which means the field is always visible regardless of the base Role for the template. Omitted fields follow the rules for the base Role.
RestrictiveFilters All No No A hash of field restrictions overriding those defined by the Role for keys using this template. Any RESO resource, such as Property and Member, can be an attribute for this hash.

The only attribute for each resource is Filter, which is either null for no restriction, or a RESO OData filter string that will automatically be applied to all search requests for this resource.