HAR.com Data: Listing Views, Reviews & Showing Logs
HAR.com Partner Data: Listing Views, Reviews & Showing Logs
Through our partnership with HAR.com, HAR members who subscribe to Repliers automatically get access to some extra HAR.com data through the API. This article covers what's available and how to use it.
Partnership background: Repliers + HAR.com Partnership
What's included
Data | Endpoint | What it answers |
|---|---|---|
Listing view analytics |
| "How much traffic is my listing getting on HAR.com?" |
Customer experience ratings |
| "What reviews have I received on recent closed transactions?" |
ShowingSmart logs |
| "Who has shown my listings, or what have I shown?" |
All three endpoints live under the /partners/har/ path and return results in the same basic shape: success, total, limit, offset, and a data array with the actual records.
Listing enrichment
Every record returned by these endpoints is enriched with details about the associated listing, so you can display context — the property address, a photo, pricing — without making a separate lookup. Each item includes:
Field | Description |
|---|---|
| Full address object: |
| Array of listing image paths |
| Date the property was listed |
| Date the property sold, |
| List price |
| Sold price, |
| Property summary: |
You'll see these fields in the example responses for each endpoint below.
Getting access
You don't need to request or configure anything manually. When you log into Repliers with a verified email address that matches an email on file in HAR's roster, your API key is automatically set up for HAR access. If you're not seeing HAR data and think you should, the most common cause is a mismatch between your Repliers login email and the email HAR has on record for you — double check those match, or reach out to support to confirm.
Who can see what
- What data you can see depends on whether you're set up as an individual agent or as the brokerage as a whole:
- Agents only see their own data.
- Brokers can see data for every agent at the brokerage.
If an agent tries to look up another agent's data by name, that request will either be blocked or automatically redirected back to the agent's own data — the exact behavior is noted separately for each endpoint below, since it works a little differently on each one.
Common parameters
All three endpoints support:
Parameter | Description |
|---|---|
| Filter to a single listing by MLS number |
| Inclusive date range, |
| Sort by a column, optionally suffixed |
| Max records to return (1–500) |
| Records to skip, for pagination |
1. Listing view statistics
GET /partners/har/listings/views
Returns per-listing, per-day web and mobile view counts tracked by HAR.com, with each record enriched with the listing's details. Each record also includes the listing agent's display name in agentName, alongside their laAgentkey.
Parameters
In addition to the common parameters above:
Parameter | Description |
|---|---|
| Filter to a listing agent by board agent key |
A note on access: If you're an individual agent, results are always limited to you — no matter what you put in boardAgentId. If you try to explicitly request a different agent's data, the request will be blocked with a 403 error.
Sortable columns: laAgentkey, mlsNumber, dateTracked, webView, mobileView
Example request
GET /partners/har/listings/views?mlsNumber=12345678&dateBegin=2026-06-01&dateEnd=2026-06-30&sortBy=dateTracked:descExample response
{
"success": true,
"total": 1,
"limit": 500,
"offset": 0,
"data": [
{
"dateTracked": "2026-06-15",
"laAgentkey": "AGT4821",
"agentName": "Alex Morgan",
"mlsNumber": "12345678",
"webView": 34,
"mobileView": 51,
"address": {
"area": "Harris",
"city": "Houston",
"country": "US",
"district": null,
"majorIntersection": null,
"neighborhood": "Maplewood Park",
"streetDirection": null,
"streetName": "Maplewood",
"streetNumber": "123",
"streetSuffix": "Lane",
"unitNumber": null,
"zip": "77001",
"state": "TX",
"communityCode": null,
"streetDirectionPrefix": null,
"addressKey": "123maplewoodlanehouston"
},
"images": [
"har/IMG-12345678_1.jpg"
],
"listDate": "2026-05-01T00:00:00.000-00:00",
"soldDate": null,
"listPrice": 425000,
"soldPrice": null,
"details": {
"numBedrooms": 4,
"numBathrooms": 3,
"sqft": "2650",
"numGarageSpaces": 2,
"propertyType": "Residential",
"style": "Single Family Residence"
}
}
]
}2. Customer experience ratings (reviews)
GET /partners/har/listings/reviews
Returns client-submitted ratings tied to closed transactions, scored across competency, knowledge, communication, and overall experience. Each review is enriched with the details of the listing it relates to.
Parameters
In addition to the common parameters above:
Parameter | Description |
|---|---|
| Filter to the rated agent by board agent key |
A note on access: Same as listing views — as an individual agent, you only ever see your own reviews, and asking for a different agent's boardAgentId returns a 403 error.
Sortable columns: mlsNumber, memberNumber, agentId, agentkey, agentEmail, clientName, clientEmail, transactionType, score, competency, knowledge, communication, myExperience, closedDate, publishDate, createdDate
Key response fields
Field | Description |
|---|---|
| Display name of the rated agent |
| Overall rating (may be fractional across the four component scores) |
| Component ratings |
| Free-text review from the client |
| Agent's response, |
| Side of the deal the review relates to (e.g. |
Example request
GET /partners/har/listings/reviews?dateBegin=2026-01-01&dateEnd=2026-06-30&sortBy=closedDate:desc&limit=25Example response
{
"success": true,
"total": 1,
"limit": 25,
"offset": 0,
"data": [
{
"agentComment": null,
"agentEmail": "agent@example.com",
"agentkey": "AGT4821",
"agentId": "AGT4821",
"agentName": "Alex Morgan",
"brokerCode": "BRK001",
"clientEmail": "jrivera@example.com",
"clientName": "J. Rivera",
"closedDate": "2026-05-20",
"comments": "Very responsive throughout the process.",
"communication": 4,
"competency": 5,
"createdDate": "2026-05-22T09:15:00.000000",
"knowledge": 5,
"memberNumber": 998877,
"mlsNumber": "12345678",
"myExperience": 5,
"publishDate": null,
"score": 4.75,
"transactionType": "sell",
"address": {
"area": "Harris",
"city": "Houston",
"country": "US",
"district": null,
"majorIntersection": null,
"neighborhood": "Maplewood Park",
"streetDirection": null,
"streetName": "Maplewood",
"streetNumber": "123",
"streetSuffix": "Lane",
"unitNumber": null,
"zip": "77001",
"state": "TX",
"communityCode": null,
"streetDirectionPrefix": null,
"addressKey": "123maplewoodlanehouston"
},
"images": [
"har/IMG-12345678_1.jpg"
],
"listDate": "2026-03-10T00:00:00.000-00:00",
"soldDate": "2026-05-20T00:00:00.000-00:00",
"listPrice": 425000,
"soldPrice": 431000,
"details": {
"numBedrooms": 4,
"numBathrooms": 3,
"sqft": "2650",
"numGarageSpaces": 2,
"propertyType": "Residential",
"style": "Single Family Residence"
}
}
]
}3. ShowingSmart showing logs
GET /partners/har/showingsmart/logs
Returns showing records — scheduling details, showing agent contact info, and any post-showing feedback — for listings shown or showings conducted.
Results are grouped by listing. Each item in the data array represents a single listing, identified by its mlsNumber, with:
- a
logsarray containing every showing record for that listing (scheduling details, showing agent info, comments, and feedback), and - the listing enrichment fields (
address,images,listDate,soldDate,listPrice,soldPrice,details).
total, limit, and offset apply to listings (groups), not to individual showing records.
Parameters
In addition to the common parameters above:
Parameter | Description |
|---|---|
| Filter to showings on listings held by this board agent key |
| Filter to showings conducted by this board agent key |
A note on access: This endpoint covers two roles — the listing agent and the showing agent — so it works a little differently from the other two:
- As an individual agent, you'll always see showings tied to you in at least one of those roles.
- If you put a different agent in
listingBoardAgentId, you'll just get your own showings back instead of an error. - If you put a different agent in
showingBoardAgentId, you'll just get your own listings back instead. - If you try to name a different agent in both fields at the same time, the request is blocked with a
403error.
In short: as an agent, you can always see showings where you're the listing agent, the showing agent, or both — you just can't use the two filters together to pull up someone else's data on both sides.
Sortable columns: listingkey, showingId, saComments, showingDate, showingStartTime, showingEndTime, showingType, showingStatus, saAgentkey, saCellPhone, saEmail, saOfficeName, saOfficekey, feedbackText, laAgentkey, laCellPhone, laEmail, laOfficeName, laOfficekey
Key response fields
Each entry in a listing's logs array includes:
Field | Description |
|---|---|
| HAR showing type code — e.g. |
| HAR status code — e.g. |
| Comments left by the showing agent when booking |
| Post-showing feedback, |
| Display name of the listing agent |
| Display name of the showing agent |
| Listing agent details (agent key, cell, email, office) |
| Showing agent details (agent key, cell, email, office) |
Note:
listagentAgentkeyandlistofficeOfficekeyare deprecated and not sortable — uselaAgentkeyandlaOfficekeyinstead.
Example request
GET /partners/har/showingsmart/logs?mlsNumber=12345678&dateBegin=2026-06-01&dateEnd=2026-06-30&sortBy=showingDate:descExample response
{
"success": true,
"total": 1,
"limit": 50,
"offset": 0,
"data": [
{
"mlsNumber": "12345678",
"logs": [
{
"showingId": 883421,
"showingDate": "2026-06-18",
"showingStartTime": "2026-06-18T15:00:00",
"showingEndTime": "2026-06-18T15:30:00",
"showingType": "SHOWG",
"showingStatus": "CONFM",
"laOfficeName": "Example Realty",
"laOfficekey": "OFF1001",
"laAgentkey": "AGT4821",
"listAgentName": "Alex Morgan",
"laCellPhone": "5550101",
"laEmail": "listingagent@example.com",
"saOfficeName": "Another Realty",
"saOfficekey": "OFF1002",
"saAgentkey": "AGT7734",
"showingAgentName": "Jordan Blake",
"saCellPhone": "5550199",
"saEmail": "showingagent@example.com",
"saComments": "Client loved the kitchen layout.",
"feedbackText": "Great condition, price feels slightly high for the area.",
"listagentAgentkey": "AGT4821",
"listofficeOfficekey": "OFF1001"
},
{
"showingId": 883205,
"showingDate": "2026-06-17",
"showingStartTime": "2026-06-17T18:00:00",
"showingEndTime": "2026-06-17T19:00:00",
"showingType": "SHOWG",
"showingStatus": "CANCL",
"laOfficeName": "Example Realty",
"laOfficekey": "OFF1001",
"laAgentkey": "AGT4821",
"listAgentName": "Alex Morgan",
"laCellPhone": "5550101",
"laEmail": "listingagent@example.com",
"saOfficeName": "Sample Properties Group",
"saOfficekey": "OFF1003",
"saAgentkey": "AGT2210",
"showingAgentName": "Casey Nguyen",
"saCellPhone": "5550142",
"saEmail": "agent2210@example.com",
"saComments": "",
"feedbackText": null,
"listagentAgentkey": "AGT4821",
"listofficeOfficekey": "OFF1001"
}
],
"address": {
"area": "Harris",
"city": "Houston",
"country": "US",
"district": null,
"majorIntersection": null,
"neighborhood": "Maplewood Park",
"streetDirection": null,
"streetName": "Maplewood",
"streetNumber": "123",
"streetSuffix": "Lane",
"unitNumber": null,
"zip": "77001",
"state": "TX",
"communityCode": null,
"streetDirectionPrefix": null,
"addressKey": "123maplewoodlanehouston"
},
"images": [
"har/IMG-12345678_1.jpg"
],
"listDate": "2026-05-01T00:00:00.000-00:00",
"soldDate": null,
"listPrice": 425000,
"soldPrice": null,
"details": {
"numBedrooms": 4,
"numBathrooms": 3,
"sqft": "2650",
"numGarageSpaces": 2,
"propertyType": "Residential",
"style": "Single Family Residence"
}
}
]
}Errors
Status | Meaning |
|---|---|
| Malformed request — check parameter formats (dates must be |
| Missing or invalid API key |
| The key isn't allowed to make this request — most often because the account isn't linked to a broker code (see "Getting access" above), or because an agent is asking for another agent's data in a way that isn't allowed |
Quick recap
- Broker accounts: see all agents' data at the brokerage.
- Individual agents, listing views & reviews: always your own data; naming another agent returns a
403error. - Individual agents, showing logs: always at least your own listings or your own showings; naming a different agent on both filters at once returns
403, but naming a different agent on just one filter falls back to your own data instead of erroring. - All endpoints enrich each record with listing details (address, images, dates, pricing, and property summary), and showing logs are grouped by listing.
If you're not sure whether your account is linked up for HAR access, reach out to your account manager or Repliers support.
Updated on: 03/08/2026
Thank you!
