ShowMojo Listings Import API

Basics

 Endpoint: https://showmojo.com/api/v1/listings

 Request method: POST

 Authentication:

 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


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

Was this article helpful?