RealtyMX
Website API reference
The data behind a RealtyMX-powered website — listings, buildings, agents, teams and editorial content — together with the endpoints that write leads, clients and blog posts back.
Base URL
All requests go to https://api.realtymx.com over HTTPS. Requests over plain HTTP are not supported.
This page is itself an endpoint — GET /api-docs — and the one that needs no key, since it is what you read to find out how to get one.
Conventions
Reads are GET and take their parameters in the query string. Writes are POST, and accept either form-encoded parameters or a JSON body. Only the blog update also answers to PUT, as an alias.
Responses are JSON. Field names within a record come back lowercase, and list endpoints return a flat object per record — nothing is nested under a sub-object even when the name reads like it should be. On listing searches the names carry a group prefix instead: main_, essentials_, financials_, available_ and agents_.
Your key decides which database answers. Every endpoint reads the client database the API key is bound to, so the same call returns different inventory for different keys. There is no account parameter, and no way to read across clients.
Paging
The larger search endpoints take page and perPage; several of the smaller listings take a {count} path segment instead, which caps the number of rows returned. Where a search reports a total it does so as TOTAL_COUNT, alongside the page of records itself. ColdFusion uppercases struct keys, so the envelope of a search — TOTAL_COUNT, LISTINGS, BUILDINGS — is upper case while the fields inside each record are not.
curl -G "https://api.realtymx.com/properties" \ -d "apiKey=$API_KEY" \ -d "perPage=5"
{
"TOTAL_COUNT": 5174,
"LISTINGS": [
{
"main_id": 482913,
"main_address": "18 West 55th Street, Apt 7C Midtown West",
"main_neighborhood": "Midtown West",
"main_status": "For Rent",
"essentials_beds": 3.0,
"essentials_bath": 3.5,
"financials_price": 31500.0,
"available_date": "Immediately"
}
]
}
Getting started
Authentication
Every request carries an API key. Some endpoints add a second factor on top of it, and which one depends on the endpoint rather than on the verb — there are three schemes in use.
1. API key — every request
Pass your key as the apiKey parameter. A request without it is rejected with 401 before anything else is examined.
The key must additionally be enabled for the website API. A key that works against the Data API is not automatically accepted here, and comes back 403. The one exception is /marketplace, which is reachable by partner keys that are not website-enabled.
2. Signed requests — token and stamp
Client, account and lead endpoints require a signature if your key has private-key access enabled. The same key without that flag calls them with nothing but apiKey; with it, an unsigned call is refused. Send two extra parameters:
| Parameter | Value |
|---|---|
stamp | Current UTC time in milliseconds since the epoch. |
token | An HMAC-SHA256 signature over that stamp and your client ID, keyed by your secret. |
The stamp must be no more than three hours old, and a token/stamp pair is single use — replaying one that has already been accepted returns 403. Because the signed payload is a ColdFusion-serialised object, reproducing it byte for byte in another language is fiddly; ask RealtyMX for the signing recipe for your platform rather than reverse-engineering it.
These endpoints are signed:
| Endpoint | Resource |
|---|---|
/clients | Create a client |
/clients/list | List clients |
/clients/{id} | Retrieve a client |
/clients/Update | Update a client |
/clients/favoriteListing/ | Favourite a listing |
/clients/insertClientTrail/ | Record client activity |
/account/verifyAccount | Verify an account |
/account/getVerifiedStatus | Read verification status |
/alerts | Create a lead |
/alerts/listingAlert | Create a listing lead |
3. Basic authentication — marketplace partners
POST /marketplace is the only endpoint using HTTP Basic. Send your partner key as the user name and your secret as the password, in addition to the apiKey parameter. The credentials are checked against the marketplace partner record, and a mismatch is refused before the lead is read.
Rate limits
| Limit | Threshold | On breach |
|---|---|---|
| Requests per second | 10 | 420 |
| Simultaneous in-flight requests | 3 | 420 |
Rate-limit rejections come back as 420, not the more usual 429. The accompanying message names a lower per-second figure than the limit actually enforced; trust the table, not the text.
IP restrictions
A key can be pinned to a list of source addresses. A call from anywhere else is refused with 405 — an unusual choice of code for what is really an authorisation failure, so do not read it as “wrong method”.
curl -G "https://api.realtymx.com/agents/search" \ -d "apiKey=$API_KEY"
curl -X POST "https://api.realtymx.com/alerts" \ -d "apiKey=$API_KEY" \ -d "stamp=$STAMP" \ -d "token=$TOKEN" \ -d "[email protected]" \ -d "firstName=Jane"
curl -X POST \ "https://api.realtymx.com/marketplace?apiKey=$API_KEY" \ -u "$PARTNER_KEY:$PARTNER_SECRET" \ -H "Content-Type: application/json" \ -d '{"listing_id": "482913", "agent_email": "[email protected]", "first_name": "Jane", "last_name": "Doe", "email": "[email protected]"}'
Getting started
Errors
A 200 does not mean it worked. The write endpoints report validation failures in the body, not the status line: look for "STATUS": "Error" and read MESSAGE. Only the gate in front of the API — keys, signatures, rate limits — uses status codes to say no.
Status codes
| Code | Meaning |
|---|---|
| 200 | The request was accepted. Check STATUS in the body on a write. |
| 401 | No apiKey, or a signed endpoint called without token or stamp. |
| 403 | Key unknown, inactive, or not enabled for the website API. Also a bad, expired or replayed signature. |
| 405 | Your address is not on the key's allow-list. |
| 420 | Rate limit exceeded — too many requests per second, or too many at once. |
| 500 | Server or database fault. |
Errors in the body
Write endpoints answer with a STATUS of Success or Error, and a MESSAGE naming what failed. The lead endpoints add a numeric STATUS_CODE. An image that fails to upload is reported separately in IMAGEERROR, and does not fail the post it belongs to — the post is created, without the picture.
{
"STATUS": "Error",
"MESSAGE": "Publish date is invalid."
}
API Key does not match. API key is not Active.
Listings
Search listings
Returns list of listings
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
Optional
sort
string
optional
default price
Provide sorting factor (price / size / date)
order
string
optional
default desc
Provide sorting order (desc / asc)
page
numeric
optional
default 1
Provide page number (1 or higher)
perPage
numeric
optional
default 10
Provide number of properties per page (10 / 20 / 40 /100). Maximum 200 listings per page
id
numeric
optional
default 0
Provide listing id # to filter.
status
string
optional
default 2
Provide specific status id(s) Accepts a comma-separated list. (Sales - 1, Rentals - 2, In Contract - 11, Offer In - 12, App. Pending - 21, Sold - 19, Rented - 22)
cat
string
optional
Provide specific neighborhood id(s) Accepts a comma-separated list.
amenities
string
optional
Provide amenities limitation Accepts a comma-separated list. (doorman / outdoorSpace / elevator / healthClub / pets / newConstruction / nofee/ dishwasher / hardwood / LaundryInUnit /Patio / roofdeck / privatedeck /garage)
priceMin
numeric
optional
default 0
Provide minimum price
priceMax
numeric
optional
default 0
Provide maximum price
bedsMin
numeric
optional
default 0
Provide minimum bedroom count
bedsMax
numeric
optional
default 0
Provide maximum bedroom count
bathMin
numeric
optional
default 0
Provide minimum bathroom count
bathMax
numeric
optional
default 0
Provide maximum bathroom count
roomsMin
numeric
optional
default 0
Provide minimum room count
roomsMax
numeric
optional
default 0
Provide maximum room count
familiesMin
numeric
optional
default 0
Provide minimum families count
familiesMax
numeric
optional
default 0
Provide maximum families count
MinLeaseTerm
numeric
optional
default 0
Provide minimum lease terms (in months)
MaxLeaseTerm
numeric
optional
default 0
Provide maximum lease terms (in months)
yearBuiltMin
numeric
optional
default 0
Provide minimum year built lookup
yearBuiltMax
numeric
optional
default 0
Provide maximum year built lookup
taxesMin
numeric
optional
default 0
Provide minimum taxwas
taxesMax
numeric
optional
default 0
Provide maximum taxes
pets
string
optional
Provide specfic pets value(s) Accepts a comma-separated list. Options: No pets=99, Cats Only=1, Dogs Only = 4, Small Pets=2, Pets OK=3, Case by Case=98
minSize
numeric
optional
default 0
Provide minimum SQFT size
type
string
optional
Provide specfic building type value(s) Accepts a comma-separated list. Options: Apartment,
apartmentFeatures
string
optional
Provide apartment feaure options to search specific listings. Options: Furnished, Renovated, Dishwasher, Laundry In Unit, Private Outdoor Space,
buildingFeatures
string
optional
Provide building feaure options to search specific listings. Options: Doorman, Elevator, Laundry, Pool, Pets, Common Outdoor Space, Driveway
zipcode
numeric
optional
default 0
Provide zipcode to search listings
address
string
optional
Provide listing address to search
city
string
optional
Provide listing city to search
availableDate
string
optional
Provide listing available date. Format mm/dd/yyyy
cooling
string
optional
Provide specific cooling value(s) Accepts a comma-separated list. 1=Central AC, 2=Window/Wall, 3=None
parking
string
optional
Provide specific parking value(s) Accepts a comma-separated list. 1=Indoor, 2=Outdoor, 3=Heated, 4=Valet, 5=Street No Permit, 6=Easy Street No Permit, 7=Street with Permit, 8=Assigned Parking
agent
numeric
optional
default 0
Provide specific agent id to search listings by the agent id
buildingId
numeric
optional
default 0
Provide specific building id #
category
string
optional
Provide specific category value(s) Accepts a comma-separated list. 0=Open Listings, 1=Semi-Exclusive Listings, 2=Exculsive Listings, 6=Co-Broke
shortTerm
boolean
optional
default 0
Boolean value either to filter short term listings
label
string
optional
Provide label name to search listings associated with the label
addDescription
boolean
optional
default false
Boolean value either to include description to serach result
extras
string
optional
Provide special limitation (featured / furnished / developments / nofee / openhouse)
addPhotos
boolean
optional
default false
Boolean value to include listings photos to search result
addOpenHouse
boolean
optional
default false
Boolean value to include open listings to search result
addHitCounter
boolean
optional
default false
Boolean value to include web site views counter to search result
addCustomValues
boolean
optional
default false
Boolean value to include custom field to search result
customValue
string
optional
Provide specific custom value to filter the result
addLabels
boolean
optional
default false
Boolean value to include labels name associated with listings to search result
distribute
boolean
optional
default false
Boolean value to filter website listings only
updatedSince
string
optional
Confine results to listings which have benn updated since this time. Format MM/DD/YYYYTHH:MM
Which listings come back
A search spans your own inventory and, where the key is configured for it, the MLS feed. Each record says which it came from: iscompany is 1 for your own listing, ismls is 1 for a feed one. The two share a field layout but not an ID space.
Status values
status takes one or more of these, comma-separated. It defaults to 2, so an unqualified search returns rentals only — ask for 1 explicitly if you want sales.
| Value | Status | Kind |
|---|---|---|
| 1 | For Sale | Sales |
| 2 | For Rent | Rentals |
| 11 | In Contract | Sales |
| 12 | Offer In | Sales |
| 21 | App. Pending | Rentals |
| 19 | Sold | Sales |
| 22 | Rented | Rentals |
Asking for more per record
The base response is deliberately lean. Each of these adds a further query per listing, so turn on only what the page actually renders:
| Parameter | Adds |
|---|---|
addPhotos | photos — every image, ordered, with absolute URLs |
addLabels | labels — the visible labels on the listing |
addDescription | The full marketing copy, which can run to thousands of characters |
addOpenHouse | Open-house dates |
addHitCounter | The website view count |
addCustomValues | Client-defined custom fields |
Image URLs
Photo fields are returned ready to use: a stored filename is expanded to an absolute URL against the client's site, and a value that is already a URL is passed through untouched. Do not prepend a host of your own.
Syncing
updatedSince confines the result to listings changed since a moment, and is the right way for a periodic sync to poll. It wants MM/DD/YYYYTHH:MM — note the American date order and the literal T, which is not an ISO 8601 timestamp however much it resembles one.
Response fields 2
LISTINGS
array
The page of listings.
TOTAL_COUNT
integer
How many records match in total, ignoring paging. Divide by your page size to know how many pages there are.
Response fields — each listing 54
access_note
string
Free-text showing note — lockbox, management company, who to call. Internal-facing; do not publish it.
agents_agent_email
string
Agent's email. This is the address the lead endpoints match on.
agents_agent_id
integer
Id of the agent on the listing. Pass it to /agents/{id}.
agents_agent_image
string
Absolute URL of the agent's photo. Empty when they have none.
agents_agent_name
string
Agent's full name.
agents_agent_phone
string
Agent's mobile, falling back to their office line.
agents_coagent_email
string
Co-agent's email.
agents_coagent_id
integer
Id of the co-agent, when the listing has one.
agents_coagent_image
string
Absolute URL of the co-agent's photo.
agents_coagent_name
string
Co-agent's full name.
agents_coagent_phone
string
Co-agent's mobile, falling back to their office line.
available_date
string
When the unit is available. The search endpoint's name for essentials_available.
built
integer
Year built. 0 when unknown.
city
string
City.
date_update
string (date)
When the record was last updated.
essentials_bath
number
Bathroom count. Decimal: 2.5 is two full baths and a powder room.
essentials_beds
number
Bedroom count. Decimal, so a half is 0.5 — studios come back as 0.
essentials_pets
string
Pet policy in words: Pets OK, Cats Only, Dogs Only, Small Dogs, Case By Case, No Pets or Unknown.
essentials_rooms
number
Total room count, the New York convention. Decimal.
essentials_size
integer
Interior size in square feet. 0 when it was never recorded.
essentials_type
string
Property type: Apartment, House, Townhouse, Condo, Coop, Condop, Building, Commercial, Office, Retail, Investment, Development, Land or N/A.
essentials_units
integer
Number of units in the building the listing sits in.
essentials_video
string
Virtual tour URL — Matterport, YouTube or whatever the client set.
extras_featured
integer
1 when the client has flagged the listing as featured.
extras_latitude
number
Building latitude, decimal degrees.
extras_longitude
number
Building longitude, decimal degrees.
extras_nofee
integer
1 when there is no broker fee.
extras_openhouse
integer
1 when an open house is scheduled and has not yet passed, or the listing is by appointment. Derived, not stored.
extras_webtitle
string
Headline the client wrote for their own site, when they wrote one.
families
integer
Number of families the building is zoned for.
financials_concession
string
Concession in the owner's own words, e.g. 1 Month Free 12-Month Lease.
financials_freemonth
number
Months of free rent being offered. Decimal.
financials_monthsfreereqminlease
number
Lease length in months the free-rent offer requires.
financials_price
number
Asking price: monthly rent on a rental, sale price on a sale.
financials_taxes
integer
Monthly property tax, in dollars.
idx
integer
1 when the listing may be syndicated to IDX feeds.
iscompany
integer
1 when the listing belongs to the client's own company.
ismls
integer
1 when the record comes from the MLS feed rather than the client's own database. The two have separate id spaces.
lease_term_max
integer
Longest lease the owner will take, in months.
lease_term_min
integer
Shortest lease the owner will take, in months.
main_address
string
Display address, already assembled. House number, street, apartment and neighbourhood when the address is public; cross streets and neighbourhood when main_hide_address is 1. Print this rather than building your own from the parts.
main_apt
string
Apartment or unit designation, e.g. 4B or PHA.
main_category
integer
Exclusivity of the listing: 0 open, 1 semi-exclusive, 2 exclusive, 6 co-broke.
main_cross
string
The two cross streets, e.g. Second Avenue and Third Avenue. This is what stands in for the address when the address is hidden.
main_hide_address
integer
1 when the exact address must not be published. Honour it: show main_address, never main_house plus main_street.
main_house
string
House number on its own. Empty on a listing whose address is hidden.
main_id
integer
RealtyMX listing id. Pass it to /properties/{id}, /properties/photos/{id} and the lead endpoints.
main_image
string
Absolute URL of the primary photo, already resolved against the client's image host. Empty when the listing has no photo.
main_neighborhood
string
Neighbourhood name, from the same list /neighborhoods returns.
main_status
string
Listing state, as words: For Sale, For Rent, In Contract, Offer In, App. Pending, Sold or Rented.
main_street
string
Street name on its own.
main_zipcode
string
Postal code, taken from the building record.
mls_no
string
MLS listing number, on listings that came from an MLS feed.
vow
integer
1 when the listing may be shown on a VOW (login-gated) site.
curl -G "https://api.realtymx.com/properties" \ -d "apiKey=$API_KEY"
{
"LISTINGS": [
{
"access_note": "",
"agents_agent_email": "[email protected]",
"agents_agent_id": 1989,
"agents_agent_image": "4879.jpg",
"agents_agent_name": "Jane Doe",
"agents_agent_phone": "212-555-0142",
"agents_coagent_email": "",
"agents_coagent_id": "",
"agents_coagent_image": "",
"agents_coagent_name": "",
"agents_coagent_phone": "",
"available_date": "Immediately",
"built": 1957,
"city": "New York",
"date_update": "August, 28 2026 10:54:00",
"essentials_bath": 4.5,
"essentials_beds": 5.0,
"essentials_pets": "Pets OK",
"essentials_rooms": 10.5,
"essentials_size": 0,
"essentials_type": "Apartment",
"essentials_units": 0,
"essentials_video": "https://my.matterport.com/show/?m=bdr3RBaMEsc",
"extras_featured": 0,
"extras_latitude": 40.76635,
"extras_longitude": -73.96346,
"extras_nofee": 0,
"extras_openhouse": 0,
"extras_webtitle": "Beautiful 3 Bedroom!!! Call for a tour!!! NO FEE!!!",
"families": 0,
"financials_concession": "1 Month Free 12-Month Lease",
"financials_freemonth": 0.0,
"financials_monthsfreereqminlease": 0.0,
"financials_price": 43995.0,
"financials_taxes": 750,
"idx": 1,
"iscompany": 1,
"ismls": 0,
"lease_term_max": 12,
"lease_term_min": 12,
"main_address": "East 63rd Street Upper East Side",
"main_apt": "4B",
"main_category": 0,
"main_cross": "Second Avenue and Third Avenue",
"main_hide_address": 1,
"main_house": "245",
"main_id": 1173026,
"main_image": "https://images.realty.mx/3f9a1c7e5b204d8a9e6f1c3b7d5a2e84/image…",
"main_neighborhood": "Upper East Side",
"main_status": "For Rent",
"main_street": "East 63rd Street",
"main_zipcode": "10065",
"mls_no": "RLS20003841",
"vow": 1
}
],
"TOTAL_COUNT": 5174
}
Listings
Retrieve a listing
Returns specific listing
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
id
numeric
required
ID of the record to return, as given by the matching search endpoint.
Optional
isMLS
boolean
optional
default false
Set to <code>true</code> when the ID belongs to an MLS feed listing rather than one of your own. The two have separate ID spaces, so the same number means different listings.
addPhotos
boolean
optional
default false
Boolean value either to include all listings photo or not
addOpenHouse
boolean
optional
default false
Boolean value either to include all listings openhouse or not
addHitCounter
boolean
optional
default false
Boolean value either to include web site views counter
addCustomValues
boolean
optional
default false
Boolean value either to include web site views counter
addLabels
boolean
optional
default false
Boolean value to include labels
Off-market listings
A listing withdrawn from the market is still retrievable by ID. Check main_status before rendering rather than assuming a record's presence means it is available.
Response fields 67
access_note
string
Free-text showing note — lockbox, management company, who to call. Internal-facing; do not publish it.
agents_agent_email
string
Agent's email. This is the address the lead endpoints match on.
agents_agent_id
integer
Id of the agent on the listing. Pass it to /agents/{id}.
agents_agent_image
string
Absolute URL of the agent's photo. Empty when they have none.
agents_agent_name
string
Agent's full name.
agents_agent_phone
string
Agent's mobile, falling back to their office line.
agents_coagent_email
string
Co-agent's email.
agents_coagent_id
integer
Id of the co-agent, when the listing has one.
agents_coagent_image
string
Absolute URL of the co-agent's photo.
agents_coagent_name
string
Co-agent's full name.
agents_coagent_phone
string
Co-agent's mobile, falling back to their office line.
agents_listingagent_email
string
Listing agent's email.
agents_listingagent_id
integer
Id of the listing agent, where the client separates that role from the showing agent.
agents_listingagent_image
string
Absolute URL of the listing agent's photo.
agents_listingagent_name
string
Listing agent's full name.
agents_listingagent_phone
string
Listing agent's mobile, falling back to their office line.
concession
string
Concession in the owner's own words. Same value as financials_concession, kept for older integrations.
cyof
integer
1 when the listing carries a co-broke your-own-fee arrangement.
essentials_available
string
When the unit is available, as words or a date: Immediately, or e.g. 11/01/2026.
essentials_bath
number
Bathroom count. Decimal: 2.5 is two full baths and a powder room.
essentials_beds
number
Bedroom count. Decimal, so a half is 0.5 — studios come back as 0.
essentials_building
integer
Building id. Pass it to /buildings/{id}.
essentials_date
string (date)
When the listing was last updated.
essentials_floor
string
Floor the unit is on, as text — it can read PH or Garden as well as a number.
essentials_openhouse_by_appointment_only
string
The words By Appointment Only when viewings are by appointment; empty otherwise.
essentials_pets
string
Pet policy in words: Pets OK, Cats Only, Dogs Only, Small Dogs, Case By Case, No Pets or Unknown.
essentials_rooms
number
Total room count, the New York convention. Decimal.
essentials_size
integer
Interior size in square feet. 0 when it was never recorded.
essentials_subway
string
Subway lines serving the building, as a run of line letters and numbers, e.g. 12346ACRWJZ.
essentials_type
string
Property type: Apartment, House, Townhouse, Condo, Coop, Condop, Building, Commercial, Office, Retail, Investment, Development, Land or N/A.
essentials_units
integer
Number of units in the building the listing sits in.
essentials_video
string
Virtual tour URL — Matterport, YouTube or whatever the client set.
extra_cooling
string
Cooling, in words: Central AC, Window/Wall, None or Unknown.
extras_developments
integer
1 when the listing is part of a new development.
extras_featured
integer
1 when the client has flagged the listing as featured.
extras_furnished
integer
1 when the unit comes furnished.
extras_latitude
number
Building latitude, decimal degrees.
extras_longitude
number
Building longitude, decimal degrees.
extras_nofee
integer
1 when there is no broker fee.
extras_openhouse
integer
1 when an open house is scheduled and has not yet passed, or the listing is by appointment. Derived, not stored.
financials_concession
string
Concession in the owner's own words, e.g. 1 Month Free 12-Month Lease.
financials_downpayment
integer
Required down payment, as a percentage of the sale price.
financials_fee
number
Broker fee, as a percentage of the annual rent. 0 on a no-fee listing.
financials_freemonth
number
Months of free rent being offered. Decimal.
financials_maintenance
integer
Monthly maintenance or common charge, in dollars.
financials_monthsfreereqminlease
number
Lease length in months the free-rent offer requires.
financials_price
number
Asking price: monthly rent on a rental, sale price on a sale.
financials_taxes
integer
Monthly property tax, in dollars.
floorplan_image
string
Absolute URL of the floor plan, when one of the listing's photos is named as such. Empty otherwise.
idx
integer
1 when the listing may be syndicated to IDX feeds.
main_address
string
Display address, already assembled. House number, street, apartment and neighbourhood when the address is public; cross streets and neighbourhood when main_hide_address is 1. Print this rather than building your own from the parts.
main_apt
string
Apartment or unit designation, e.g. 4B or PHA.
main_category
integer
Exclusivity of the listing: 0 open, 1 semi-exclusive, 2 exclusive, 6 co-broke.
main_cross
string
The two cross streets, e.g. Second Avenue and Third Avenue. This is what stands in for the address when the address is hidden.
main_description
string
Marketing copy. Carries newlines and may run to several thousand characters. Only /properties/{id} returns it.
main_hide_address
integer
1 when the exact address must not be published. Honour it: show main_address, never main_house plus main_street.
main_house
string
House number on its own. Empty on a listing whose address is hidden.
main_id
integer
RealtyMX listing id. Pass it to /properties/{id}, /properties/photos/{id} and the lead endpoints.
main_image
string
Absolute URL of the primary photo, already resolved against the client's image host. Empty when the listing has no photo.
main_images
integer
How many photos the listing has. Fetch them from /properties/photos/{id}.
main_neighborhood
string
Neighbourhood name, from the same list /neighborhoods returns.
main_status
string
Listing state, as words: For Sale, For Rent, In Contract, Offer In, App. Pending, Sold or Rented.
main_street
string
Street name on its own.
main_zipcode
string
Postal code, taken from the building record.
mls_no
string
MLS listing number, on listings that came from an MLS feed.
op
string
Owner-paid commission, formatted for display: 1 Month(s), 15%, $ 2500 or 4 Week(s). Null when there is no OP.
vow
integer
1 when the listing may be shown on a VOW (login-gated) site.
curl -G "https://api.realtymx.com/properties/1173026" \ -d "apiKey=$API_KEY"
[
{
"access_note": "",
"agents_agent_email": "[email protected]",
"agents_agent_id": 1989,
"agents_agent_image": "example.com/images/agents/4879.jpg",
"agents_agent_name": "Jane Doe",
"agents_agent_phone": "212-555-0142",
"agents_coagent_email": "",
"agents_coagent_id": "",
"agents_coagent_image": "",
"agents_coagent_name": "",
"agents_coagent_phone": "",
"agents_listingagent_email": "",
"agents_listingagent_id": "",
"agents_listingagent_image": "",
"agents_listingagent_name": "",
"agents_listingagent_phone": "",
"concession": "1 Month Free 12-Month Lease",
"cyof": 0,
"essentials_available": "Immediately",
"essentials_bath": 4.5,
"essentials_beds": 5.0,
"essentials_building": 32969,
"essentials_date": "August, 28 2026 10:54:00",
"essentials_floor": "0",
"essentials_openhouse_by_appointment_only": "",
"essentials_pets": "Pets OK",
"essentials_rooms": 10.5,
"essentials_size": 0,
"essentials_subway": "12346ACRWJZ",
"essentials_type": "Apartment",
"essentials_units": 0,
"essentials_video": "https://my.matterport.com/show/?m=MAdjdjohD7A",
"extra_cooling": "Unknown",
"extras_developments": 0,
"extras_featured": 0,
"extras_furnished": 0,
"extras_latitude": 40.76635,
"extras_longitude": -73.96346,
"extras_nofee": 0,
"extras_openhouse": 0,
"financials_concession": "1 Month Free 12-Month Lease",
"financials_downpayment": 10,
"financials_fee": 15.0,
"financials_freemonth": 0.0,
"financials_maintenance": 1472,
"financials_monthsfreereqminlease": 0.0,
"financials_price": 43995.0,
"financials_taxes": 750,
"floorplan_image": "https://images.realty.mx/3f9a1c7e5b204d8a9e6f1c3b7d5a2e84/image…",
"idx": 1,
"main_address": "East 63rd Street Upper East Side",
"main_apt": "4B",
"main_category": 0,
"main_cross": "Second Avenue and Third Avenue",
"main_description": "South-facing corner unit with an open kitchen, a windowed bathroom and river views from every room.",
"main_hide_address": 1,
"main_house": "245",
"main_id": 1173026,
"main_image": "https://images.realty.mx/3f9a1c7e5b204d8a9e6f1c3b7d5a2e84/image…",
"main_images": 0,
"main_neighborhood": "Upper East Side",
"main_status": "For Rent",
"main_street": "East 63rd Street",
"main_zipcode": "10065",
"mls_no": "RLS20003841",
"op": "1 Month(s)",
"vow": 1
}
]
Listings
List listing amenities
Returns specific listing's amenities
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
id
numeric
required
Provide id of the property
Optional
isMLS
boolean
optional
default false
Set to <code>true</code> when the ID belongs to an MLS feed listing rather than one of your own. The two have separate ID spaces, so the same number means different listings.
Response fields 78
balcony
integer
1 when the listing has a balcony, 0 when not.
bicycleroom
integer
1 when the listing has a bicycle room, 0 when not.
brownstone
integer
1 when the listing has brownstone construction, 0 when not.
businesscenter
integer
1 when the listing has a business centre, 0 when not.
childrenplayroom
integer
1 when the listing has a children's playroom, 0 when not.
cityview
integer
1 when the listing has a city view, 0 when not.
commonoutdoorspace
integer
1 when the listing has shared outdoor space, 0 when not.
concierge
integer
1 when the listing has a concierge, 0 when not.
convertible
integer
1 when the listing has a convertible layout, 0 when not.
courtyard
integer
1 when the listing has a courtyard, 0 when not.
diningroom
integer
1 when the listing has a separate dining room, 0 when not.
diplomatsok
integer
1 when diplomats are accepted, 0 when not.
dishwasher
integer
1 when the listing has a dishwasher, 0 when not.
doorman
integer
1 when the listing has a doorman, 0 when not.
driveway
integer
1 when the listing has a driveway, 0 when not.
duplex
integer
1 when the listing has a duplex layout, 0 when not.
eatinkitchen
integer
1 when the listing has an eat-in kitchen, 0 when not.
elevator
integer
1 when the listing has an elevator, 0 when not.
fireplace
integer
1 when the listing has a fireplace, 0 when not.
freightelevator
integer
1 when the listing has a freight elevator, 0 when not.
furnished
integer
1 when the listing has furniture included, 0 when not.
garage
integer
1 when the listing has a garage, 0 when not.
garden
integer
1 when the listing has a garden, 0 when not.
granitekitchen
integer
1 when the listing has a granite kitchen, 0 when not.
greenbuilding
integer
1 when the listing has a green-building certification, 0 when not.
hardwood
integer
1 when the listing has hardwood floors, 0 when not.
healthclub
integer
1 when the listing has a health club, 0 when not.
highceilings
integer
1 when the listing has high ceilings, 0 when not.
highspeedinternet
integer
1 when the listing has high-speed internet, 0 when not.
lakeview
integer
1 when the listing has a lake view, 0 when not.
laundry
integer
1 when the listing has laundry on site, 0 when not.
laundryinunit
integer
1 when the listing has laundry in the unit, 0 when not.
laundryservices
integer
1 when the listing has a laundry service, 0 when not.
light
integer
1 when the listing has good natural light, 0 when not.
liveinsuper
integer
1 when the listing has a live-in super, 0 when not.
livework
integer
1 when the listing has live/work use, 0 when not.
loft
integer
1 when the listing has a loft layout, 0 when not.
lounge
integer
1 when the listing has a residents' lounge, 0 when not.
maidservice
integer
1 when the listing has maid service, 0 when not.
marblebath
integer
1 when the listing has a marble bathroom, 0 when not.
microwave
integer
1 when the listing has a microwave, 0 when not.
multilevel
integer
1 when the listing has more than one level, 0 when not.
newconstruction
integer
1 when the listing has new construction, 0 when not.
nofee
integer
1 when there is no broker fee, 0 when there is.
nursery
integer
1 when the listing has a nursery, 0 when not.
onemonthfree
integer
1 when one month free is being offered, 0 when not.
openkitchen
integer
1 when the listing has an open kitchen, 0 when not.
openview
integer
1 when the listing has an open view, 0 when not.
originaldetails
integer
1 when the listing has original period detail, 0 when not.
outdoorspace
integer
1 when the listing has private outdoor space, 0 when not.
parkview
integer
1 when the listing has a park view, 0 when not.
patio
integer
1 when the listing has a patio, 0 when not.
piedaterre
integer
1 when the listing has pied-a-terre use, 0 when not.
pool
integer
1 when the listing has a pool, 0 when not.
privatedeck
integer
1 when the listing has a private deck, 0 when not.
receivingroom
integer
1 when the listing has a receiving room, 0 when not.
recreationalroom
integer
1 when the listing has a recreation room, 0 when not.
renovated
integer
1 when the listing has been renovated, 0 when not.
riverview
integer
1 when the listing has a river view, 0 when not.
roofdeck
integer
1 when the listing has a roof deck, 0 when not.
roomforrent
integer
1 when the listing has a room let separately, 0 when not.
seniorhousing
integer
1 when the listing has senior-housing status, 0 when not.
skylineview
integer
1 when the listing has a skyline view, 0 when not.
sponsorunit
integer
1 when the listing has sponsor-unit status, 0 when not.
stainlesssteelappliances
integer
1 when the listing has stainless steel appliances, 0 when not.
storage
integer
1 when the listing has storage, 0 when not.
subway
integer
1 when the listing has a subway line within walking distance, 0 when not.
terrace
integer
1 when the listing has a terrace, 0 when not.
triplex
integer
1 when the listing has a triplex layout, 0 when not.
vacationrental
integer
1 when the listing has vacation-rental use, 0 when not.
valet
integer
1 when the listing has valet service, 0 when not.
virtualdoorman
integer
1 when the listing has a virtual doorman, 0 when not.
walkincloset
integer
1 when the listing has a walk-in closet, 0 when not.
walltowallcarpeting
integer
1 when the listing has wall-to-wall carpeting, 0 when not.
washer
integer
1 when the listing has a washer, 0 when not.
wheelchairaccess
integer
1 when the listing has wheelchair access, 0 when not.
wifi
integer
1 when the listing has building wifi, 0 when not.
winecooler
integer
1 when the listing has a wine cooler, 0 when not.
curl -G "https://api.realtymx.com/properties/amenities/1173026" \ -d "apiKey=$API_KEY"
[
{
"balcony": 0,
"bicycleroom": 1,
"brownstone": 0,
"businesscenter": 0,
"childrenplayroom": 0,
"cityview": 0,
"commonoutdoorspace": 1,
"concierge": 1,
"convertible": 0,
"courtyard": 0,
"diningroom": 0,
"diplomatsok": 0,
"dishwasher": 1,
"doorman": 1,
"driveway": 0,
"duplex": 0,
"eatinkitchen": 0,
"elevator": 1,
"fireplace": 0,
"freightelevator": 0,
"furnished": 0,
"garage": 1,
"garden": 0,
"granitekitchen": 0,
"greenbuilding": 0,
"hardwood": 0,
"healthclub": 1,
"highceilings": 0,
"highspeedinternet": 0,
"lakeview": 0,
"laundry": 1,
"laundryinunit": 0,
"laundryservices": 0,
"light": 1,
"liveinsuper": 0,
"livework": 0,
"loft": 0,
"lounge": 0,
"maidservice": 0,
"marblebath": 0,
"microwave": 0,
"multilevel": 0,
"newconstruction": 0,
"nofee": 0,
"nursery": 0,
"onemonthfree": 0,
"openkitchen": 0,
"openview": 0,
"originaldetails": 0,
"outdoorspace": 1,
"parkview": 0,
"patio": 0,
"piedaterre": 0,
"pool": 0,
"privatedeck": 0,
"receivingroom": 0,
"recreationalroom": 0,
"renovated": 0,
"riverview": 0,
"roofdeck": 0,
"roomforrent": 0,
"seniorhousing": 0,
"skylineview": 0,
"sponsorunit": 0,
"stainlesssteelappliances": 0,
"storage": 1,
"subway": 1,
"terrace": 1,
"triplex": 0,
"vacationrental": 0,
"valet": 1,
"virtualdoorman": 0,
"walkincloset": 0,
"walltowallcarpeting": 0,
"washer": 0,
"wheelchairaccess": 0,
"wifi": 1,
"winecooler": 0
}
]
Listings
List listing photos
Returns specific listing's photos
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
id
numeric
required
Provide id of the property
Optional
isMLS
boolean
optional
default false
Set to <code>true</code> when the ID belongs to an MLS feed listing rather than one of your own. The two have separate ID spaces, so the same number means different listings.
Response fields 3
filename
string
Absolute URL of the file.
name
string
Caption for the photo. Often empty.
sort
integer
Position in the photo order. Lower comes first.
curl -G "https://api.realtymx.com/properties/photos/1704647" \ -d "apiKey=$API_KEY"
[
{
"filename": "https://images.realty.mx/3f9a1c7e5b204d8a9e6f1c3b7d5a2e84/image…",
"name": "Floor Plan",
"sort": 0
},
{
"filename": "https://images.realty.mx/3f9a1c7e5b204d8a9e6f1c3b7d5a2e84/image…",
"name": "Floor Plan",
"sort": 0
}
]
Listings
Retrieve random listings
Returns random list of listings
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
count
numeric
required
Provide number of properties to show
Optional
status
string
optional
default 2
Provide specific status id(s) [CSV] (Sales - 1, Rentals - 2, In Contract - 11, Offer In - 12, App. Pending - 21, Sold - 19, Rented - 22)
cat
string
optional
Provide specific neighborhood id(s) [CSV]
priceMin
numeric
optional
default 0
Provide minimum price
priceMax
numeric
optional
default 100000000
Provide maximum price
bedsMin
numeric
optional
default 0
Provide minimum bedroom count
bedsMax
numeric
optional
default 10
Provide maximum bedroom count
agent
numeric
optional
default 0
Provide specific agent id
extras
string
optional
Provide special limitation (featured / furnished / developments / nofee / openhouse)
Response fields 25
agents_agent_email
string
Agent's email. This is the address the lead endpoints match on.
agents_agent_id
integer
Id of the agent on the listing. Pass it to /agents/{id}.
agents_agent_image
string
Absolute URL of the agent's photo. Empty when they have none.
agents_agent_name
string
Agent's full name.
agents_agent_phone
string
Agent's mobile, falling back to their office line.
agents_coagent_email
string
Co-agent's email.
agents_coagent_id
string
Id of the co-agent, when the listing has one.
agents_coagent_image
string
Absolute URL of the co-agent's photo.
agents_coagent_name
string
Co-agent's full name.
agents_coagent_phone
string
Co-agent's mobile, falling back to their office line.
essentials_bath
number
Bathroom count. Decimal: 2.5 is two full baths and a powder room.
essentials_beds
number
Bedroom count. Decimal, so a half is 0.5 — studios come back as 0.
essentials_rooms
number
Total room count, the New York convention. Decimal.
essentials_size
integer
Interior size in square feet. 0 when it was never recorded.
essentials_type
string
Property type: Apartment, House, Townhouse, Condo, Coop, Condop, Building, Commercial, Office, Retail, Investment, Development, Land or N/A.
essentials_units
integer
Number of units in the building the listing sits in.
extras_featured
integer
1 when the client has flagged the listing as featured.
extras_nofee
integer
1 when there is no broker fee.
extras_openhouse
integer
1 when an open house is scheduled and has not yet passed, or the listing is by appointment. Derived, not stored.
financials_price
number
Asking price: monthly rent on a rental, sale price on a sale.
main_address
string
Display address, already assembled. House number, street, apartment and neighbourhood when the address is public; cross streets and neighbourhood when main_hide_address is 1. Print this rather than building your own from the parts.
main_id
integer
RealtyMX listing id. Pass it to /properties/{id}, /properties/photos/{id} and the lead endpoints.
main_image
string
Absolute URL of the primary photo, already resolved against the client's image host. Empty when the listing has no photo.
main_neighborhood
string
Neighbourhood name, from the same list /neighborhoods returns.
main_status
string
Listing state, as words: For Sale, For Rent, In Contract, Offer In, App. Pending, Sold or Rented.
curl -G "https://api.realtymx.com/properties/random/2" \ -d "apiKey=$API_KEY"
[
{
"agents_agent_email": "[email protected]",
"agents_agent_id": 4890,
"agents_agent_image": "4890.jpg",
"agents_agent_name": "Jane Doe",
"agents_agent_phone": "212-555-0142",
"agents_coagent_email": "",
"agents_coagent_id": "",
"agents_coagent_image": "",
"agents_coagent_name": "",
"agents_coagent_phone": "",
"essentials_bath": 1.0,
"essentials_beds": 1.0,
"essentials_rooms": 2.0,
"essentials_size": 0,
"essentials_type": "Apartment",
"essentials_units": 0,
"extras_featured": 0,
"extras_nofee": 0,
"extras_openhouse": 0,
"financials_price": 7500.0,
"main_address": "East 63rd Street Upper East Side",
"main_id": 1848519,
"main_image": "https://images.realty.mx/3f9a1c7e5b204d8a9e6f1c3b7d5a2e84/image…",
"main_neighborhood": "Greenwich Village/West Village",
"main_status": "For Rent"
}
]
Listings
Record a listing view
Update View Counter for specific listing
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
listingID
numeric
required
listing id
What it records
Increments the website view counter for one listing. It is a counter bump, not an analytics event — nothing about the visitor is stored, and repeated calls simply keep counting.
Response fields 3
MESSAGE
string
Human-readable outcome. Empty on a plain success.
STATUS
string
Success or Error. Check this, not the HTTP status — these endpoints answer 200 either way.
STATUS_CODE
string
Machine-readable outcome. 100 and 101 are success; 2xx codes are rejections, and the 25x range means a required field was missing or malformed.
curl -X POST "https://api.realtymx.com/properties/viewCounter/" \ -d "apiKey=$API_KEY" \ -d "listingID=…"
{
"STATUS": "Success",
"STATUS_CODE": "200",
"MESSAGE": "Hit Counter successfully updated for listing id 482913 to 137"
}
Buildings
List buildings
Returns list of buildings
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
Optional
page
numeric
optional
default 1
Provide page number (1 or higher)
count
numeric
optional
default 10
Provide number of buildings per page. Max 50 buildings
cat
string
optional
Provide specific neighborhood id(s) [CSV]
amenities
string
optional
Provide amenities limitation [CSV] (doorman / outdoorSpace / elevator / healthClub / pets / newConstruction / nofee)
category
string
optional
Provide specific category value(s) Accepts a comma-separated list. 0=Open Listings, 1=Semi-Exclusive Listings, 2=Exculsive Listings, 6=Co-Broke
hasListings
boolean
optional
default false
If set to TRUE, only reutrns buildings with listings
extras
string
optional
Provide special limitation (featured / developments)
Response fields 2
BUILDINGS
array
The page of buildings.
TOTAL_COUNT
integer
How many records match in total, ignoring paging. Divide by your page size to know how many pages there are.
Response fields — each building 93
ac
integer
1 when air conditioning is included in the rent.
address
string
Street address.
beds
string
Bedroom counts available in the building, as free text.
bicycleroom
integer
1 when the building has a bicycle room, 0 when not.
bldgsize
string
Building size in square feet.
brownstone
integer
1 when the building has brownstone construction, 0 when not.
built
integer
Year built. 0 when unknown.
businesscenter
integer
1 when the building has a business centre, 0 when not.
cableinternet
integer
1 when cable or internet is included in the rent.
cat
integer
Neighbourhood id. Matches cat_id from /neighborhoods.
category
integer
Neighbourhood name for the building.
childrenplayroom
integer
1 when the building has a children's playroom, 0 when not.
city
string
City.
common
integer
Common charges, in dollars.
commonoutdoorspace
integer
1 when the building has shared outdoor space, 0 when not.
concession
string
Concession offered across the building, in the owner's own words.
concierge
integer
1 when the building has a concierge, 0 when not.
contact
integer
Contact person for the building.
cooling
integer
Cooling: 1 central AC, 2 window/wall, 3 none. -1 in older records means present without a type.
courtyard
integer
1 when the building has a courtyard, 0 when not.
deduct
number
Deductible share of maintenance, as a percentage.
doorman
integer
1 when the building has a doorman, 0 when not.
down
integer
Required down payment, as a percentage.
driveway
integer
1 when the building has a driveway, 0 when not.
electricity
integer
1 when electricity is included in the rent.
elevator
integer
1 when the building has an elevator, 0 when not.
era
integer
Era bucket the client sorts by: 1 pre-war, 2 post-war, 3 new construction.
exp
integer
Annual operating expenses, in dollars — investment listings only.
ext
string
Whether the building has an extension, as free text.
families
integer
Number of families the building is zoned for.
featured
integer
1 when the client has flagged the building as featured.
fee
integer
Broker fee, as a percentage.
freightelevator
integer
1 when the building has a freight elevator, 0 when not.
garage
integer
1 when the building has a garage, 0 when not.
gas
integer
1 when gas is included in the rent.
greenbuilding
integer
1 when the building has a green-building certification, 0 when not.
healthclub
integer
1 when the building has a health club, 0 when not.
heat
integer
1 when heat is included in the rent.
heating
integer
Heating: -1 when the building has heat, 0 when it does not or it is unknown.
highspeedinternet
integer
1 when the building has high-speed internet, 0 when not.
house
string
House number.
id
integer
Record id.
imgcount
integer
How many photos the building has. Fetch them from /buildings/photos/{id}.
incrent
integer
Annual rent roll, in dollars — investment listings only.
keys
string
How keys are handled — client shorthand, e.g. KIO (keys in office), NONE. Internal-facing.
laundry
integer
1 when the building has laundry on site, 0 when not.
listingcount
integer
How many active listings the building currently has.
location
string
The two cross streets.
lotsize
string
Lot size in square feet.
lounge
integer
1 when the building has a residents' lounge, 0 when not.
maidservice
integer
1 when the building has maid service, 0 when not.
maintanance
integer
Monthly maintenance or common charge, in dollars. The column's own spelling, kept so existing integrations do not break.
maxbuy
integer
Highest sale price currently asked in the building, in dollars.
maxrent
integer
Highest rent currently asked in the building, in dollars.
minbuy
integer
Lowest sale price currently asked in the building, in dollars.
minrent
integer
Lowest rent currently asked in the building, in dollars.
name
string
Building name, when it has one.
new
integer
1 while the building is flagged as newly added, 0 once that lapses.
newconstruction
integer
1 when the building has new construction, 0 when not.
newdevelopment
integer
-1 when the building is a new development, 0 when not. A legacy encoding: -1 is the true value here, not 1.
nofee
integer
1 when the building's listings carry no broker fee.
nursery
integer
1 when the building has a nursery, 0 when not.
op
integer
1 when the building offers an owner-paid commission.
openhouse
string (date)
Start of the building's next open house.
openhouse2
string (date)
Start of the building's second open house.
openhouseend
string (date)
End of the building's next open house.
openhouseend2
string (date)
End of the building's second open house.
parking
integer
Parking: 1 indoor, 2 outdoor, 3 heated, 4 valet, 5 street without permit, 6 easy street without permit, 7 street with permit, 8 assigned.
pets
integer
Pet policy as a code: 1 cats only, 2 small pets, 3 pets OK, 4 dogs only, 98 case by case, 99 no pets.
phone
string
Phone number.
pool
integer
1 when the building has a pool, 0 when not.
price
integer
Asking price for the building as a whole, in dollars, when it is itself for sale.
propertytype
string
Building type in the client's vocabulary, e.g. Walkup, Elevator, Highrise.
public_note
string
Description of the building, written for publication.
receivingroom
integer
1 when the building has a receiving room, 0 when not.
roofdeck
integer
1 when the building has a roof deck, 0 when not.
state
string
Two-letter state code.
status
integer
1 when the building is active, 0 when it is not.
storage
integer
1 when the building has storage, 0 when not.
stories
integer
Number of floors.
style
string
Architectural style, e.g. Low-rise, Pre-war. N/A when unset.
subway
integer
1 when the building has a subway line within walking distance, 0 when not.
subwayline
string
Subway lines serving the building, comma separated, e.g. N,R,W,4,5,6,L.
taxes
integer
Annual property tax, in dollars.
type
string
Building type, e.g. Apartment, Townhouse.
units
integer
Number of units in the building.
valet
integer
1 when the building has valet service, 0 when not.
virtualdoorman
integer
1 when the building has a virtual doorman, 0 when not.
water
integer
1 when water is included in the rent.
website
string
The building's own website.
wheelchairaccess
integer
1 when the building has wheelchair access, 0 when not.
wifi
integer
1 when the building has building wifi, 0 when not.
zip
string
Postal code.
curl -G "https://api.realtymx.com/buildings" \ -d "apiKey=$API_KEY"
{
"BUILDINGS": [
{
"ac": 1,
"address": "North 6th Street",
"beds": "1-3",
"bicycleroom": 0,
"bldgsize": "6623",
"brownstone": 0,
"built": 0,
"businesscenter": 0,
"cableinternet": 1,
"cat": 18,
"category": 2,
"childrenplayroom": 0,
"city": "Brooklyn",
"common": 33312,
"commonoutdoorspace": 0,
"concession": "1 month free on a 13-month lease",
"concierge": 0,
"contact": 0,
"cooling": 0,
"courtyard": 0,
"deduct": 65.0,
"doorman": 0,
"down": 20,
"driveway": 0,
"electricity": 1,
"elevator": 0,
"era": 0,
"exp": 4500,
"ext": "Yes",
"families": 3,
"featured": 0,
"fee": 15,
"freightelevator": 0,
"garage": 0,
"gas": 1,
"greenbuilding": 0,
"healthclub": 0,
"heat": 1,
"heating": 0,
"highspeedinternet": 0,
"house": "120",
"id": 26992,
"imgcount": 0,
"incrent": 235000,
"keys": "NONE",
"laundry": 0,
"listingcount": 41,
"location": "Bedford Avenue and Driggs Avenue",
"lotsize": "2500",
"lounge": 0,
"maidservice": 0,
"maintanance": 1000,
"maxbuy": 2450000,
"maxrent": 9500,
"minbuy": 875000,
"minrent": 3200,
"name": "The Driggs",
"new": 0,
"newconstruction": 0,
"newdevelopment": -1,
"nofee": 0,
"nursery": 0,
"op": 0,
"openhouse": "2026-09-12 12:00:00",
"openhouse2": "2026-09-13 11:00:00",
"openhouseend": "2026-09-12 14:00:00",
"openhouseend2": "2026-09-13 13:00:00",
"parking": 0,
"pets": 0,
"phone": "212-555-0142",
"pool": 0,
"price": 12500000,
"propertytype": "Walkup",
"public_note": "Classic pre-war brownstone on a quiet, tree-lined block.",
"receivingroom": 0,
"roofdeck": 0,
"state": "NY",
"status": 1,
"storage": 0,
"stories": 5,
"style": "Low-rise",
"subway": 0,
"subwayline": "4/5/6",
"taxes": 3160,
"type": "Apartment",
"units": 10,
"valet": 0,
"virtualdoorman": 0,
"water": 1,
"website": "https://example.com/167-north-6th",
"wheelchairaccess": 0,
"wifi": 0,
"zip": "11211"
}
],
"TOTAL_COUNT": 29786
}
Buildings
Retrieve a building
Returns specific building
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
id
numeric
required
ID of the record to return, as given by the matching search endpoint.
Response fields 91
ac
integer
1 when air conditioning is included in the rent.
address
string
Street address.
beds
string
Bedroom counts available in the building, as free text.
bicycleroom
integer
1 when the building has a bicycle room, 0 when not.
bldgsize
string
Building size in square feet.
brownstone
integer
1 when the building has brownstone construction, 0 when not.
built
integer
Year built. 0 when unknown.
businesscenter
integer
1 when the building has a business centre, 0 when not.
cableinternet
integer
1 when cable or internet is included in the rent.
cat
integer
Neighbourhood id. Matches cat_id from /neighborhoods.
childrenplayroom
integer
1 when the building has a children's playroom, 0 when not.
city
string
City.
common
integer
Common charges, in dollars.
commonoutdoorspace
integer
1 when the building has shared outdoor space, 0 when not.
concession
string
Concession offered across the building, in the owner's own words.
concierge
integer
1 when the building has a concierge, 0 when not.
contact
integer
Contact person for the building.
cooling
integer
Cooling: 1 central AC, 2 window/wall, 3 none. -1 in older records means present without a type.
courtyard
integer
1 when the building has a courtyard, 0 when not.
deduct
number
Deductible share of maintenance, as a percentage.
doorman
integer
1 when the building has a doorman, 0 when not.
down
integer
Required down payment, as a percentage.
driveway
integer
1 when the building has a driveway, 0 when not.
electricity
integer
1 when electricity is included in the rent.
elevator
integer
1 when the building has an elevator, 0 when not.
era
integer
Era bucket the client sorts by: 1 pre-war, 2 post-war, 3 new construction.
exp
integer
Annual operating expenses, in dollars — investment listings only.
ext
string
Whether the building has an extension, as free text.
families
integer
Number of families the building is zoned for.
featured
integer
1 when the client has flagged the building as featured.
fee
integer
Broker fee, as a percentage.
freightelevator
integer
1 when the building has a freight elevator, 0 when not.
garage
integer
1 when the building has a garage, 0 when not.
gas
integer
1 when gas is included in the rent.
greenbuilding
integer
1 when the building has a green-building certification, 0 when not.
healthclub
integer
1 when the building has a health club, 0 when not.
heat
integer
1 when heat is included in the rent.
heating
integer
Heating: -1 when the building has heat, 0 when it does not or it is unknown.
highspeedinternet
integer
1 when the building has high-speed internet, 0 when not.
house
string
House number.
id
integer
Record id.
imgcount
integer
How many photos the building has. Fetch them from /buildings/photos/{id}.
incrent
integer
Annual rent roll, in dollars — investment listings only.
keys
string
How keys are handled — client shorthand, e.g. KIO (keys in office), NONE. Internal-facing.
laundry
integer
1 when the building has laundry on site, 0 when not.
location
string
The two cross streets.
lotsize
string
Lot size in square feet.
lounge
integer
1 when the building has a residents' lounge, 0 when not.
maidservice
integer
1 when the building has maid service, 0 when not.
maintanance
integer
Monthly maintenance or common charge, in dollars. The column's own spelling, kept so existing integrations do not break.
maxbuy
integer
Highest sale price currently asked in the building, in dollars.
maxrent
integer
Highest rent currently asked in the building, in dollars.
minbuy
integer
Lowest sale price currently asked in the building, in dollars.
minrent
integer
Lowest rent currently asked in the building, in dollars.
name
string
Building name, when it has one.
new
integer
1 while the building is flagged as newly added, 0 once that lapses.
newconstruction
integer
1 when the building has new construction, 0 when not.
newdevelopment
integer
-1 when the building is a new development, 0 when not. A legacy encoding: -1 is the true value here, not 1.
nofee
integer
1 when the building's listings carry no broker fee.
nursery
integer
1 when the building has a nursery, 0 when not.
op
integer
1 when the building offers an owner-paid commission.
openhouse
string (date)
Start of the building's next open house.
openhouse2
string (date)
Start of the building's second open house.
openhouseend
string (date)
End of the building's next open house.
openhouseend2
string (date)
End of the building's second open house.
parking
integer
Parking: 1 indoor, 2 outdoor, 3 heated, 4 valet, 5 street without permit, 6 easy street without permit, 7 street with permit, 8 assigned.
pets
integer
Pet policy as a code: 1 cats only, 2 small pets, 3 pets OK, 4 dogs only, 98 case by case, 99 no pets.
phone
string
Phone number.
pool
integer
1 when the building has a pool, 0 when not.
price
integer
Asking price for the building as a whole, in dollars, when it is itself for sale.
propertytype
string
Building type in the client's vocabulary, e.g. Walkup, Elevator, Highrise.
public_note
string
Description of the building, written for publication.
receivingroom
integer
1 when the building has a receiving room, 0 when not.
roofdeck
integer
1 when the building has a roof deck, 0 when not.
state
string
Two-letter state code.
status
integer
1 when the building is active, 0 when it is not.
storage
integer
1 when the building has storage, 0 when not.
stories
integer
Number of floors.
style
string
Architectural style, e.g. Low-rise, Pre-war. N/A when unset.
subway
integer
1 when the building has a subway line within walking distance, 0 when not.
subwayline
string
Subway lines serving the building, comma separated, e.g. N,R,W,4,5,6,L.
taxes
integer
Annual property tax, in dollars.
type
string
Building type, e.g. Apartment, Townhouse.
units
integer
Number of units in the building.
valet
integer
1 when the building has valet service, 0 when not.
virtualdoorman
integer
1 when the building has a virtual doorman, 0 when not.
water
integer
1 when water is included in the rent.
website
string
The building's own website.
wheelchairaccess
integer
1 when the building has wheelchair access, 0 when not.
wifi
integer
1 when the building has building wifi, 0 when not.
zip
string
Postal code.
curl -G "https://api.realtymx.com/buildings/26992" \ -d "apiKey=$API_KEY"
[
{
"ac": 1,
"address": "North 6th Street",
"beds": "1-3",
"bicycleroom": 0,
"bldgsize": "6623",
"brownstone": 0,
"built": 0,
"businesscenter": 0,
"cableinternet": 1,
"cat": 18,
"childrenplayroom": 0,
"city": "Brooklyn",
"common": 33312,
"commonoutdoorspace": 0,
"concession": "1 month free on a 13-month lease",
"concierge": 0,
"contact": 0,
"cooling": 0,
"courtyard": 0,
"deduct": 65.0,
"doorman": 0,
"down": 20,
"driveway": 0,
"electricity": 1,
"elevator": 0,
"era": 0,
"exp": 4500,
"ext": "Yes",
"families": 3,
"featured": 0,
"fee": 15,
"freightelevator": 0,
"garage": 0,
"gas": 1,
"greenbuilding": 0,
"healthclub": 0,
"heat": 1,
"heating": 0,
"highspeedinternet": 0,
"house": "120",
"id": 26992,
"imgcount": 0,
"incrent": 235000,
"keys": "NONE",
"laundry": 0,
"location": "Bedford Avenue and Driggs Avenue",
"lotsize": "2500",
"lounge": 0,
"maidservice": 0,
"maintanance": 1000,
"maxbuy": 2450000,
"maxrent": 9500,
"minbuy": 875000,
"minrent": 3200,
"name": "The Driggs",
"new": 0,
"newconstruction": 0,
"newdevelopment": -1,
"nofee": 0,
"nursery": 0,
"op": 0,
"openhouse": "2026-09-12 12:00:00",
"openhouse2": "2026-09-13 11:00:00",
"openhouseend": "2026-09-12 14:00:00",
"openhouseend2": "2026-09-13 13:00:00",
"parking": 0,
"pets": 0,
"phone": "212-555-0142",
"pool": 0,
"price": 12500000,
"propertytype": "Walkup",
"public_note": "Classic pre-war brownstone on a quiet, tree-lined block.",
"receivingroom": 0,
"roofdeck": 0,
"state": "NY",
"status": 1,
"storage": 0,
"stories": 5,
"style": "Low-rise",
"subway": 0,
"subwayline": "N,R,W,4,5,6,L",
"taxes": 3160,
"type": "Apartment",
"units": 10,
"valet": 0,
"virtualdoorman": 0,
"water": 1,
"website": "https://example.com/167-north-6th",
"wheelchairaccess": 0,
"wifi": 0,
"zip": "11211"
}
]
Buildings
List building photos
Returns specific building's photos
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
id
numeric
required
Provide id of the building
Response fields 3
filename
string
Absolute URL of the file.
name
string
Caption for the photo, e.g. Floor Plan. Often empty.
sort
integer
Position in the photo order. Lower comes first.
curl -G "https://api.realtymx.com/buildings/photos/32340" \ -d "apiKey=$API_KEY"
[
{
"filename": "https://images.realty.mx/3f9a1c7e5b204d8a9e6f1c3b7d5a2e84/image…",
"name": "Floor Plan",
"sort": 2
},
{
"filename": "https://images.realty.mx/3f9a1c7e5b204d8a9e6f1c3b7d5a2e84/image…",
"name": "Floor Plan",
"sort": 0
}
]
Neighborhoods
List neighborhoods
Returns list of all neighborhoods
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
Response fields 7
cat_id
integer
Neighbourhood id. Pass it as cat to /properties.
cat_name
string
Neighbourhood name.
img
string
Filename of the neighbourhood image.
imgname
string
Caption for the neighbourhood image.
parent
integer
Id of the parent neighbourhood — the borough or region this one sits in. 0 at the top level.
sort
integer
Position in the neighbourhood order. Lower comes first.
text_1
string
Neighbourhood description, as HTML.
curl -G "https://api.realtymx.com/neighborhoods" \ -d "apiKey=$API_KEY"
[
{
"cat_id": 52,
"cat_name": "Parkchester",
"img": "parkchester.jpg",
"imgname": "Parkchester",
"parent": 51,
"sort": 0,
"text_1": "<p>Quiet, tree-lined streets a short walk from the express train.</p>"
},
{
"cat_id": 53,
"cat_name": "Westchester Square",
"img": "parkchester.jpg",
"imgname": "Parkchester",
"parent": 51,
"sort": 0,
"text_1": "<p>Quiet, tree-lined streets a short walk from the express train.</p>"
}
]
Neighborhoods
Retrieve a neighborhood
Returns specific neighborhood
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
id
numeric
required
ID of the record to return, as given by the matching search endpoint.
Response fields 7
cat_id
integer
Neighbourhood id. Pass it as cat to /properties.
cat_name
string
Neighbourhood name.
img
string
Filename of the neighbourhood image.
imgname
string
Caption for the neighbourhood image.
parent
integer
Id of the parent neighbourhood — the borough or region this one sits in. 0 at the top level.
sort
integer
Position in the neighbourhood order. Lower comes first.
text_1
string
Neighbourhood description, as HTML.
curl -G "https://api.realtymx.com/neighborhoods/52" \ -d "apiKey=$API_KEY"
[
{
"cat_id": 52,
"cat_name": "Parkchester",
"img": "parkchester.jpg",
"imgname": "Parkchester",
"parent": 51,
"sort": 0,
"text_1": "<p>Quiet, tree-lined streets a short walk from the express train.</p>"
}
]
Agents
Search agents
Returns list of agents
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
Optional
sort
string
optional
default last
Provide sorting factor (first / last / office / date)
order
string
optional
default asc
Provide sorting order (desc / asc)
includeSuspend
string
optional
default false
Include Agents with Suspend status
name
string
optional
Provide agent's first or last name
language
string
optional
Provide a language an agent speaks
office
numeric
optional
default 0
Provide agent's office id
team
string
optional
Provide team id or list of tema ids separated by commas
Response fields 32
agent_custom_field_1
string
First free-text field, whatever the client uses it for. Frequently internal — check before publishing it.
agent_custom_field_2
string
Second free-text field, whatever the client uses it for.
agent_link_name_1
string
Label for the agent's first custom link.
agent_link_name_2
string
Label for the agent's second custom link.
agent_link_name_3
string
Label for the agent's third custom link.
agent_link_url_1
string
URL of the agent's first custom link.
agent_link_url_2
string
URL of the agent's second custom link.
agent_link_url_3
string
URL of the agent's third custom link.
bio
string
Long-form biography. Carries newlines.
date_update
string (date)
When the record was last updated.
email
string
Email address.
fax
string
Fax number.
firstname
string
Agent's first name.
id
integer
Record id.
image
string
Absolute URL of the agent's photo, already resolved against the client's image host. Empty when they have none.
isagent
integer
1 for an agent, 0 for a non-agent staff record. Filter on it if you only want agents.
language
string
Languages the agent speaks, comma separated. /agents/search's name for lang.
lastname
string
Agent's last name.
link_facebook
string
Agent's Facebook URL.
link_instagram
string
Agent's Instagram URL.
link_linkedin
string
Agent's LinkedIn URL.
link_twitter
string
Agent's X/Twitter URL.
link_youtube
string
Agent's YouTube URL.
mobile
string
Agent's mobile number.
office
integer
Office id. Pass it to /offices/{id}.
phone
string
Phone number.
quote
string
A short line the agent chose to be quoted on.
rls_agent_id
string
The agent's RLS/REBNY identifier, e.g. RBNY-37693.
specialty
string
The agent's stated specialty, e.g. a neighbourhood or a property type.
status
string
Agent state: Active, Silent or Suspend. Silent agents are hidden from the public site.
teams
array
The agent's teams, each with its id and name. Only returned when you ask for them.
title
string
The agent's licence title, e.g. Licensed Real Estate Salesperson.
curl -G "https://api.realtymx.com/agents/search" \ -d "apiKey=$API_KEY"
[
{
"agent_custom_field_1": "Internal: desk 212-555-0142",
"agent_custom_field_2": "gac3223456",
"agent_link_name_1": "Book an appointment",
"agent_link_name_2": "In the press",
"agent_link_name_3": "My newsletter",
"agent_link_url_1": "https://example.com/book",
"agent_link_url_2": "https://example.com/press",
"agent_link_url_3": "https://example.com/newsletter",
"bio": "Fifteen years selling on the Upper East Side, and a third of that business from past clients.",
"date_update": "July, 01 2019 18:00:58",
"email": "[email protected]",
"fax": "212-555-0142",
"firstname": "Jane",
"id": 2,
"image": "example.com/images/agents/2.jpg",
"isagent": 1,
"language": "French, English",
"lastname": "Doe",
"link_facebook": "https://www.facebook.com/examplerealty",
"link_instagram": "https://www.instagram.com/examplerealty",
"link_linkedin": "https://www.linkedin.com/company/examplerealty",
"link_twitter": "https://twitter.com/examplerealty",
"link_youtube": "https://www.youtube.com/@examplerealty",
"mobile": "212-555-0142",
"office": 6,
"phone": "212-555-0142",
"quote": "The right apartment is worth waiting a week for.",
"rls_agent_id": "RBNY-00000",
"specialty": "Luxury rentals, Upper East Side",
"status": "Silent",
"title": "Licensed Real Estate Salesperson"
}
]
Agents
Retrieve an agent
Returns specific agent
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
id
numeric
required
ID of the record to return, as given by the matching search endpoint.
Optional
includeSuspend
string
optional
default false
Include Agents with Suspend status
Response fields 35
agent_custom_field_1
string
First free-text field, whatever the client uses it for. Frequently internal — check before publishing it.
agent_custom_field_2
string
Second free-text field, whatever the client uses it for.
agent_link_name_1
string
Label for the agent's first custom link.
agent_link_name_2
string
Label for the agent's second custom link.
agent_link_name_3
string
Label for the agent's third custom link.
agent_link_url_1
string
URL of the agent's first custom link.
agent_link_url_2
string
URL of the agent's second custom link.
agent_link_url_3
string
URL of the agent's third custom link.
bio
string
Long-form biography. Carries newlines.
email
string
Email address.
fax
string
Fax number.
firstname
string
Agent's first name.
id
integer
Record id.
image
string
Absolute URL of the agent's photo, already resolved against the client's image host. Empty when they have none.
isagent
integer
1 for an agent, 0 for a non-agent staff record. Filter on it if you only want agents.
lang
string
Languages the agent speaks, comma separated.
lastname
string
Agent's last name.
link_facebook
string
Agent's Facebook URL.
link_instagram
string
Agent's Instagram URL.
link_linkedin
string
Agent's LinkedIn URL.
link_twitter
string
Agent's X/Twitter URL.
link_youtube
string
Agent's YouTube URL.
listingslink
string
Ready-made link to the agent's listings on the client's own site.
mobile
string
Agent's mobile number.
office
integer
Office id. Pass it to /offices/{id}.
phone
string
Phone number.
presslink
string
Ready-made link to the agent's press on the client's own site.
quote
string
A short line the agent chose to be quoted on.
rls_agent_id
string
The agent's RLS/REBNY identifier, e.g. RBNY-37693.
searchwithmelink
string
Ready-made link to a search scoped to this agent on the client's own site.
specialty
string
The agent's stated specialty, e.g. a neighbourhood or a property type.
status
string
Agent state: Active, Silent or Suspend. Silent agents are hidden from the public site.
teamid
string
Id of the team the agent belongs to, when they belong to one.
testimoniallink
string
Ready-made link to the agent's testimonials on the client's own site.
title
string
The agent's licence title, e.g. Licensed Real Estate Salesperson.
curl -G "https://api.realtymx.com/agents/2" \ -d "apiKey=$API_KEY"
[
{
"agent_custom_field_1": "Internal: desk 212-555-0142",
"agent_custom_field_2": "gac3223456",
"agent_link_name_1": "Book an appointment",
"agent_link_name_2": "In the press",
"agent_link_name_3": "My newsletter",
"agent_link_url_1": "https://example.com/book",
"agent_link_url_2": "https://example.com/press",
"agent_link_url_3": "https://example.com/newsletter",
"bio": "Fifteen years selling on the Upper East Side, and a third of that business from past clients.",
"email": "[email protected]",
"fax": "212-555-0142",
"firstname": "Jane",
"id": 2,
"image": "example.com/images/agents/2.jpg",
"isagent": 1,
"lang": "French, English",
"lastname": "Doe",
"link_facebook": "https://www.facebook.com/examplerealty",
"link_instagram": "https://www.instagram.com/examplerealty",
"link_linkedin": "https://www.linkedin.com/company/examplerealty",
"link_twitter": "https://twitter.com/examplerealty",
"link_youtube": "https://www.youtube.com/@examplerealty",
"listingslink": "example.com/?page=properties&status=1,11,12,2,21&agentid=2",
"mobile": "212-555-0142",
"office": 6,
"phone": "212-555-0142",
"presslink": "example.com/?page=press&agentid=2",
"quote": "The right apartment is worth waiting a week for.",
"rls_agent_id": "RBNY-00000",
"searchwithmelink": "example.com/?page=properties&status=1,11,12,2,21&isMLS=1&isComp…",
"specialty": "Luxury rentals, Upper East Side",
"status": "Silent",
"teamid": "11",
"testimoniallink": "example.com/?page=testimonials&id=2",
"title": "Licensed Real Estate Salesperson"
}
]
Agents
List an agent's posts
Returns specific agent's blogs
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
id
numeric
required
ID of the record to return, as given by the matching search endpoint.
Response fields 7
author
string
Byline.
body
string
Body copy, as HTML.
caption
string
Caption for the record's image.
date_create
string (date)
Publication date of the post.
id
integer
Record id.
image
string
Filename of the post's image, relative to the client's blog image directory.
title
string
Title of the record.
curl -G "https://api.realtymx.com/agents/blog/2" \ -d "apiKey=$API_KEY"
[
{
"author": "Jane Doe",
"body": "<p>This is an unpublished API smoke test for the block-tier Rea…",
"caption": "",
"date_create": "April, 13 2026 00:00:00",
"id": 5,
"image": "3_6110.gif",
"title": "One Domino Square API Smoke Test"
}
]
Agents
List an agent's testimonials
Returns specific agent's testimonials
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
id
numeric
required
ID of the record to return, as given by the matching search endpoint.
Response fields 6
commentor
string
Who left the testimonial.
content
string
The testimonial text.
date_create
string (date)
When the testimonial was left.
id
integer
Record id.
image
string
Filename of the image attached to the testimonial.
title
string
Headline the client gave the testimonial. Usually empty.
curl -G "https://api.realtymx.com/agents/testimonials/2" \ -d "apiKey=$API_KEY"
[
{
"commentor": "Jane Doe",
"content": "They found us the right place in three weeks and made the whole thing painless.",
"date_create": "July, 17 2012 15:30:10",
"id": 332,
"image": "231.jpg",
"title": "Worth every minute of the search"
}
]
Agents
Search testimonials
Returns list of testimonials
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
Optional
order
string
optional
default asc
Provide sorting order (desc / asc)
limit
numeric
optional
default 20
Provide number of properties per page (10 / 20 / 40)
page
numeric
optional
default 1
Provide page number (1 or higher)
Response fields 2
TESTIMONIALS
array
The page of testimonials.
TOTAL_COUNT
integer
How many records match in total, ignoring paging. Divide by your page size to know how many pages there are.
Response fields — each testimonial 8
agentid
integer
Id of the agent the testimonial is about.
commentor
string
Who left the testimonial.
content
string
The testimonial text.
date_create
string (date)
When the testimonial was left.
id
integer
Record id.
image
string
Filename of the image attached to the testimonial.
rownum
integer
Position of this row in the full result set, counting from 1 across pages.
title
string
Headline the client gave the testimonial. Usually empty.
curl -G "https://api.realtymx.com/agents/testimonialsSearch" \ -d "apiKey=$API_KEY"
{
"TESTIMONIALS": [
{
"agentid": 150,
"commentor": "Jane Doe",
"content": "They found us the right place in three weeks and made the whole thing painless.",
"date_create": "November, 03 2004 18:53:39",
"id": 2,
"image": "231.jpg",
"rownum": 1,
"title": "Worth every minute of the search"
}
],
"TOTAL_COUNT": 3012
}
Agents
List an agent's videos
Returns specific agent's videos
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
id
numeric
required
ID of the record to return, as given by the matching search endpoint.
Response fields 7
date_create
string (date)
When the record was created.
description
string
Description of the record.
embed
string
Video URL, ready to embed — YouTube, Vimeo or whatever the client set.
id
integer
Record id.
image
string
Filename of the video's thumbnail.
sort
integer
Position in the video order. Lower comes first; 999 is the default.
title
string
Title of the record.
curl -G "https://api.realtymx.com/agents/videos/2" \ -d "apiKey=$API_KEY"
[
{
"date_create": "February, 19 2025 11:44:27",
"description": "Walk-through of the townhouse and its garden.",
"embed": "https://youtu.be/9mZRBuws4Ys?si=Xh-Dd733VopdxOBY",
"id": 5,
"image": "428-clinton-street.jpg",
"sort": 999,
"title": "428 Clinton Street - Townhouse"
}
]
Teams
List teams
Returns list of all teams
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
Response fields 18
agents
array
The team's members, each one a full agent record in the same shape /agents/{id} returns.
bio
string
Long-form biography. Carries newlines.
groupemail
string
The team's shared email address.
groupimage
string
Absolute URL of the team photo.
hide_team_listings_from_agent
string
1 when the client's site should show a team listing under the team rather than the individual agent.
id
integer
Record id.
logo
string
Filename of the logo image.
name
string
Name of the record.
phone1
string
The team's main phone number.
phone2
string
The team's second phone number.
social_f
string
Team's Facebook URL.
social_g
string
Team's Google profile URL. Legacy; rarely set.
social_i
string
Team's Instagram URL.
social_l
string
Team's LinkedIn URL.
social_p
string
Team's Pinterest URL.
social_t
string
Team's X/Twitter URL.
social_y
string
Team's YouTube URL.
website
string
The building's own website.
curl -G "https://api.realtymx.com/teams" \ -d "apiKey=$API_KEY"
[
{
"agents": [
{
"agent_custom_field_1": "Internal: desk 212-555-0142",
"agent_custom_field_2": "gac3223456",
"agent_link_name_1": "Book an appointment",
"agent_link_name_2": "In the press",
"agent_link_name_3": "My newsletter",
"agent_link_url_1": "https://example.com/book",
"agent_link_url_2": "https://example.com/press",
"agent_link_url_3": "https://example.com/newsletter",
"bio": "Fifteen years selling on the Upper East Side, and a third of that business from past clients.",
"email": "[email protected]",
"fax": "212-555-0142",
"firstname": "Jane",
"id": 1373,
"image": "example.com/images/agents/1373.JPG",
"isagent": 1,
"lang": "French, German, Greek",
"lastname": "Doe",
"link_facebook": "https://www.facebook.com/examplerealty",
"link_instagram": "",
"link_linkedin": "",
"link_twitter": "",
"link_youtube": "",
"mobile": "212-555-0142",
"office": 6,
"phone": "212-555-0142",
"quote": "The right apartment is worth waiting a week for.",
"rls_agent_id": "RBNY-00000",
"specialty": "Luxury rentals, Upper East Side",
"status": "Active",
"title": "Licensed Real Estate Salesperson"
}
],
"bio": "",
"groupemail": "[email protected]",
"groupimage": "example.com/images/teams/8A477563-2590-8847-AE657254892872A7.jpg",
"hide_team_listings_from_agent": "0",
"id": 11,
"logo": "example-realty.png",
"name": "The Rivera Team",
"phone1": "212-555-0142",
"phone2": "212-555-0142",
"social_f": "https://www.facebook.com/examplerealty",
"social_g": "",
"social_i": "https://www.instagram.com/examplerealty",
"social_l": "https://www.linkedin.com/company/examplerealty",
"social_p": "https://www.pinterest.com/examplerealty",
"social_t": "https://twitter.com/examplerealty",
"social_y": "https://www.youtube.com/@examplerealty",
"website": "https://example.com/teams/rivera"
}
]
Teams
Retrieve a team
Returns specific team
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
id
numeric
required
ID of the record to return, as given by the matching search endpoint.
Response fields 18
agents
array
The team's members, each one a full agent record in the same shape /agents/{id} returns.
bio
string
Long-form biography. Carries newlines.
groupemail
string
The team's shared email address.
groupimage
string
Absolute URL of the team photo.
hide_team_listings_from_agent
string
1 when the client's site should show a team listing under the team rather than the individual agent.
id
integer
Record id.
logo
string
Filename of the logo image.
name
string
Name of the record.
phone1
string
The team's main phone number.
phone2
string
The team's second phone number.
social_f
string
Team's Facebook URL.
social_g
string
Team's Google profile URL. Legacy; rarely set.
social_i
string
Team's Instagram URL.
social_l
string
Team's LinkedIn URL.
social_p
string
Team's Pinterest URL.
social_t
string
Team's X/Twitter URL.
social_y
string
Team's YouTube URL.
website
string
The building's own website.
curl -G "https://api.realtymx.com/teams/11" \ -d "apiKey=$API_KEY"
[
{
"agents": [
{
"agent_custom_field_1": "Internal: desk 212-555-0142",
"agent_custom_field_2": "gac3223456",
"agent_link_name_1": "Book an appointment",
"agent_link_name_2": "In the press",
"agent_link_name_3": "My newsletter",
"agent_link_url_1": "https://example.com/book",
"agent_link_url_2": "https://example.com/press",
"agent_link_url_3": "https://example.com/newsletter",
"bio": "Fifteen years selling on the Upper East Side, and a third of that business from past clients.",
"email": "[email protected]",
"fax": "212-555-0142",
"firstname": "Jane",
"id": 1373,
"image": "example.com/images/agents/1373.JPG",
"isagent": 1,
"lang": "French, German, Greek",
"lastname": "Doe",
"link_facebook": "https://www.facebook.com/examplerealty",
"link_instagram": "",
"link_linkedin": "",
"link_twitter": "",
"link_youtube": "",
"mobile": "212-555-0142",
"office": 6,
"phone": "212-555-0142",
"quote": "The right apartment is worth waiting a week for.",
"rls_agent_id": "RBNY-00000",
"specialty": "Luxury rentals, Upper East Side",
"status": "Active",
"title": "Licensed Real Estate Salesperson"
}
],
"bio": "",
"groupemail": "[email protected]",
"groupimage": "example.com/images/teams/8A477563-2590-8847-AE657254892872A7.jpg",
"hide_team_listings_from_agent": "0",
"id": 11,
"logo": "example-realty.png",
"name": "The Rivera Team",
"phone1": "212-555-0142",
"phone2": "212-555-0142",
"social_f": "https://www.facebook.com/examplerealty",
"social_g": "",
"social_i": "https://www.instagram.com/examplerealty",
"social_l": "https://www.linkedin.com/company/examplerealty",
"social_p": "https://www.pinterest.com/examplerealty",
"social_t": "https://twitter.com/examplerealty",
"social_y": "https://www.youtube.com/@examplerealty",
"website": "https://example.com/teams/rivera"
}
]
Teams
List a team's testimonials
Returns specific agent's testimonials
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
id
numeric
required
ID of the record to return, as given by the matching search endpoint.
Response fields 6
commentor
string
Who left the testimonial.
content
string
The testimonial text.
date_create
string (date)
When the testimonial was left.
id
integer
Record id.
image
string
Filename of the image attached to the testimonial.
title
string
Headline the client gave the testimonial. Usually empty.
curl -G "https://api.realtymx.com/teams/testimonials/16" \ -d "apiKey=$API_KEY"
[
{
"commentor": "Jane Doe",
"content": "They found us the right place in three weeks and made the whole thing painless.",
"date_create": "April, 29 2022 10:08:08",
"id": 2561,
"image": "231.jpg",
"title": "Worth every minute of the search"
}
]
Offices
List offices
Returns list of all offices
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
Response fields 10
address
string
Street address.
city
string
City.
email
string
Email address.
fax
string
Fax number.
id
integer
Record id.
logo
string
Filename of the logo image.
name
string
Name of the record.
phone
string
Phone number.
state
string
Two-letter state code.
zip
string
Postal code.
curl -G "https://api.realtymx.com/offices" \ -d "apiKey=$API_KEY"
[
{
"address": "12 Example Plaza, 15th Floor",
"city": "New York",
"email": "[email protected]",
"fax": "212-555-0142",
"id": 2,
"logo": "example-realty.png",
"name": "Union Square",
"phone": "212-555-0142",
"state": "NY",
"zip": "10003"
}
]
Offices
Retrieve an office
Returns specific office
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
id
numeric
required
ID of the record to return, as given by the matching search endpoint.
Response fields 10
address
string
Street address.
city
string
City.
email
string
Email address.
fax
string
Fax number.
id
integer
Record id.
logo
string
Filename of the logo image.
name
string
Name of the record.
phone
string
Phone number.
state
string
Two-letter state code.
zip
string
Postal code.
curl -G "https://api.realtymx.com/offices/2" \ -d "apiKey=$API_KEY"
[
{
"address": "12 Example Plaza, 15th Floor",
"city": "New York",
"email": "[email protected]",
"fax": "212-555-0142",
"id": 2,
"logo": "example-realty.png",
"name": "Union Square",
"phone": "212-555-0142",
"state": "NY",
"zip": "10003"
}
]
Blog
Search blog posts
Returns list of blog articles
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
count
numeric
required
Provide number of articles to show
Optional
label
numeric
optional
default 0
Provide a keyword to search for within a title or subtitle.
month_year
string
optional
Provide month and year combination from which to extract articles. (4-2014)
Response fields 7
author
string
Byline.
body
string
Body copy, as HTML.
caption
string
Caption for the record's image.
date_create
string (date)
Publication date of the post.
id
integer
Record id.
image
string
Filename of the post's image, relative to the client's blog image directory.
title
string
Title of the record.
curl -G "https://api.realtymx.com/blog/search/5" \ -d "apiKey=$API_KEY"
[
{
"author": "Jane Doe",
"body": "<p>This is an unpublished API smoke test for the block-tier Rea…",
"caption": "",
"date_create": "April, 13 2026 00:00:00",
"id": 5,
"image": "3_6110.gif",
"title": "One Domino Square API Smoke Test"
}
]
Blog
Create a blog post
Inserts new blog post
Requires a key with private-key access. Without it the call returns 200 carrying "STATUS": "Error".
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
title
string
required
Blog post title
body
string
required
Blog post body (HTML)
publish_date
string
required
Publish date (e.g. 2024-01-15)
Optional
author
string
optional
Author name
image
any
optional
Image file upload
image_base64
string
optional
Base64 encoded image (supports data:image/...;base64,
caption
string
optional
Image caption
agent_id
numeric
optional
default 0
Agent ID
friendly
string
optional
URL-friendly slug (auto-generated from title if empty)
status
numeric
optional
default 1
Post status (1 = published)
labels
any
optional
JSON array of label IDs
buildings
any
optional
JSON array of building IDs
Access
Writing to the blog requires a key with private-key access enabled. Without it the call still returns 200, carrying "status": "Error" and Not allowed to use this method with this API key.
Images
Send a picture either as a multipart file upload in image, or as image_base64 — which accepts a bare Base64 string or a full data:image/png;base64,… URI. Accepted types are JPG, JPEG, PNG, GIF and WEBP, up to 5 MB.
An image failure does not fail the post. The post is created without it and the response carries an IMAGEERROR alongside "STATUS": "Success" — so check for that key rather than trusting the status alone.
Labels and buildings
labels and buildings take a JSON array of numeric IDs, as a string: "[4, 5]". Every element must be numeric or the whole post is rejected. Fetch the available IDs from /blogs/labels and /buildings.
Slugs
Leave friendly empty and a URL slug is derived from the title, with a numeric suffix added if that slug is taken. Supply your own and it is used as given.
Response fields 3
ITEM
array
The record the call created or read, as a one-element array.
MESSAGE
string
Human-readable outcome. Empty on a plain success.
STATUS
string
Success or Error. Check this, not the HTTP status — these endpoints answer 200 either way.
Response fields — each item 11
agent_id
string
Id of the agent the record belongs to.
author
string
Byline.
body
string
Body copy, as HTML.
caption
string
Caption for the record's image.
created_by
integer
Id of the account that created the record.
date_create
string (date)
Publication date of the post.
friendly
string
URL slug generated from the title.
id
integer
Record id.
image
string
Filename of the post's image, relative to the client's blog image directory.
status
integer
Record state.
title
string
Title of the record.
curl -X POST "https://api.realtymx.com/blog" \ -d "apiKey=$API_KEY" \ -d "title=…" \ -d "body=…" \ -d "publish_date=…"
{
"STATUS": "Success",
"MESSAGE": "",
"ITEM": [
{
"id": 31,
"date_create": "April, 10 2026 00:00:00",
"created_by": 7,
"author": "Jane Doe",
"title": "NYC Luxury Market Update",
"body": "<p>Article HTML…</p>",
"image": "31_3920.jpg",
"caption": "Skyline view",
"agent_id": "",
"friendly": "nyc-luxury-market-update",
"status": 1
}
]
}
Blog
Update a blog post
Updates an existing blog post
Requires a key with private-key access. Without it the call returns 200 carrying "STATUS": "Error".
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
id
numeric
required
Blog post ID to update
Optional
title
string
optional
Blog post title
body
string
optional
Blog post body (HTML)
publish_date
string
optional
Publish date (e.g. 2024-01-15)
author
string
optional
Author name
image
any
optional
Image file upload
image_base64
string
optional
Base64 encoded image (supports data:image/...;base64,
caption
string
optional
Image caption
agent_id
numeric
optional
default -1
Agent ID (0 to clear, -1 = not provided)
friendly
string
optional
URL-friendly slug (auto-generated from title if title is provided and friendly is empty)
status
numeric
optional
default -1
Post status (1 = published, 0 = unpublished, -1 = not provided)
labels
any
optional
JSON array of label IDs
buildings
any
optional
JSON array of building IDs
Updates are partial
Only the fields you send are changed; anything omitted keeps its current value. PUT is an alias for POST here and behaves identically — it does not clear the fields you leave out.
The same private-key requirement, image handling and JSON-array rules as creating a post apply.
Response fields 3
ITEM
array
The record the call created or read, as a one-element array.
MESSAGE
string
Human-readable outcome. Empty on a plain success.
STATUS
string
Success or Error. Check this, not the HTTP status — these endpoints answer 200 either way.
Response fields — each item 11
agent_id
string
Id of the agent the record belongs to.
author
string
Byline.
body
string
Body copy, as HTML.
caption
string
Caption for the record's image.
created_by
integer
Id of the account that created the record.
date_create
string (date)
Publication date of the post.
friendly
string
URL slug generated from the title.
id
integer
Record id.
image
string
Filename of the post's image, relative to the client's blog image directory.
status
integer
Record state.
title
string
Title of the record.
curl -X POST "https://api.realtymx.com/blog/31" \ -d "apiKey=$API_KEY"
{
"STATUS": "Success",
"MESSAGE": "",
"ITEM": [
{
"id": 31,
"date_create": "April, 10 2026 00:00:00",
"created_by": 7,
"author": "Jane Doe",
"title": "Updated title",
"body": "<p>Article HTML…</p>",
"image": "31_3920.jpg",
"caption": "Skyline view",
"agent_id": "",
"friendly": "nyc-luxury-market-update",
"status": 1
}
]
}
Blog
Retrieve a blog post
Returns specific blog
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
id
numeric
required
ID of the record to return, as given by the matching search endpoint.
Response fields 7
author
string
Byline.
body
string
Body copy, as HTML.
caption
string
Caption for the record's image.
date_create
string (date)
Publication date of the post.
id
integer
Record id.
image
string
Filename of the post's image, relative to the client's blog image directory.
title
string
Title of the record.
curl -G "https://api.realtymx.com/blogs/5" \ -d "apiKey=$API_KEY"
[
{
"author": "Jane Doe",
"body": "<p>This is an unpublished API smoke test for the block-tier Rea…",
"caption": "",
"date_create": "April, 13 2026 00:00:00",
"id": 5,
"image": "3_6110.gif",
"title": "One Domino Square API Smoke Test"
}
]
Blog
List blog labels
Returns list of all blog labels
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
Response fields 2
id
integer
Record id.
label
string
Label name.
curl -G "https://api.realtymx.com/blogs/labels" \ -d "apiKey=$API_KEY"
[
{
"id": 1,
"label": "#NYCRealEstate"
}
]
Press
Search press articles
Returns list of press article
Required
count
numeric
required
Provide number of articles to show
Optional
keyword
string
optional
Provide a keyword to search for within a title or subtitle.
month_year
string
optional
Provide month and year combination from which to extract articles. (4-2014)
agent_id
string
optional
Provide list of agent_id
Response fields 13
agent_id
integer
Id of the agent the record belongs to.
author
string
Byline.
body
string
Body copy, as HTML.
date_create
string (date)
When the record was created.
date_publish
string (date)
Date the piece was published.
filename
string
Filename of the scanned clipping, when the piece was filed as an image rather than a link.
id
integer
Record id.
logo
string
Filename of the publication's logo.
publicationname
string
Name of the publication the piece ran in.
sub_title
string
Standfirst or deck.
title
string
Title of the record.
type
string
How the piece was filed: Article, Video, Award.
url
string
Destination URL.
curl -G "https://api.realtymx.com/press/search/5" \ -d "apiKey=$API_KEY"
[
{
"agent_id": 1958,
"author": "Jane Doe",
"body": "<p>Owner-paid commissions typically equal a month's rent.</p>",
"date_create": "August, 12 2026 09:22:20",
"date_publish": "August, 11 2026 00:00:00",
"filename": "44.GIF",
"id": 1574,
"logo": "example-lifestyles.png",
"publicationname": "Example Lifestyles",
"sub_title": "",
"title": "A Historic Renovation on the Upper East Side",
"type": "Article",
"url": "https://www.example.com/a-historic-renovation-on-the-upper-east-side/"
}
]
Press
Retrieve a press article
Returns specific press article
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
id
numeric
required
ID of the record to return, as given by the matching search endpoint.
Response fields 13
agent_id
integer
Id of the agent the record belongs to.
author
string
Byline.
body
string
Body copy, as HTML.
date_create
string (date)
When the record was created.
date_publish
string (date)
Date the piece was published.
filename
string
Filename of the scanned clipping, when the piece was filed as an image rather than a link.
id
integer
Record id.
logo
string
Filename of the publication's logo.
publicationname
string
Name of the publication the piece ran in.
sub_title
string
Standfirst or deck.
title
string
Title of the record.
type
string
How the piece was filed: Article, Video, Award.
url
string
Destination URL.
curl -G "https://api.realtymx.com/press/1574" \ -d "apiKey=$API_KEY"
[
{
"agent_id": 1958,
"author": "Jane Doe",
"body": "<p>Owner-paid commissions typically equal a month's rent.</p>",
"date_create": "August, 12 2026 09:22:20",
"date_publish": "August, 11 2026 00:00:00",
"filename": "44.GIF",
"id": 1574,
"logo": "example-lifestyles.png",
"publicationname": "Example Lifestyles",
"sub_title": "",
"title": "A Historic Renovation on the Upper East Side",
"type": "Article",
"url": "https://www.example.com/a-historic-renovation-on-the-upper-east-side/"
}
]
Videos
Search videos
Returns list of videos
Required
count
numeric
required
Provide number of vidoes to show
Optional
keyword
string
optional
Provide a keyword to search for within a title
month_year
string
optional
Provide month and year combination from which to extract videos (4-2014)
Response fields 7
date_create
string (date)
When the record was created.
description
string
Description of the record.
embed
string
Video URL, ready to embed — YouTube, Vimeo or whatever the client set.
id
integer
Record id.
image
string
Filename of the video's thumbnail.
sort
integer
Position in the video order. Lower comes first; 999 is the default.
title
string
Title of the record.
curl -G "https://api.realtymx.com/videos/search/5" \ -d "apiKey=$API_KEY"
[
{
"date_create": "February, 19 2025 11:44:27",
"description": "Walk-through of the townhouse and its garden.",
"embed": "https://youtu.be/9mZRBuws4Ys?si=Xh-Dd733VopdxOBY",
"id": 5,
"image": "428-clinton-street.jpg",
"sort": 999,
"title": "428 Clinton Street - Townhouse"
}
]
Videos
Retrieve a video
Returns specific video
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
id
numeric
required
ID of the record to return, as given by the matching search endpoint.
Response fields 7
date_create
string (date)
When the record was created.
description
string
Description of the record.
embed
string
Video URL, ready to embed — YouTube, Vimeo or whatever the client set.
id
integer
Record id.
image
string
Filename of the video's thumbnail.
sort
integer
Position in the video order. Lower comes first; 999 is the default.
title
string
Title of the record.
curl -G "https://api.realtymx.com/videos/5" \ -d "apiKey=$API_KEY"
[
{
"date_create": "February, 19 2025 11:44:27",
"description": "Walk-through of the townhouse and its garden.",
"embed": "https://youtu.be/9mZRBuws4Ys?si=Xh-Dd733VopdxOBY",
"id": 5,
"image": "428-clinton-street.jpg",
"sort": 999,
"title": "428 Clinton Street - Townhouse"
}
]
Links
List links
Returns list of all links
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
Response fields 7
category
string
Name of the category the record sits in.
company
string
Name of the linked company.
contact
string
Name of the contact person at the company.
email
string
The company's email address.
image
string
Filename of the company's logo.
phone
string
The company's phone number.
url
string
Destination URL.
curl -G "https://api.realtymx.com/links" \ -d "apiKey=$API_KEY"
[
{
"category": "Resources",
"company": "NYC Electric Company",
"contact": "Jane Doe",
"email": "[email protected]",
"image": "coned.gif",
"phone": "212-555-0142",
"url": "http://www.coned.com"
}
]
Links
List link categories
Returns list of all link categories
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
Response fields 3
category
string
Name of the category the record sits in.
id
integer
Record id.
sort
integer
Sort position the client set. Lower comes first.
curl -G "https://api.realtymx.com/links/categories" \ -d "apiKey=$API_KEY"
[
{
"category": "Resources",
"id": 1,
"sort": 0
},
{
"category": "Special",
"id": 3,
"sort": 2
}
]
Links
List links in a category
Returns list of all links within a category
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
category
numeric
required
Provide category id
Response fields 7
category
string
Name of the category the record sits in.
company
string
Name of the linked company.
contact
string
Name of the contact person at the company.
email
string
The company's email address.
image
string
Filename of the company's logo.
phone
string
The company's phone number.
url
string
Destination URL.
curl -G "https://api.realtymx.com/links/1" \ -d "apiKey=$API_KEY"
[
{
"category": "Resources",
"company": "NYC Electric Company",
"contact": "Jane Doe",
"email": "[email protected]",
"image": "coned.gif",
"phone": "212-555-0142",
"url": "http://www.coned.com"
},
{
"category": "Resources",
"company": "Uber EATS",
"contact": "Jane Doe",
"email": "[email protected]",
"image": "ubereats_banner (1).png",
"phone": "212-555-0142",
"url": "https://ubereats.com"
}
]
Labels
List labels
Returns list of all offices
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
Response fields 2
id
integer
Record id.
labelname
string
Label name.
curl -G "https://api.realtymx.com/labels" \ -d "apiKey=$API_KEY"
[
{
"id": 1,
"labelname": "Test"
},
{
"id": 4,
"labelname": "HPF"
},
{
"id": 6,
"labelname": "april"
}
]
Labels
Retrieve a label
Returns specific labels
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
id
numeric
required
ID of the record to return, as given by the matching search endpoint.
Response fields 2
id
integer
Record id.
labelname
string
Label name.
curl -G "https://api.realtymx.com/labels/1" \ -d "apiKey=$API_KEY"
[
{
"id": 1,
"labelname": "Test"
}
]
Documents
Search documents
Returns list of doc records
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
Optional
order
string
optional
default desc
Provide sorting order (desc / asc)
limit
numeric
optional
default 40
Provide number of docs per page (10 / 20 / 40)
page
numeric
optional
default 1
Provide page number (1 or higher)
id
numeric
optional
default 0
Provide lsit of doc ids
category
string
optional
default 0
Provide document category
Documents, not this reference
Searches the document records attached to listings and buildings in the client database. It has nothing to do with the page you are reading, which is why that page is served from /api-docs — /docs was already taken by this endpoint.
Response fields 2
DOCS
array
The page of documents.
TOTAL_COUNT
integer
How many records match in total, ignoring paging. Divide by your page size to know how many pages there are.
Response fields — each document 6
date_create
string (date)
When the record was created.
date_update
string (date)
When the record was last updated.
filename
string
Absolute URL of the document. Serve it straight to the browser.
id
integer
Record id.
name
string
Document name, e.g. Owner Opt-Out Authorization Form.
rownum
integer
Position of this row in the full result set, counting from 1 across pages.
curl -G "https://api.realtymx.com/docs/search" \ -d "apiKey=$API_KEY"
{
"DOCS": [
{
"date_create": "October, 10 2025 17:48:32",
"date_update": "October, 10 2025 17:48:32",
"filename": "https://images.realty.mx/3f9a1c7e5b204d8a9e6f1c3b7d5a2e84/20F81…",
"id": 152596,
"name": "Owner Opt-Out Authorization Form",
"rownum": 1
},
{
"date_create": "September, 18 2025 17:07:17",
"date_update": "September, 18 2025 17:07:17",
"filename": "https://images.realty.mx/3f9a1c7e5b204d8a9e6f1c3b7d5a2e84/B2875…",
"id": 152040,
"name": "Owner Opt-Out Authorization Form",
"rownum": 2
}
],
"TOTAL_COUNT": 51
}
Leads
Create a lead
Inserts new leads (we call alerts) into the database
If your key has private-key access, this call must be signed: send token and stamp alongside apiKey. See authentication.
Required
apiKey
string
required
Your API Key
firstname
string
required
Provide client first name
lastname
string
required
Provide client last name
email
string
required
Provide client email address
Optional
phone
string
optional
Provide client phone number
comment
string
optional
Provide client comment
price
numeric
optional
default 0
Provide alert price. Based on this price argument, API will automatically calculate alert price range with +-10%
alertType
string
optional
default For Rent
Provide specific alert type. For Sale or For Rent
minBeds
numeric
optional
default 0
Provide minimum bedroom value which the alert search is looking for
minBath
numeric
optional
default 0
Provide minimum bathroom value which the alert search is looking for
alertAddress
string
optional
Provide specific address which areas alert search look for.
alertSource
string
optional
Provide source name where this alert is originated.
agentEmail
string
optional
Provide a specific agent email address who will be assigned to newly created alert.
listingID
numeric
optional
default 0
Provide specific listing id that user contact to, if this is provided, it will override price, listingType, areas argument.
Leads are called alerts
What the website calls a lead is stored as an alert, and the search criteria attached to it drive the matching that follows. The response reports STATUS_CODE 101 on success.
Duplicates
On one client database a repeat lead from the same address, for the same listing or within thirty minutes, is folded into the existing record as a dated comment instead of creating a second row. The response is still a success, and still reports an insert. Elsewhere every call creates a new alert.
Response fields 3
MESSAGE
string
Human-readable outcome. Empty on a plain success.
STATUS
string
Success or Error. Check this, not the HTTP status — these endpoints answer 200 either way.
STATUS_CODE
string
Machine-readable outcome. 100 and 101 are success; 2xx codes are rejections, and the 25x range means a required field was missing or malformed.
curl -X POST "https://api.realtymx.com/alerts" \ -d "apiKey=$API_KEY" \ -d "stamp=$STAMP" \ -d "token=$TOKEN" \ -d "firstname=…" \ -d "lastname=…" \ -d "email=…"
{
"STATUS": "Success",
"STATUS_CODE": "101",
"MESSAGE": "Successfuly inserted Alert for [email protected]."
}
Leads
Create a listing lead
Inserts new lead (alert) with specific listing.
If your key has private-key access, this call must be signed: send token and stamp alongside apiKey. See authentication.
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
listingID
numeric
required
Provide RealtyMX listing id that user contacting to
firstname
string
required
Provide client first name
lastname
string
required
Provide client last name
email
string
required
Provide client email address
Optional
phone
string
optional
Provide client phone number
comment
string
optional
Provide client comment
isRLS
boolean
optional
default false
Indicates if the listing is RLS or NOT
isMLS
boolean
optional
default false
Indicates if the listing is MLS or NOT
agentID
numeric
optional
default -1
Provide specific agent id. Agent ID can be obtained from http://api.realtymx.com/agents/search
clientID
numeric
optional
default -1
Provide specific client id. Client ID can be obtained from http://api.realtymx.com/clients/list
When to use this instead
Use this when the enquiry is about one known listing: the listing is attached to the lead, and its price, size and neighbourhood seed the search criteria. Use the general lead endpoint when the enquiry carries criteria but no specific listing.
Response fields 3
MESSAGE
string
Human-readable outcome. Empty on a plain success.
STATUS
string
Success or Error. Check this, not the HTTP status — these endpoints answer 200 either way.
STATUS_CODE
string
Machine-readable outcome. 100 and 101 are success; 2xx codes are rejections, and the 25x range means a required field was missing or malformed.
curl -X POST "https://api.realtymx.com/alerts/listingAlert" \ -d "apiKey=$API_KEY" \ -d "stamp=$STAMP" \ -d "token=$TOKEN" \ -d "listingID=…" \ -d "firstname=…" \ -d "lastname=…" \ -d "email=…"
{
"STATUS": "Success",
"STATUS_CODE": "101",
"MESSAGE": "Successfuly inserted Alert for listing id 482913."
}
Marketplace
Submit a marketplace lead
Accepts third-party marketplace leads using legacy insertLead payload
Authenticated with HTTP Basic in addition to apiKey, and open to partner keys that are not website-enabled. See authentication.
Required
agent_email
string
required
Email of the agent to assign the lead to. Must match an active agent, or the lead is refused.
first_name
string
required
Enquirer's first name.
last_name
string
required
Enquirer's last name.
email
string
required
Enquirer's email address. Validated for format.
listing_id
string
required
RealtyMX listing the enquiry is about. Looked up in your database first, then the MLS feed.
Optional
client_id
string
optional
Your identifier for the enquirer, if you have one.
cell_phone
string
optional
Enquirer's phone number.
message
string
optional
The enquiry text, filed as the lead's comment.
bed
string
optional
Bedroom count. Falls back to <code>beds</code>, then to the matched listing.
beds
string
optional
Alias for <code>bed</code>, accepted for legacy payloads.
bath
string
optional
Bathroom count. Falls back to the matched listing.
price
string
optional
Asking price seen on the marketplace, used to seed the lead's price range.
address
string
optional
Street address as shown on the marketplace.
unit
string
optional
Apartment or unit number.
back_link
string
optional
URL of the marketplace page the enquiry came from.
source_name
string
optional
Name to file the lead's source under. Defaults to your registered marketplace name.
For partner marketplaces
Third-party portals post leads here. It is the one endpoint outside the website-API gate, and the one that uses HTTP Basic — see authentication. The body must be JSON, declared with Content-Type: application/json; a form post is refused.
Required
listing_id, agent_email, first_name, last_name and email. Everything else is optional context that improves the lead. agent_email must match an active agent in the client database, or the lead is refused rather than filed unassigned.
This endpoint uses real status codes. Unlike the other writes, it answers 400, 401 and 404 on the status line and reports the reason in ERROR, not MESSAGE. Every outcome, successful or not, also raises an email notification to RealtyMX.
Listing matching
listing_id is looked up in the client database first and the MLS feed second. Beds, baths, price and address from the matched listing fill in anything the payload left out, which is why sending a wrong ID with correct details is worse than sending fewer details.
Response fields 7
AGENT
string
Agent the lead was assigned to.
ALERT_ID
string
Id of the lead row just created.
DATABASE
string
Which client database the lead landed in.
MARKETPLACE
string
Marketplace the lead came from.
MESSAGE
string
Human-readable outcome. Empty on a plain success.
SOURCE
string
Source the lead was filed under.
SUCCESS
boolean
true when the lead was filed.
curl -X POST \ "https://api.realtymx.com/marketplace?apiKey=$API_KEY" \ -u "$PARTNER_KEY:$PARTNER_SECRET" \ -H "Content-Type: application/json" \ -d '{"listing_id": "482913", "email": "[email protected]"}'
{
"SUCCESS": true,
"ALERT_ID": "34305",
"DATABASE": "demo",
"SOURCE": "Rentberry",
"MARKETPLACE": "Rentberry",
"AGENT": "Jane Doe",
"MESSAGE": "Lead successfully created"
}
Clients
List clients
Returns list of clients who are registered as member from front-end my account
If your key has private-key access, this call must be signed: send token and stamp alongside apiKey. See authentication.
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
Optional
order
string
optional
default desc
Provide sorting order (desc / asc)
limit
numeric
optional
default 20
Provide number of properties per page (10 / 20 / 40)
page
numeric
optional
default 1
Provide page number (1 or higher)
id
numeric
optional
default 0
Provide client id
email
string
optional
Provide client email
verified
boolean
optional
True to bring verified users. False to bring unverified users
includeDealInfo
boolean
optional
default false
True to bring deal infomration assocaited with this client
Who is returned
Only clients registered as members through the website, not every contact in the CRM. An empty result means nobody has registered, not that the client list is empty.
Response fields 2
CLIENTS
array
The page of clients.
TOTAL_COUNT
integer
How many records match in total, ignoring paging. Divide by your page size to know how many pages there are.
Response fields — each client 23
active
integer
1 when the account is active. Goes to 0 after 120 days without a login.
address
string
Client's street address.
agent_email
string
Email of the agent the client is assigned to.
agent_id
integer
Id of the agent the record belongs to.
agent_name
string
Agent the client is assigned to.
city
string
City.
date_create
string
When the record was created.
date_update
string
When the record was last updated.
dob
string
Date of birth.
email
string
Email address.
firstName
string
Client's first name.
home_Phone
string
Client's home phone.
id
integer
Record id.
lastName
string
Client's last name.
office_Phone
string
Client's office phone.
phone
string
Phone number.
progress
string
Where the client sits in the client's own milestone list.
source
string
How the client came in, from the client's own source list.
state
string
Two-letter state code.
status
string
Active or Inactive, derived from active.
type
string
Which client types the record is tagged with, comma separated and trailing: Buyer, Seller, Renter, Member, Investor, Guarantor, Tenant, clientOwner, Other.
verify
string
The member's verification code. Empty until they register.
zip
string
Postal code.
curl -G "https://api.realtymx.com/clients/list" \ -d "apiKey=$API_KEY" \ -d "stamp=$STAMP" \ -d "token=$TOKEN"
{
"CLIENTS": [
{
"id": 4821,
"firstName": "Jane",
"lastName": "Doe",
"email": "[email protected]",
"active": 1,
"type": "Renter,Member,",
"verify": "8F3A21C4",
"date_create": "2026-02-11 09:14:03",
"date_update": "2026-08-02 17:22:41",
"phone": "212-555-0142",
"home_Phone": "",
"office_Phone": "",
"status": "Active",
"agent_name": "Alex Rivera",
"agent_email": "[email protected]",
"agent_id": 1989,
"progress": "Actively looking",
"source": "Website",
"dob": "1985-04-02",
"address": "245 E 63rd St",
"city": "New York",
"state": "NY",
"zip": "10065"
}
],
"TOTAL_COUNT": 318
}
Clients
Create a client
Inserts new client into the database
If your key has private-key access, this call must be signed: send token and stamp alongside apiKey. See authentication.
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
firstname
string
required
Provide user's first name
lastname
string
required
Provide user's last name
email
string
required
Provide user's email address
password
string
required
Provide user's password
Signing
If your key has private-key access, this call must be signed. See authentication.
Response fields 4
ITEM
array
The record the call created or read, as a one-element array.
MESSAGE
string
Human-readable outcome. Empty on a plain success.
STATUS
string
Success or Error. Check this, not the HTTP status — these endpoints answer 200 either way.
STATUS_CODE
string
Machine-readable outcome. 100 and 101 are success; 2xx codes are rejections, and the 25x range means a required field was missing or malformed.
Response fields — each item 7
active
integer
1 when the account is active. Goes to 0 after 120 days without a login.
date_create
string
When the record was created.
email
string
Email address.
firstName
string
Client's first name.
id
integer
Record id.
lastName
string
Client's last name.
verifyCode
string
The code emailed to the member when they registered.
curl -X POST "https://api.realtymx.com/clients" \ -d "apiKey=$API_KEY" \ -d "stamp=$STAMP" \ -d "token=$TOKEN" \ -d "firstname=…" \ -d "lastname=…" \ -d "email=…" \ -d "password=…"
{
"STATUS": "Success",
"STATUS_CODE": "100",
"MESSAGE": "",
"ITEM": [
{
"id": 4821,
"firstName": "Jane",
"lastName": "Doe",
"email": "[email protected]",
"active": 0,
"verifyCode": "8F3A21C4",
"date_create": "2026-08-28 10:54:00"
}
]
}
Clients
Update a client
Inserts new client into the database
If your key has private-key access, this call must be signed: send token and stamp alongside apiKey. See authentication.
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
clientID
numeric
required
client id number to update client record
Optional
firstname
string
optional
Provide user's first name
lastname
string
optional
Provide user's last name
email
string
optional
Provide user's email address
phone
string
optional
Provide user's phone number
password
string
optional
Provide user's password
Response fields 3
MESSAGE
string
Human-readable outcome. Empty on a plain success.
STATUS
string
Success or Error. Check this, not the HTTP status — these endpoints answer 200 either way.
STATUS_CODE
string
Machine-readable outcome. 100 and 101 are success; 2xx codes are rejections, and the 25x range means a required field was missing or malformed.
curl -X POST "https://api.realtymx.com/clients/Update" \ -d "apiKey=$API_KEY" \ -d "stamp=$STAMP" \ -d "token=$TOKEN" \ -d "clientID=…"
{
"STATUS": "Success",
"STATUS_CODE": "100",
"MESSAGE": "Successfully update a client record, 4821"
}
Clients
Retrieve a client
Returns specific client record
If your key has private-key access, this call must be signed: send token and stamp alongside apiKey. See authentication.
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
id
numeric
required
ID of the record to return, as given by the matching search endpoint.
Response fields 23
active
integer
1 when the account is active. Goes to 0 after 120 days without a login.
address
string
Client's street address.
agent_email
string
Email of the agent the client is assigned to.
agent_id
integer
Id of the agent the record belongs to.
agent_name
string
Agent the client is assigned to.
city
string
City.
date_create
string
When the record was created.
date_update
string
When the record was last updated.
dob
string
Date of birth.
email
string
Email address.
firstName
string
Client's first name.
home_Phone
string
Client's home phone.
id
integer
Record id.
lastName
string
Client's last name.
office_Phone
string
Client's office phone.
phone
string
Phone number.
progress
string
Where the client sits in the client's own milestone list.
source
string
How the client came in, from the client's own source list.
state
string
Two-letter state code.
status
string
Active or Inactive, derived from active.
type
string
Which client types the record is tagged with, comma separated and trailing: Buyer, Seller, Renter, Member, Investor, Guarantor, Tenant, clientOwner, Other.
verify
string
The member's verification code. Empty until they register.
zip
string
Postal code.
curl -G "https://api.realtymx.com/clients/482913" \ -d "apiKey=$API_KEY" \ -d "stamp=$STAMP" \ -d "token=$TOKEN"
[
{
"id": 4821,
"firstName": "Jane",
"lastName": "Doe",
"email": "[email protected]",
"active": 1,
"type": "Renter,Member,",
"verify": "8F3A21C4",
"date_create": "2026-02-11 09:14:03",
"date_update": "2026-08-02 17:22:41",
"phone": "212-555-0142",
"home_Phone": "",
"office_Phone": "",
"status": "Active",
"agent_name": "Alex Rivera",
"agent_email": "[email protected]",
"agent_id": 1989,
"progress": "Actively looking",
"source": "Website",
"dob": "1985-04-02",
"address": "245 E 63rd St",
"city": "New York",
"state": "NY",
"zip": "10065"
}
]
Clients
List favourite listings
Retrive favorite listing based on ID
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
clientID
numeric
required
client id number to insert client trail
Response fields 3
MESSAGE
string
Human-readable outcome. Empty on a plain success.
STATUS
string
Success or Error. Check this, not the HTTP status — these endpoints answer 200 either way.
STATUS_CODE
string
Machine-readable outcome. 100 and 101 are success; 2xx codes are rejections, and the 25x range means a required field was missing or malformed.
curl -X POST "https://api.realtymx.com/clients/ListFavoriteListingID/" \ -d "apiKey=$API_KEY" \ -d "clientID=…"
{
"STATUS": "Success",
"STATUS_CODE": "100",
"MESSAGE": "Favorite listing id 482913."
}
Clients
Favourite a listing
favorite listing
If your key has private-key access, this call must be signed: send token and stamp alongside apiKey. See authentication.
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
clientID
numeric
required
client id number to insert client trail
listingID
numeric
required
listing id number to favorite or unfavorite
Optional
isFavorite
boolean
optional
default true
true as favorite/ false as unfavorite
isRLS
boolean
optional
default false
indicates the listing is RLS or NOT
isMLS
boolean
optional
default false
indicates the listing is MLS or NOT
Response fields 3
MESSAGE
string
Human-readable outcome. Empty on a plain success.
STATUS
string
Success or Error. Check this, not the HTTP status — these endpoints answer 200 either way.
STATUS_CODE
string
Machine-readable outcome. 100 and 101 are success; 2xx codes are rejections, and the 25x range means a required field was missing or malformed.
curl -X POST "https://api.realtymx.com/clients/favoriteListing/" \ -d "apiKey=$API_KEY" \ -d "stamp=$STAMP" \ -d "token=$TOKEN" \ -d "clientID=…" \ -d "listingID=…"
{
"STATUS": "Success",
"STATUS_CODE": "100",
"MESSAGE": "Favorite listing id 482913."
}
Clients
Record client activity
Insert client trail records to specific clients
If your key has private-key access, this call must be signed: send token and stamp alongside apiKey. See authentication.
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
clientID
numeric
required
client id number to insert client trail
trailKey
numeric
required
trail key for the action 1:Logged In Account; 2:Logged Out Account; 5:Viewed Property; 6:Saved Property; 7:Removed Property; 12:Property Search; 9:Password Renew; 10:Comment Added; 11:Comment Removed; 13:Timed Out
Optional
userIP
string
optional
client ip address, required for trailKey = 1, action Logged in Account
listingID
numeric
optional
default 0
listing id, required for trailKey = 5, action Viewed Property
comment
string
optional
client comment
pageURL
string
optional
visited query string
Response fields 4
CLIENTTRAILID
integer
Id of the activity row just written.
MESSAGE
string
Human-readable outcome. Empty on a plain success.
STATUS
string
Success or Error. Check this, not the HTTP status — these endpoints answer 200 either way.
STATUS_CODE
string
Machine-readable outcome. 100 and 101 are success; 2xx codes are rejections, and the 25x range means a required field was missing or malformed.
curl -X POST "https://api.realtymx.com/clients/insertClientTrail/" \ -d "apiKey=$API_KEY" \ -d "stamp=$STAMP" \ -d "token=$TOKEN" \ -d "clientID=…" \ -d "trailKey=…"
{
"STATUS": "Success",
"STATUS_CODE": "100",
"MESSAGE": "Client Trail is successfully inserted.",
"CLIENTTRAILID": 90211
}
Accounts
Read verification status
Returns specific client record
If your key has private-key access, this call must be signed: send token and stamp alongside apiKey. See authentication.
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
email
string
required
The member's email address.
password
string
required
The member's password.
Response fields 4
ITEM
array
The record the call created or read, as a one-element array.
MESSAGE
string
Human-readable outcome. Empty on a plain success.
STATUS
string
Success or Error. Check this, not the HTTP status — these endpoints answer 200 either way.
STATUS_CODE
string
Machine-readable outcome. 100 and 101 are success; 2xx codes are rejections, and the 25x range means a required field was missing or malformed.
Response fields — each item 7
active
integer
1 when the account is active. Goes to 0 after 120 days without a login.
date_create
string
When the record was created.
email
string
Email address.
firstName
string
Client's first name.
id
integer
Record id.
lastName
string
Client's last name.
verifyCode
string
The code emailed to the member when they registered.
curl -G "https://api.realtymx.com/account/getVerifiedStatus" \ -d "apiKey=$API_KEY" \ -d "stamp=$STAMP" \ -d "token=$TOKEN"
{
"STATUS": "Success",
"STATUS_CODE": "100",
"MESSAGE": "Login Successful",
"ITEM": [
{
"id": 4821,
"firstName": "Jane",
"lastName": "Doe",
"email": "[email protected]",
"active": 1,
"verifyCode": "8F3A21C4",
"date_create": "2026-08-28 10:54:00"
}
]
}
Accounts
Verify an account
Verifys user account with verify code
If your key has private-key access, this call must be signed: send token and stamp alongside apiKey. See authentication.
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
email
string
required
The member's email address.
verifyCode
string
required
The code emailed to the member when they registered.
Verification flow
The website emails a code when a member registers; this endpoint redeems it. Poll /account/getVerifiedStatus to read the state without redeeming anything.
Response fields 4
ITEM
array
The record the call created or read, as a one-element array.
MESSAGE
string
Human-readable outcome. Empty on a plain success.
STATUS
string
Success or Error. Check this, not the HTTP status — these endpoints answer 200 either way.
STATUS_CODE
string
Machine-readable outcome. 100 and 101 are success; 2xx codes are rejections, and the 25x range means a required field was missing or malformed.
Response fields — each item 7
active
integer
1 when the account is active. Goes to 0 after 120 days without a login.
date_create
string
When the record was created.
email
string
Email address.
firstName
string
Client's first name.
id
integer
Record id.
lastName
string
Client's last name.
verifyCode
string
The code emailed to the member when they registered.
curl -G "https://api.realtymx.com/account/verifyAccount" \ -d "apiKey=$API_KEY" \ -d "stamp=$STAMP" \ -d "token=$TOKEN"
{
"STATUS": "Success",
"STATUS_CODE": "100",
"MESSAGE": "Account is successfully verified.",
"ITEM": [
{
"id": 4821,
"firstName": "Jane",
"lastName": "Doe",
"email": "[email protected]",
"active": 1,
"verifyCode": "8F3A21C4",
"date_create": "2026-08-28 10:54:00"
}
]
}
Virtual tours
Set a virtual tour
Insert or update virtual tour URLs to the listing
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
listingID
string
required
Provide RealtyMX listing id #
Optional
vtourURL
string
optional
Provide virtual tour URL
vtourURL2
string
optional
Provide second virtual tour URL
Insert or update
One call sets the virtual-tour URL on a listing, whether or not one is already recorded. There is no separate update, and no way to clear a tour by sending an empty value.
Response fields 3
MESSAGE
string
Human-readable outcome. Empty on a plain success.
STATUS
string
Success or Error. Check this, not the HTTP status — these endpoints answer 200 either way.
STATUS_CODE
string
Machine-readable outcome. 100 and 101 are success; 2xx codes are rejections, and the 25x range means a required field was missing or malformed.
curl -X POST "https://api.realtymx.com/vtour" \ -d "apiKey=$API_KEY" \ -d "listingID=…"
{
"STATUS": "Success",
"STATUS_CODE": "200",
"MESSAGE": ""
}
April
Receive an April video
Update April Vidoe id
Required
apiKey
string
required
Your RealtyMX API key. Every request needs one.
videoId
string
required
Provide video ID
Optional
ulid
string
optional
Provide unique listing ID
Integration endpoint
Receives video IDs from the April video service and attaches them to the matching listing. It exists for that integration; there is nothing to call here from a website.
Response fields 4
LISTING
object
The listing the video was attached to, in the shape /properties/{id} returns.
MESSAGE
string
Human-readable outcome. Empty on a plain success.
STATUS
string
Success or Error. Check this, not the HTTP status — these endpoints answer 200 either way.
STATUS_CODE
string
Machine-readable outcome. 100 and 101 are success; 2xx codes are rejections, and the 25x range means a required field was missing or malformed.
curl -X POST "https://api.realtymx.com/april" \ -d "apiKey=$API_KEY" \ -d "videoId=…"
{
"STATUS": "Success",
"STATUS_CODE": "200",
"MESSAGE": "Video id #9f3ac1 updated for listing id# 482913",
"LISTING": {
"main_id": 482913,
"main_address": "East 63rd Street Upper East Side",
"aprilVideo": "https://video.useapril.com/9f3ac1",
// …the rest of the listing record, as /properties/{id} returns it
}
}