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.

curlA first request
curl -G "https://api.realtymx.com/properties" \
  -d "apiKey=$API_KEY" \
  -d "perPage=5"
Response200 OK
{
  "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:

ParameterValue
stampCurrent UTC time in milliseconds since the epoch.
tokenAn 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:

EndpointResource
/clientsCreate a client
/clients/listList clients
/clients/{id}Retrieve a client
/clients/UpdateUpdate a client
/clients/favoriteListing/Favourite a listing
/clients/insertClientTrail/Record client activity
/account/verifyAccountVerify an account
/account/getVerifiedStatusRead verification status
/alertsCreate a lead
/alerts/listingAlertCreate 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

LimitThresholdOn breach
Requests per second10420
Simultaneous in-flight requests3420

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”.

curlPlain key
curl -G "https://api.realtymx.com/agents/search" \
  -d "apiKey=$API_KEY"
curlSigned
curl -X POST "https://api.realtymx.com/alerts" \
  -d "apiKey=$API_KEY" \
  -d "stamp=$STAMP" \
  -d "token=$TOKEN" \
  -d "[email protected]" \
  -d "firstName=Jane"
curlBasic — marketplace
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

CodeMeaning
200The request was accepted. Check STATUS in the body on a write.
401No apiKey, or a signed endpoint called without token or stamp.
403Key unknown, inactive, or not enabled for the website API. Also a bad, expired or replayed signature.
405Your address is not on the key's allow-list.
420Rate limit exceeded — too many requests per second, or too many at once.
500Server 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.

Response200 — but rejected
{
  "STATUS": "Error",
  "MESSAGE": "Publish date is invalid."
}
Response403
API Key does not match. API key is not Active.

Listings

Retrieve a listing

GET/properties/{id}

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/properties/{id}
curl -G "https://api.realtymx.com/properties/1173026" \
  -d "apiKey=$API_KEY"
Response200 OK
[
  {
    "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

GET/properties/amenities/{id}

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/properties/amenities/{id}
curl -G "https://api.realtymx.com/properties/amenities/1173026" \
  -d "apiKey=$API_KEY"
Response200 OK
[
  {
    "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

GET/properties/photos/{id}

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/properties/photos/{id}
curl -G "https://api.realtymx.com/properties/photos/1704647" \
  -d "apiKey=$API_KEY"
Response200 OK
[
  {
    "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

GET/properties/random/{count}

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/properties/random/{count}
curl -G "https://api.realtymx.com/properties/random/2" \
  -d "apiKey=$API_KEY"
Response200 OK
[
  {
    "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

POST/properties/viewCounter/

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/properties/viewCounter/
curl -X POST "https://api.realtymx.com/properties/viewCounter/" \
  -d "apiKey=$API_KEY" \
  -d "listingID=…"
Response200 OK
{
  "STATUS": "Success",
  "STATUS_CODE": "200",
  "MESSAGE": "Hit Counter successfully updated for listing id 482913 to 137"
}

Buildings

Retrieve a building

GET/buildings/{id}

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/buildings/{id}
curl -G "https://api.realtymx.com/buildings/26992" \
  -d "apiKey=$API_KEY"
Response200 OK
[
  {
    "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

GET/buildings/photos/{id}

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/buildings/photos/{id}
curl -G "https://api.realtymx.com/buildings/photos/32340" \
  -d "apiKey=$API_KEY"
Response200 OK
[
  {
    "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

GET/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/neighborhoods
curl -G "https://api.realtymx.com/neighborhoods" \
  -d "apiKey=$API_KEY"
Response200 OK
[
  {
    "cat_id": 52,
    "cat_name": "Parkchester",
    "img": "parkchester.jpg",
    "imgname": "Parkchester",
    "parent": 51,
    "sort": 0,
    "text_1": "&lt;p&gt;Quiet, tree-lined streets a short walk from the express train.&lt;/p&gt;"
  },
  {
    "cat_id": 53,
    "cat_name": "Westchester Square",
    "img": "parkchester.jpg",
    "imgname": "Parkchester",
    "parent": 51,
    "sort": 0,
    "text_1": "&lt;p&gt;Quiet, tree-lined streets a short walk from the express train.&lt;/p&gt;"
  }
]

Neighborhoods

Retrieve a neighborhood

GET/neighborhoods/{id}

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/neighborhoods/{id}
curl -G "https://api.realtymx.com/neighborhoods/52" \
  -d "apiKey=$API_KEY"
Response200 OK
[
  {
    "cat_id": 52,
    "cat_name": "Parkchester",
    "img": "parkchester.jpg",
    "imgname": "Parkchester",
    "parent": 51,
    "sort": 0,
    "text_1": "&lt;p&gt;Quiet, tree-lined streets a short walk from the express train.&lt;/p&gt;"
  }
]

Agents

Retrieve an agent

GET/agents/{id}

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/agents/{id}
curl -G "https://api.realtymx.com/agents/2" \
  -d "apiKey=$API_KEY"
Response200 OK
[
  {
    "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

GET/agents/blog/{id}

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/agents/blog/{id}
curl -G "https://api.realtymx.com/agents/blog/2" \
  -d "apiKey=$API_KEY"
Response200 OK
[
  {
    "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

GET/agents/testimonials/{id}

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/agents/testimonials/{id}
curl -G "https://api.realtymx.com/agents/testimonials/2" \
  -d "apiKey=$API_KEY"
Response200 OK
[
  {
    "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

GET/agents/testimonialsSearch

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/agents/testimonialsSearch
curl -G "https://api.realtymx.com/agents/testimonialsSearch" \
  -d "apiKey=$API_KEY"
Response200 OK
{
  "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

GET/agents/videos/{id}

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/agents/videos/{id}
curl -G "https://api.realtymx.com/agents/videos/2" \
  -d "apiKey=$API_KEY"
Response200 OK
[
  {
    "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

GET/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/teams
curl -G "https://api.realtymx.com/teams" \
  -d "apiKey=$API_KEY"
Response200 OK
[
  {
    "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

GET/teams/{id}

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/teams/{id}
curl -G "https://api.realtymx.com/teams/11" \
  -d "apiKey=$API_KEY"
Response200 OK
[
  {
    "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

GET/teams/testimonials/{id}

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/teams/testimonials/{id}
curl -G "https://api.realtymx.com/teams/testimonials/16" \
  -d "apiKey=$API_KEY"
Response200 OK
[
  {
    "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

GET/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/offices
curl -G "https://api.realtymx.com/offices" \
  -d "apiKey=$API_KEY"
Response200 OK
[
  {
    "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

GET/offices/{id}

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/offices/{id}
curl -G "https://api.realtymx.com/offices/2" \
  -d "apiKey=$API_KEY"
Response200 OK
[
  {
    "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

Create a blog post

POST/blog

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,... or raw 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/blog
curl -X POST "https://api.realtymx.com/blog" \
  -d "apiKey=$API_KEY" \
  -d "title=…" \
  -d "body=…" \
  -d "publish_date=…"
Response200 OK
{
  "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

POSTPUT/blog/{id}

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,... or raw 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/blog/{id}
curl -X POST "https://api.realtymx.com/blog/31" \
  -d "apiKey=$API_KEY"
Response200 OK
{
  "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

GET/blogs/{id}

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/blogs/{id}
curl -G "https://api.realtymx.com/blogs/5" \
  -d "apiKey=$API_KEY"
Response200 OK
[
  {
    "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

GET/blogs/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/blogs/labels
curl -G "https://api.realtymx.com/blogs/labels" \
  -d "apiKey=$API_KEY"
Response200 OK
[
  {
    "id": 1,
    "label": "#NYCRealEstate"
  }
]

Press

Retrieve a press article

GET/press/{id}

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/press/{id}
curl -G "https://api.realtymx.com/press/1574" \
  -d "apiKey=$API_KEY"
Response200 OK
[
  {
    "agent_id": 1958,
    "author": "Jane Doe",
    "body": "&lt;p&gt;Owner-paid commissions typically equal a month's rent.&lt;/p&gt;",
    "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

Retrieve a video

GET/videos/{id}

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/videos/{id}
curl -G "https://api.realtymx.com/videos/5" \
  -d "apiKey=$API_KEY"
Response200 OK
[
  {
    "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"
  }
]

Labels

List labels

GET/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/labels
curl -G "https://api.realtymx.com/labels" \
  -d "apiKey=$API_KEY"
Response200 OK
[
  {
    "id": 1,
    "labelname": "Test"
  },
  {
    "id": 4,
    "labelname": "HPF"
  },
  {
    "id": 6,
    "labelname": "april"
  }
]

Labels

Retrieve a label

GET/labels/{id}

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/labels/{id}
curl -G "https://api.realtymx.com/labels/1" \
  -d "apiKey=$API_KEY"
Response200 OK
[
  {
    "id": 1,
    "labelname": "Test"
  }
]

Leads

Create a lead

POST/alerts

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/alerts
curl -X POST "https://api.realtymx.com/alerts" \
  -d "apiKey=$API_KEY" \
  -d "stamp=$STAMP" \
  -d "token=$TOKEN" \
  -d "firstname=…" \
  -d "lastname=…" \
  -d "email=…"
Response200 OK
{
  "STATUS": "Success",
  "STATUS_CODE": "101",
  "MESSAGE": "Successfuly inserted Alert for [email protected]."
}

Leads

Create a listing lead

POST/alerts/listingAlert

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/alerts/listingAlert
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=…"
Response200 OK
{
  "STATUS": "Success",
  "STATUS_CODE": "101",
  "MESSAGE": "Successfuly inserted Alert for listing id 482913."
}

Marketplace

Submit a marketplace lead

POST/marketplace

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/marketplace
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]"}'
Response200 OK
{
  "SUCCESS": true,
  "ALERT_ID": "34305",
  "DATABASE": "demo",
  "SOURCE": "Rentberry",
  "MARKETPLACE": "Rentberry",
  "AGENT": "Jane Doe",
  "MESSAGE": "Lead successfully created"
}

Clients

List clients

GET/clients/list

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/clients/list
curl -G "https://api.realtymx.com/clients/list" \
  -d "apiKey=$API_KEY" \
  -d "stamp=$STAMP" \
  -d "token=$TOKEN"
Response200 OK
{
  "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

POST/clients

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/clients
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=…"
Response200 OK
{
  "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

POST/clients/Update

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/clients/Update
curl -X POST "https://api.realtymx.com/clients/Update" \
  -d "apiKey=$API_KEY" \
  -d "stamp=$STAMP" \
  -d "token=$TOKEN" \
  -d "clientID=…"
Response200 OK
{
  "STATUS": "Success",
  "STATUS_CODE": "100",
  "MESSAGE": "Successfully update a client record, 4821"
}

Clients

Retrieve a client

GET/clients/{id}

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/clients/{id}
curl -G "https://api.realtymx.com/clients/482913" \
  -d "apiKey=$API_KEY" \
  -d "stamp=$STAMP" \
  -d "token=$TOKEN"
Response200 OK
[
  {
    "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

POST/clients/ListFavoriteListingID/

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/clients/ListFavoriteListingID/
curl -X POST "https://api.realtymx.com/clients/ListFavoriteListingID/" \
  -d "apiKey=$API_KEY" \
  -d "clientID=…"
Response200 OK
{
  "STATUS": "Success",
  "STATUS_CODE": "100",
  "MESSAGE": "Favorite listing id 482913."
}

Clients

Favourite a listing

POST/clients/favoriteListing/

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/clients/favoriteListing/
curl -X POST "https://api.realtymx.com/clients/favoriteListing/" \
  -d "apiKey=$API_KEY" \
  -d "stamp=$STAMP" \
  -d "token=$TOKEN" \
  -d "clientID=…" \
  -d "listingID=…"
Response200 OK
{
  "STATUS": "Success",
  "STATUS_CODE": "100",
  "MESSAGE": "Favorite listing id 482913."
}

Clients

Record client activity

POST/clients/insertClientTrail/

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/clients/insertClientTrail/
curl -X POST "https://api.realtymx.com/clients/insertClientTrail/" \
  -d "apiKey=$API_KEY" \
  -d "stamp=$STAMP" \
  -d "token=$TOKEN" \
  -d "clientID=…" \
  -d "trailKey=…"
Response200 OK
{
  "STATUS": "Success",
  "STATUS_CODE": "100",
  "MESSAGE": "Client Trail is successfully inserted.",
  "CLIENTTRAILID": 90211
}

Accounts

Read verification status

GET/account/getVerifiedStatus

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/account/getVerifiedStatus
curl -G "https://api.realtymx.com/account/getVerifiedStatus" \
  -d "apiKey=$API_KEY" \
  -d "stamp=$STAMP" \
  -d "token=$TOKEN"
Response200 OK
{
  "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

GET/account/verifyAccount

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/account/verifyAccount
curl -G "https://api.realtymx.com/account/verifyAccount" \
  -d "apiKey=$API_KEY" \
  -d "stamp=$STAMP" \
  -d "token=$TOKEN"
Response200 OK
{
  "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

POST/vtour

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/vtour
curl -X POST "https://api.realtymx.com/vtour" \
  -d "apiKey=$API_KEY" \
  -d "listingID=…"
Response200 OK
{
  "STATUS": "Success",
  "STATUS_CODE": "200",
  "MESSAGE": ""
}

April

Receive an April video

POST/april

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/april
curl -X POST "https://api.realtymx.com/april" \
  -d "apiKey=$API_KEY" \
  -d "videoId=…"
Response200 OK
{
  "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
  }
}