Basics
Endpoint: https://showmojo.com/api/v1/listings
Request method: POST
Authentication:
- HTTP Basic Authentication (your ShowMojo login and password)
- Token (generate at https://showmojo.com/my_settings/plugins)
Additional request headers:
- "Accept: application/json"
- "Content-type: application/json"
ShowMojo will try to find a listing by the following rules:
- Match one of provided IDs: code, uid or mls_id
- Exact match of address information: address, unit, city and state
If ShowMojo does not find a match on an existing listing it will create a new one.
When ShowMojo updates a listing, it replaces all existing listing information with the newly provided listing information.
NOTE: the "code" field on listing is provided specifically for the ShowMojo customer to add and use their own internal listing ids.
Request Data Structure
{ "listings": [ { "code": <string>, "mls_id": <string>, "status": <"STATUS_ACTIVE", "STATUS_INACTIVE", "STATUS_DELETED">, "address": <string 100>, "unit": <string 20>, "city": <string 30>, "state": <string 2>, "zip": <string 6>, "title": <string 150>, "rent": <decimal>, "max_rent": <decimal>, "price": <decimal>, "available_type": <"Don't show", "Immediate", "Date">, "available_date": <date "Mar 12, 2013">, "bedrooms": <integer>, "full_bathrooms": <integer>, "partial_bathrooms": <integer>, "offices": <integer>, "square_feet": <integer>, "property_tax": <integer>, "highlights": <text>, "video_url": <text>, "tour_url": <text>, "security_deposit_type": <DONT_SHOW, SET_AMOUNT, MULTIPLE_RENT, RENT_PLUS_AMOUNT, NO_DEPOSIT> "security_deposit_value": <Decimal above zero If security_deposit_type is MULTIPLE_RENT, security_deposit_value must be one of: 1.0, 1.5, 2.0> "pets": [ <"Dogs ok", "Cats ok", "Pets ok"> ], "images": [ <URL strings> ], "details": [ <"Yard", "Heat and AC included", "Tennis court", ...> ] }, ... ] }
See the bottom of this article for a list of listing details that can be specified.
Error Response Data Structure
{ "response": [ { "status": "error", "errors": <Error message text>, "data": <request data> }, ... ] }
Success Response Data Structure
{ "response": [ { "status": <"updated", "created">, "uid": <string>, "edit_url": "https://showmojo.com/listings/<uid>/edit", "public_url": "https://showmojo.com/l/<uid>", "code": <your_code> }, ... ] }
cURL Example
HTTP Basic Authentication
curl -vu "your_login:your-password" \ -H "Accept: application/json" \ -H "Content-type: application/json" \ -X POST \ -d '{ "listings": [{ "square_feet": 1200, "highlights": "Some highlights!", "rent": 4000, "code": "cd-123", "pets": ["Cats ok"]}]}' \ https://showmojo.com/api/v1/listings
Token based Authentication
curl -vH 'Authorization: Token token="c6f8957ce20a345a75560f616973b91f"' \ -H "Accept: application/json" \ -H "Content-type: application/json" \ -X POST \ -d '{ "listings": [{ "square_feet": 1200, "highlights": "Some highlights!", "rent": 4000, "code": "cd-123", "pets": ["Cats ok"]}]}' \ https://showmojo.com/api/v1/listings
PHP Example
HTTP Basic Authentication
<?php $showmojo_login = "showmojo"; $showmojo_password = "password"; $data = array( "listings" => array( array( "uid" => "dfb0d67034", "rent" => "100" ) ) ); $data_string = json_encode($data); $ch = curl_init('https://showmojo.com/api/v1/listings'); curl_setopt($ch, CURLOPT_USERPWD, $showmojo_login . ":" . $showmojo_password); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Accept: application/json', 'Content-Type: application/json', 'Content-Length: ' . strlen($data_string)) ); $result = curl_exec($ch);
Custom application URL Example
curl -vH 'Authorization: Token token="YOUR_API_TOKEN"' \ -H "Accept: application/json" \ -H "Content-type: application/json" \ -X POST \ -d '{ "listings": [{ "general_type": "RENT", "address": "21st Street", "unit": "1B", "code": "st-21-1b", "custom_application_url": "http://custom.application.url", "application_link_policy": "APPLICATION_LINK_POLICY_CUSTOM_LINK" }]}' \ https://showmojo.com/api/v1/listings
Please note it is important to set "application_link_policy" value to "APPLICATION_LINK_POLICY_CUSTOM_LINK" along with "custom_application_url" to make sure custom URL would be displayed.
Assigning to a Property Upon Import
You can assign a listing to a property using this tag: assign_to_property
If you include the property name in this field, ShowMojo will check to see if there is an existing property with this name in ShowMojo.
- If there is an existing property, the imported listing will be assigned to the property in ShowMojo.
- If there is no existing property, the listing will be imported and not assigned to any property.
- If the listing is already assigned to a property in ShowMojo, the listing will not be reassigned. Any reassignment must be done manually in ShowMojo on the Properties page.
Available Listing Details
The following is a list of values that can be specified in the listing details list:
1 parking spot 2 parking spots 3 parking spots 4 parking spots 5 parking spots 6 parking spots 90+ Walkscore Air conditioning Air conditioning included Alarm included Alarm-ready Attached garage Attic Back porch Balcony Basement Basic cable included Basketball court Bay windows Bike room Breakfast bar Business center Cable ready Cable television Cable television included Can be furnished Carpet floors Carport Cats negotiable Cats ok Ceiling fans Central air conditioning Central heat Chefs kitchen Coffee service Concierge Condo quality Covered parking Deck Decorative fireplace Den Detached garage Dining room Dishwasher Dog spa / dog boarding Dogs negotiable Dogs ok Dogs ok up to 25 lbs Dogs ok up to 40 lbs Door attendant Dry cleaner on site Eat-in kitchen Electric furnace Electric included Elevator Family room Fenced yard Fireplace First floor walkup Fitness center Five year lease Flexible duration lease Floor heat in bathroom Floor to ceiling windows Formal dining room Free laundry on-site Full service Furnished Garage parking Garbage disposal Garden Garden apartment Gas and electric included Gas furnace Gas included Gated property Golf course Granite kitchen counters Grill / barbecue Grocery on site Guest suite Hardwood cabinets Hardwood floors Heat and AC included Heat included High ceilings High-rise I-GO / Zip Car In-unit storage Indoor pool Internet access available Internet access included Kitchen recently updated LEED certified Lake Laundry hookups in unit Laundry in unit Laundry on-site Lawn care included Lawn care not included Less than five years old Less than ten years old Library Living room Loft layout Lounge / club room Marble in bathroom Master Bath Media room / clubhouse Microwave Modern bath fixtures Month to month lease New construction No cats No dogs No laundry available No parking available No pets No section 8 No smoking No smoking building Not furnished Office On-site engineer On-site manager One cat ok One year lease Open floor plan Outdoor pool Owner occupied building Pantry Park nearby Parking available Parking included Patio Pay laundry on-site Pets negotiable Playground Porch Premium cable included Private deck Private dog run/park Private party room Private patio Private porch Radiator heat Recently rehabbed Recently renovated Recreation room Refrigerator Restaurant on site Rooftop deck Sauna Section 8 possible Section 8 welcome Secure parking Secured entry Separate tub and shower Shed Small building Smoking allowed Snow removal included Snow removal not included Soaking tub Spa Space heater(s) Sprinkler system Stainless steel appliances Steam shower Storage unit Stove / oven Street parking Sun room Swimming pool Tenant pays all electric Tenant pays all utilities Tenant pays gas and electric Tenant pays parking Tenant pays trash removal Tenant pays water Tennis court Three year lease Tile floors Top floor Trash removal included Two year lease Valet Vaulted ceiling Vintage building Voice Intercom Walk-in closet Walking/biking trails Water included Waterfront Wheelchair access Whirlpool tub Window-unit AC Wired internet available Wired internet included Wireless internet available Wireless internet included Yard