RESO is the real estate industry's standards group. Its Web API is how real estate systems share data with each other. Your workspace has its own RESO Web API. A partner, such as a website vendor or a reporting tool, reads your data there with a key you make.
The RESO Web API is read only. A partner cannot add, change or delete anything in Berchtold.
What a partner can read
Partners read your workspace's own data, in RESO Data Dictionary 2.0 format:
- Contacts: your active contacts, with their names, emails, phones, address, type and source.
- Property: the properties in your CRM and the listings your agents enter.
- Media: each property's photo.
- Member, Office, Teams and TeamMembers: your workspace's people, offices and team.
- SavedSearch and ContactListings: your website visitors' saved searches and saved homes.
- Lookup: every choice in a list that the other data uses.
You choose which of these each key may read.
What never goes out
- MLS listings. Your MLS license does not let you pass MLS data on. A property linked to an MLS listing shows only its address and MLS number. Its price, status, size and photos stay in Berchtold. A saved home shows only the listing's number.
- Personal data, such as a contact's marital status.
- Consent history and email subscriptions.
- Archived contacts and properties.
Make a key
- Open Settings → Integrations. Scroll to RESO Web API.
- Select Make a key.
- Give the key a name, like the partner's name.
- Choose All records. Or choose Only the records I choose, then check what the partner needs. A website partner needs only Properties and your listings and Property photos.
- Select Make a key, then select Copy. The key shows only this one time.
Give the partner the key in a safe way, with the Service address from the same settings. Give each partner its own key. Then you can stop one partner and keep the others working.
Contacts hold names, emails and phone numbers. Give a key that reads contacts only to a partner you have an agreement with.
Revoke a key
Select Revoke next to the key. A partner that uses it stops getting records at once. You cannot undo this. Make a new key if the partner still needs access.
A workspace can have up to 20 keys.
See who read what
Recent requests shows the last 25 requests: when, which key, what data, how many results and whether it worked. Berchtold keeps this list for 90 days. It never keeps the data itself, or what a partner searched for.
Limits
Each key can make up to 300 requests a minute and 50,000 a day. Above that, Berchtold asks the partner to wait and try again.
For developers
- Address:
https://mcp.berchtold.ai/reso/{workspace}/odata. Start at$metadata. - Sign-in: send the key in every request:
Authorization: Bearer brk_live_…. - Standard: RESO Web API Core 2.0.0 over OData 4.01, with Data Dictionary 2.0 records. List values are text, as the Lookup resource lists them.
- Query options:
$filter,$select,$orderby,$top,$skip,$countand$expand=Mediaon Property. One record:/Property('key'). A property's photos:/Property('key')/Media. - Pages: a page has 100 records, or up to 1,000 with
Prefer: odata.maxpagesize=1000. Follow@odata.nextLinkto the next page. - Sorting: Contacts, Property and Media sort by
ModificationTimestamp, oldest or newest first. The other resources sort by any field. - Fast filters: a
ModificationTimestamprange, a record's key, and a contact'sEmailorOwnerMemberKey. Other filters work too, but they are slower. A long read ends a page early and gives a next link. - Errors: OData error answers. A field that does not exist answers 400. A record that does not exist answers 404. An option the server does not support answers 501.
To keep a copy up to date, ask for records changed since your last read: $filter=ModificationTimestamp gt {time}&$orderby=ModificationTimestamp. Then follow the next links.
Connected AI tools
Workspace admins can do the same in Claude, ChatGPT and Muse. reso_api_keys lists the keys, the address and the recent requests. reso_api_key_create makes a key and shows it once. reso_api_key_revoke revokes a key. Both show a preview first and act only after you confirm.

