Live API Testing Updates¶
This document summarizes the key updates made to the WFRMLS API documentation based on live API testing performed on January 31, 2025.
🔍 Overview¶
The documentation has been updated to reflect the actual response structures and field names returned by the live WFRMLS API. Testing revealed several important differences between the expected and actual API responses.
📊 Key Findings¶
Response Structure¶
All API endpoints return a consistent OData response structure:
{
"@odata.context": "$metadata#EntityType",
"value": [...],
"@odata.count": 12345, // When count=true
"@odata.nextLink": "https://..." // When more pages available
}
Important: The main data is always in the value array, not returned directly as a list.
Field Naming Conventions¶
The API uses several naming patterns: - Numeric Keys: Most entities have both string and numeric key fields (e.g., ListingKey and ListingKeyNumeric) - YN Suffix: Boolean fields use YN suffix (e.g., AttachedGarageYN, FireplaceYN) - Full Names: Many fields include full descriptive names (e.g., CountyOrParish not just County)
🏠 Property Endpoint Updates¶
Corrected Field Names¶
| Old Documentation | Actual Field Name | Type |
|---|---|---|
ListingId (primary) | ListingKeyNumeric | integer |
Address | UnparsedAddress | string |
County | CountyOrParish | string |
SquareFeet | LivingArea | decimal |
BathroomsTotal | BathroomsTotalInteger | integer |
New Important Fields¶
- Address Components:
StreetDirPrefix,StreetDirSuffix,StreetNumber,StreetNumberNumeric - Status Fields: Both
StandardStatusandMlsStatusare available - Timestamps: Multiple timestamp fields for tracking changes
- Property Types:
PropertyType,PropertySubType, andCurrentUse
Example Response¶
{
"@odata.context": "$metadata#Property",
"value": [
{
"ListingKeyNumeric": 1611952,
"StandardStatus": "Active",
"ListPrice": 1600.0,
"City": "Salt Lake City",
"UnparsedAddress": "1611 S MAIN ST 200",
// ... many more fields
}
]
}
👥 Member Endpoint Updates¶
Key Fields¶
- Identification:
MemberKeyNumeric,MemberKey,MemberMlsId - Contact:
MemberPreferredPhone,MemberMobilePhone,MemberOfficePhone - Professional:
MemberStatus,MemberType,MemberDesignation - Association:
MemberAOR,MemberAORkey
Member Types¶
"MLS Only Salesperson""MLS Only Broker"
Total Count¶
- Approximately 60,261 members in the system
🏢 Office Endpoint Updates¶
Key Fields¶
- Identification:
OfficeKeyNumeric,OfficeKey,OfficeMlsId - Details:
OfficeName,OfficeStatus,OfficeBranchType - Contact:
OfficePhone,OfficeFax - Location: Full address fields including
OfficeStateOrProvince
Special Offices¶
- Office ID
1is reserved for "NON-MLS" - Office ID
3is "Federal Housing Agency FHA"
🏘️ ADU Endpoint¶
Successfully documented with actual fields: - AduKeyNumeric - Primary identifier - AttachedYN, SeparateEntranceYN, KitchenYN - Boolean features - BedroomsTotal, BathroomsTotal, SquareFeet - Unit specifications - CurrentlyRentedYN, Rent - Rental information
🔍 Lookup Endpoint¶
Returns enumeration values for various fields: - Property types - Architectural styles - Appliances - And many more lookup categories
Response includes: - LookupKey - LookupName (category) - LookupValue (display value) - StandardLookupValue - LegacyODataValue
❌ Issues Discovered¶
Deleted Endpoint¶
The Deleted endpoint returned an error: "Bad request: Unknown property" when trying to use DeletedDateTime for ordering. This endpoint may need further investigation.
Unavailable Endpoints¶
As documented in the README, the following endpoints remain unavailable: - Media - History
- Green Verification
📝 Documentation Updates Made¶
- Field Reference Tables: Updated all field names, types, and examples based on actual responses
- Code Examples: Modified to use correct field names and response structure
- Response Structure: Clarified that all endpoints return OData response objects
- Pagination: Updated to show usage of
@odata.nextLink - New Documentation: Created comprehensive docs for Member, Office, and ADU endpoints
🚀 Next Steps¶
- Investigate the Deleted endpoint issue
- Monitor for when Media, History, and Green Verification endpoints become available
- Add more complex query examples based on actual field relationships
- Consider adding response transformation utilities to simplify data access