NAV Navbar
java ruby php go
  • Introduction
  • Authentication
  • Core Resources
  • Search
  • Property Info
  • Property Ownership
  • Investment Analysis
  • Rental Rates
  • Predictive Scores
  • Short Term Rentals
  • Long Term Rentals
  • Trends
  • Errors
  • Introduction

    Main API Endpoint:

    OkHttpClient client = new OkHttpClient();
    
    Request request = new Request.Builder()
      .url("https://api.mashvisor.com/v1.1/client")
      .get()
      .build();
    
    Response response = client.newCall(request).execute();
    
    require 'uri'
    require 'net/http'
    
    url = URI("https://api.mashvisor.com/v1.1/client")
    
    http = Net::HTTP.new(url.host, url.port)
    
    request = Net::HTTP::Get.new(url)
    
    response = http.request(request)
    puts response.read_body
    
    <?php
    
    $request = new HttpRequest();
    $request->setUrl('https://api.mashvisor.com/v1.1/client');
    $request->setMethod(HTTP_METH_GET);
    
    try {
      $response = $request->send();
    
      echo json_decode($response->getBody());
    } catch (HttpException $ex) {
      echo $ex;
    }
    
    package main
    
    import (
        "fmt"
        "strings"
        "net/http"
        "io/ioutil"
    )
    
    func main() {
    
        url := "https://api.mashvisor.com/v1.1/client"
    
        req, _ := http.NewRequest("GET", url, payload)
    
        res, _ := http.DefaultClient.Do(req)
    
        defer res.Body.Close()
        body, _ := ioutil.ReadAll(res.Body)
    
        fmt.Println(res)
        fmt.Println(string(body))
    
    }
    

    Welcome to the Mashvisor API reference! You can use our API to access Mashvisor API endpoints needed by developers to build there applications on top of Mashvisor Inc, which can get real estate information, deep analysis, solid and up to date calculations on various cities, zip codes, and neighborhoods in our database acrross the United States.

    You can view code examples in the dark area to the right, and you can switch the programming language of the examples with the tabs in the top right.

    Mashvisor API is RESTfull. Our API has predictable, resource-oriented URLs, and uses HTTP response codes to indicate API errors. We use built-in HTTP features, like HTTP authentication and HTTP verbs, which are understood by off-the-shelf HTTP clients. JSON is returned by all API responses, including errors.

    The requests in the right sidebar are designed to work as is. The sample requests are performed using a test mode.

    For any question of enquiries contact us at support[at]mashvisor.com mentioning the API section name.

    Authentication

    To authorize, use the below code, and make sure to replace YOUR_API_KEY with your API key:

    OkHttpClient client = new OkHttpClient();
    
    MediaType mediaType = MediaType.parse("application/octet-stream");
    RequestBody body = RequestBody.create(mediaType, null);
    Request request = new Request.Builder()
      .url("https://api.mashvisor.com/v1.1/client")
      .get()
      .addHeader("x-api-key", "YOUR_API_KEY")
      .build();
    
    Response response = client.newCall(request).execute();
    
    require 'uri'
    require 'net/http'
    
    url = URI("https://api.mashvisor.com/v1.1/client")
    
    http = Net::HTTP.new(url.host, url.port)
    
    request = Net::HTTP::Get.new(url)
    request["x-api-key"] = 'YOUR_API_KEY'
    
    response = http.request(request)
    puts response.read_body
    
    <?php
    
    $request = new HttpRequest();
    $request->setUrl('https://api.mashvisor.com/v1.1/client');
    $request->setMethod(HTTP_METH_GET);
    
    $request->setHeaders(array(
      'x-api-key' => 'YOUR_API_KEY'
    ));
    
    try {
      $response = $request->send();
    
      echo json_decode($response->getBody());
    } catch (HttpException $ex) {
      echo $ex;
    }
    
    package main
    
    import (
        "fmt"
        "strings"
        "net/http"
        "io/ioutil"
    )
    
    func main() {
    
        url := "https://api.mashvisor.com/v1.1/client"
    
        req, _ := http.NewRequest("GET", url, payload)
    
        req.Header.Add("x-api-key", "YOUR_API_KEY")
    
        res, _ := http.DefaultClient.Do(req)
    
        defer res.Body.Close()
        body, _ := ioutil.ReadAll(res.Body)
    
        fmt.Println(res)
        fmt.Println(string(body))
    
    }
    

    Mashvisor uses API keys to allow access to the API. You can ask for an API key via subscribing from ther user profile. You will need to register a new account from here.

    Mashvisor expects for the API key to be included in all API requests.

    Mashvisor allows you to authenticate your account when using the API by including your secret x-api-key header in the request which is basically an auth generated token. Such authentication to the API is performed via the authentication scheme (also called token authentication) which is an HTTP authenticaton scheme.

    All API requests requires the JWT authentication must be made over HTTPS. Calls made over plain HTTP will fail.

    Core Resources

    Below are the main resources that Mashvisor allows you to access and pull data from:

    Search

    List Cities

    Sample Request

    OkHttpClient client = new OkHttpClient();
    
    Request request = new Request.Builder()
      .url("https://api.mashvisor.com/v1.1/client/city/list?state=FL")
      .get()
      .addHeader("x-api-key", "YOUR_API_KEY")
      .build();
    
    Response response = client.newCall(request).execute();
    
    require 'uri'
    require 'net/http'
    
    url = URI("https://api.mashvisor.com/v1.1/client/city/list?state=FL")
    
    http = Net::HTTP.new(url.host, url.port)
    
    request = Net::HTTP::Get.new(url)
    request["x-api-key"] = 'YOUR_API_KEY'
    
    response = http.request(request)
    puts response.read_body
    
    <?php
    
    $request = new HttpRequest();
    $request->setUrl('https://api.mashvisor.com/v1.1/client/city/list');
    $request->setMethod(HTTP_METH_GET);
    
    $request->setQueryData(array(
      'state' => 'FL'
    ));
    
    $request->setHeaders(array(
      'x-api-key' => 'YOUR_API_KEY'
    ));
    
    try {
      $response = $request->send();
    
      echo json_decode($response->getBody());
    } catch (HttpException $ex) {
      echo $ex;
    }
    
    package main
    
    import (
        "fmt"
        "net/http"
        "io/ioutil"
    )
    
    func main() {
    
        url := "https://api.mashvisor.com/v1.1/client/city/list?state=FL"
    
      req, _ := http.NewRequest("GET", url, nil)
    
      req.Header.Add("x-api-key", "YOUR_API_KEY")
    
        res, _ := http.DefaultClient.Do(req)
    
        defer res.Body.Close()
        body, _ := ioutil.ReadAll(res.Body)
    
        fmt.Println(res)
        fmt.Println(string(body))
    
    }
    

    The above command returns JSON structured like this:

    {
        "status": "success",
        "content": {
            "count": 693,
            "list": [
                "Alachua",
                "Alford",
                "ALLIGATOR POINT",
                "Altamonte Springs",
                "ALTHA",
                "ALTOONA",
                "Alva",
                "ANNA MARIA",
                "Anthony",
                "APALACHICOLA"
            ]
        }
    }
    

    This endpoint retrieves the cities has the biggest occupancy in a specific state.

    HTTP Request

    GET http://api.mashvisor.com/v.1/city/list

    Request Headers

    Parameter Value
    x-api-key User Authentication Header

    Query Parameters

    Parameter Value Default Description
    state* String state* name, ex: NV. If ignored, it will fetch all available cities.
    page Integer 1 The page to return the content for. Valid values:1, ... etc.
    items Integer 10 The items to return the content for. Valid values: 10, ... etc.

    List Neighborhoods

    Sample Request

    OkHttpClient client = new OkHttpClient();
    
    Request request = new Request.Builder()
      .url("https://api.mashvisor.com/v1.1/client/city/neighborhoods/CA/Los%20Angeles")
      .get()
      .addHeader("x-api-key", "YOUR_API_KEY")
      .build();
    
    Response response = client.newCall(request).execute();
    
    require 'uri'
    require 'net/http'
    
    url = URI("https://api.mashvisor.com/v1.1/client/city/neighborhoods/CA/Los%20Angeles")
    
    http = Net::HTTP.new(url.host, url.port)
    
    request = Net::HTTP::Get.new(url)
    request["x-api-key"] = 'YOUR_API_KEY'
    
    response = http.request(request)
    puts response.read_body
    
    <?php
    
    $request = new HttpRequest();
    $request->setUrl('https://api.mashvisor.com/v1.1/client/city/neighborhoods/CA/Los%20Angeles');
    $request->setMethod(HTTP_METH_GET);
    
    $request->setHeaders(array(
      'x-api-key' => 'YOUR_API_KEY'
    ));
    
    try {
      $response = $request->send();
    
      echo json_decode($response->getBody());
    } catch (HttpException $ex) {
      echo $ex;
    }
    
    package main
    
    import (
        "fmt"
        "net/http"
        "io/ioutil"
    )
    
    func main() {
    
        url := "https://api.mashvisor.com/v1.1/client/city/neighborhoods/CA/Los%20Angeles"
    
      req, _ := http.NewRequest("GET", url, nil)
    
      req.Header.Add("x-api-key", "YOUR_API_KEY")
    
        res, _ := http.DefaultClient.Do(req)
    
        defer res.Body.Close()
        body, _ := ioutil.ReadAll(res.Body)
    
        fmt.Println(res)
        fmt.Println(string(body))
    
    }
    

    The above command returns JSON structured like this:

    {
        "status": "success",
        "content": {
            "count": 96,
            "results": [
                {
                    "id": 7877,
                    "city": "Los Angeles",
                    "latitude": 33.952138,
                    "longitude": -118.404407,
                    "name": "Westchester",
                    "state": "CA",
                    "county": "Los Angeles",
                    "is_village": 0
                },
                {
                    "id": 13017,
                    "city": "Los Angeles",
                    "latitude": 34.238792,
                    "longitude": -118.477272,
                    "name": "North Hills",
                    "state": "CA",
                    "county": "Los Angeles",
                    "is_village": 0
                },
                {
                    "id": 13176,
                    "city": "Los Angeles",
                    "latitude": 34.228894,
                    "longitude": -118.444025,
                    "name": "Panorama City",
                    "state": "CA",
                    "county": "Los Angeles",
                    "is_village": 0
                },
                ...
            ]
        },
        "message": "City neighborhoods list fetched successfully"
    }
    

    This endpoint lsits all city avialable neighborhoods.

    HTTP Request

    GET https://api.mashvisor.com/v1.1/client/city/neighborhoods/{state}/{city}

    Request Headers

    Parameter Value
    x-api-key User Authentication Header

    Path Parameters

    Parameter Value Default Description
    state* String state* name, ex: NV.
    city* String City Name, Ex: Los Angeles

    List Top Markets

    Sample Request

    OkHttpClient client = new OkHttpClient();
    
    Request request = new Request.Builder()
      .url("https://api.mashvisor.com/v1.1/client/city/top-markets?state=GA")
      .get()
      .addHeader("x-api-key", "YOUR_API_KEY")
      .build();
    
    Response response = client.newCall(request).execute();
    
    require 'uri'
    require 'net/http'
    
    url = URI("https://api.mashvisor.com/v1.1/client/city/top-markets?state=GA")
    
    http = Net::HTTP.new(url.host, url.port)
    
    request = Net::HTTP::Get.new(url)
    request["x-api-key"] = 'YOUR_API_KEY'
    
    response = http.request(request)
    puts response.read_body
    
    <?php
    
    $request = new HttpRequest();
    $request->setUrl('https://api.mashvisor.com/v1.1/client/trends/neighborhoods');
    $request->setMethod(HTTP_METH_GET);
    
    $request->setQueryData(array(
      'state' => 'GA'
    ));
    
    $request->setHeaders(array(
      'x-api-key' => 'YOUR_API_KEY'
    ));
    
    try {
      $response = $request->send();
    
      echo json_decode($response->getBody());
    } catch (HttpException $ex) {
      echo $ex;
    }
    
    package main
    
    import (
        "fmt"
        "net/http"
        "io/ioutil"
    )
    
    func main() {
    
        url := "https://api.mashvisor.com/v1.1/client/city/top-markets?state=GA"
    
      req, _ := http.NewRequest("GET", url, nil)
    
      req.Header.Add("x-api-key", "YOUR_API_KEY")
    
        res, _ := http.DefaultClient.Do(req)
    
        defer res.Body.Close()
        body, _ := ioutil.ReadAll(res.Body)
    
        fmt.Println(res)
        fmt.Println(string(body))
    
    }
    

    The above command returns JSON structured like this:

    {
        "status": "success",
        "content": [
            {
                "city": "Atlanta",
                "state": "GA",
                "smart_location": "Atlanta, GA",
                "homes_for_sale": 6019
            },
            {
                "city": "Marietta",
                "state": "GA",
                "smart_location": "Marietta, GA",
                "homes_for_sale": 1183
            },
            {
                "city": "Savannah",
                "state": "GA",
                "smart_location": "Savannah, GA",
                "homes_for_sale": 1110
            },
            {
                "city": "Decatur",
                "state": "GA",
                "smart_location": "Decatur, GA",
                "homes_for_sale": 1029
            },
            {
                "city": "Lawrenceville",
                "state": "GA",
                "smart_location": "Lawrenceville, GA",
                "homes_for_sale": 873
            }
        ],
        "message": "Top markets list fetched successfully"
    }
    

    This endpoint retrieves the top housing cities with their active homes for sale count in a specific state.

    HTTP Request

    GET https://api.mashvisor.com/v1.1/client/city/top-markets

    Request Headers

    Parameter Value
    x-api-key User Authentication Header

    Query Parameters

    Parameter Value Default Description
    state* String state* name, ex: NV.
    items Integer 5 The items to return the content for. Valid values: 10, ... etc.

    Get City Invesmtent Performance

    Sample Request

    OkHttpClient client = new OkHttpClient();
    
    Request request = new Request.Builder()
      .url("https://api.mashvisor.com/v1.1/client/city/investment/CA/Los%20Angeles")
      .get()
      .addHeader("x-api-key", "YOUR_API_KEY")
      .build();
    
    Response response = client.newCall(request).execute();
    
    require 'uri'
    require 'net/http'
    
    url = URI("https://api.mashvisor.com/v1.1/client/city/investment/CA/Los%20Angeles")
    
    http = Net::HTTP.new(url.host, url.port)
    
    request = Net::HTTP::Get.new(url)
    request["x-api-key"] = 'YOUR_API_KEY'
    
    response = http.request(request)
    puts response.read_body
    
    <?php
    
    $request = new HttpRequest();
    $request->setUrl('https://api.mashvisor.com/v1.1/client/city/investment/CA/Los%20Angeles');
    $request->setMethod(HTTP_METH_GET);
    
    $request->setHeaders(array(
      'x-api-key' => 'YOUR_API_KEY'
    ));
    
    try {
      $response = $request->send();
    
      echo json_decode($response->getBody());
    } catch (HttpException $ex) {
      echo $ex;
    }
    
    package main
    
    import (
        "fmt"
        "net/http"
        "io/ioutil"
    )
    
    func main() {
    
        url := "https://api.mashvisor.com/v1.1/client/city/investment/CA/Los%20Angeles"
    
      req, _ := http.NewRequest("GET", url, nil)
    
      req.Header.Add("x-api-key", "YOUR_API_KEY")
    
        res, _ := http.DefaultClient.Do(req)
    
        defer res.Body.Close()
        body, _ := ioutil.ReadAll(res.Body)
    
        fmt.Println(res)
        fmt.Println(string(body))
    
    }
    

    The above command returns JSON structured like this:

    {
        "status": "success",
        "content": {
            "median_price": 998378.0407,
            "sqft": 1842.1734,
            "investment_properties": 4448,
            "airbnb_properties": 7084,
            "traditional_properties": 14354,
            "occupancy": 68.6682,
            "traditional_coc": 1.6432380442643497,
            "airbnb_coc": 1.6819542874835247,
            "traditional_rental": 3777.875777894207,
            "airbnb_rental": 4093.917001833255,
            "airbnb_rental_rates": {
                "oneBedRoomHomeValue": 2336.444943967073,
                "twoBedRoomsHomeValue": 3083.203274119984,
                "threeBedRoomsHomeValue": 4045.138149354516,
                "fourBedRoomsHomeValue": 5573.433687482561
            },
            "traditional_rental_rates": {
                "oneBedRoomHomeValue": 1763.9154224395752,
                "twoBedRoomsHomeValue": 2686.9422912597656,
                "threeBedRoomsHomeValue": 3942.8028729756675,
                "fourBedRoomsHomeValue": 4796.2156499226885
            }
        },
        "message": "City Overview fetched successfully"
    }
    

    This endpoint retrieves the city investment performance.

    HTTP Request

    GET https://api.mashvisor.com/v1.1/client/city/investment/{state}/{city}

    Request Headers

    Parameter Value
    x-api-key User Authentication Header

    Path Parameters

    Parameter Value Default Description
    state* String state* name, ex: NV.
    city String City Name, Ex: Los Angeles

    Get City Top Properties

    Sample Request

    OkHttpClient client = new OkHttpClient();
    
    Request request = new Request.Builder()
      .url("https://api.mashvisor.com/v1.1/client/city/properties/CA/Los%20Angeles")
      .get()
      .addHeader("x-api-key", "YOUR_API_KEY")
      .build();
    
    Response response = client.newCall(request).execute();
    
    require 'uri'
    require 'net/http'
    
    url = URI("https://api.mashvisor.com/v1.1/client/city/properties/CA/Los%20Angeles")
    
    http = Net::HTTP.new(url.host, url.port)
    
    request = Net::HTTP::Get.new(url)
    request["x-api-key"] = 'YOUR_API_KEY'
    
    response = http.request(request)
    puts response.read_body
    
    <?php
    
    $request = new HttpRequest();
    $request->setUrl('https://api.mashvisor.com/v1.1/client/city/properties/CA/Los%20Angeles');
    $request->setMethod(HTTP_METH_GET);
    
    $request->setHeaders(array(
      'x-api-key' => 'YOUR_API_KEY'
    ));
    
    try {
      $response = $request->send();
    
      echo json_decode($response->getBody());
    } catch (HttpException $ex) {
      echo $ex;
    }
    
    package main
    
    import (
        "fmt"
        "net/http"
        "io/ioutil"
    )
    
    func main() {
    
        url := "https://api.mashvisor.com/v1.1/client/city/properties/CA/Los%20Angeles"
    
      req, _ := http.NewRequest("GET", url, nil)
    
      req.Header.Add("x-api-key", "YOUR_API_KEY")
    
        res, _ := http.DefaultClient.Do(req)
    
        defer res.Body.Close()
        body, _ := ioutil.ReadAll(res.Body)
    
        fmt.Println(res)
        fmt.Println(string(body))
    
    }
    

    The above command returns JSON structured like this:

    {
        "status": "success",
        "content": {
            "properties": [
                {
                    "id": 642325,
                    "neighborhood": "Westlake",
                    "neighborhood_id": 276023,
                    "address": "308 N Mountain View Avenue",
                    "zip_code": 90026,
                    "zip": 90026,
                    "city": "Los Angeles",
                    "county": "LOS ANGELES",
                    "state": "CA",
                    "type": "Single Family Residential",
                    "image_url": "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png",
                    "list_price": 275000,
                    "baths": 1,
                    "beds": 2,
                    "sqft": 1247,
                    "days_on_market": 1203,
                    "next_open_house_date": null,
                    "next_open_house_start_time": null,
                    "next_open_house_end_time": null,
                    "last_sale_date": "2017-02-15 00:00:00",
                    "last_sale_price": 415000,
                    "listing_id": "RS16117046",
                    "has_pool": null,
                    "is_water_front": null,
                    "num_of_units": null,
                    "latitude": 34.0691,
                    "longitude": -118.267,
                    "traditional_ROI": 5.10278,
                    "airbnb_ROI": 9.7587,
                    "traditional_rental": 2406.54,
                    "airbnb_rental": 4217.37,
                    "traditional_cap": 5.10278,
                    "airbnb_cap": 9.7587,
                    "list_price_formatted": "$275,000",
                    "price_per_sqft": 221,
                    "country": "United States",
                    "COC": {
                        "airbnb": 9.7587,
                        "traditional": 5.10278
                    },
                    "rental_income": {
                        "airbnb": 4217.37,
                        "traditional": 2406.54
                    },
                    "cap_rate": {
                        "airbnb": 9.7587,
                        "traditional": 5.10278
                    },
                    "image": "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png"
                },
                {
                    "id": 1046266,
                    "neighborhood": "Sun Valley",
                    "neighborhood_id": 41131,
                    "address": "11854 Roscoe Boulevard",
                    "zip_code": 91352,
                    "zip": 91352,
                    "city": "Los Angeles",
                    "county": "LOS ANGELES",
                    "state": "CA",
                    "type": "Single Family Residential",
                    "image_url": "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png",
                    "list_price": 255000,
                    "baths": 2,
                    "beds": 3,
                    "sqft": 1048,
                    "days_on_market": 449,
                    "next_open_house_date": null,
                    "next_open_house_start_time": null,
                    "next_open_house_end_time": null,
                    "last_sale_date": null,
                    "last_sale_price": null,
                    "listing_id": "18006654",
                    "has_pool": null,
                    "is_water_front": null,
                    "num_of_units": null,
                    "latitude": 34.2213,
                    "longitude": -118.392,
                    "traditional_ROI": 6.54324,
                    "airbnb_ROI": 9.51711,
                    "traditional_rental": 2672.32,
                    "airbnb_rental": 3857.34,
                    "traditional_cap": 6.54324,
                    "airbnb_cap": 9.51711,
                    "list_price_formatted": "$255,000",
                    "price_per_sqft": 243,
                    "country": "United States",
                    "COC": {
                        "airbnb": 9.51711,
                        "traditional": 6.54324
                    },
                    "rental_income": {
                        "airbnb": 3857.34,
                        "traditional": 2672.32
                    },
                    "cap_rate": {
                        "airbnb": 9.51711,
                        "traditional": 6.54324
                    },
                    "image": "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png"
                },
                {
                    "id": 2104921,
                    "neighborhood": "Boyle Heights",
                    "neighborhood_id": 113886,
                    "address": "1222 S Herbert Avenue",
                    "zip_code": 90023,
                    "zip": 90023,
                    "city": "Los Angeles",
                    "county": "Los Angeles",
                    "state": "CA",
                    "type": "Single Family Residential",
                    "image_url": "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png",
                    "list_price": 340000,
                    "baths": 2,
                    "beds": 4,
                    "sqft": 1600,
                    "days_on_market": 7,
                    "next_open_house_date": null,
                    "next_open_house_start_time": null,
                    "next_open_house_end_time": null,
                    "last_sale_date": "2017-03-14 00:00:00",
                    "last_sale_price": 280000,
                    "listing_id": "MB19181287",
                    "has_pool": null,
                    "is_water_front": null,
                    "num_of_units": null,
                    "latitude": 34.0182,
                    "longitude": -118.183,
                    "traditional_ROI": 3.39692,
                    "airbnb_ROI": 9.04391,
                    "traditional_rental": 2455.65,
                    "airbnb_rental": 4994.44,
                    "traditional_cap": 3.39692,
                    "airbnb_cap": 9.04391,
                    "list_price_formatted": "$340,000",
                    "price_per_sqft": 213,
                    "country": "United States",
                    "COC": {
                        "airbnb": 9.04391,
                        "traditional": 3.39692
                    },
                    "rental_income": {
                        "airbnb": 4994.44,
                        "traditional": 2455.65
                    },
                    "cap_rate": {
                        "airbnb": 9.04391,
                        "traditional": 3.39692
                    },
                    "image": "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png"
                },
                {
                    "id": 1953384,
                    "neighborhood": "Harbor City",
                    "neighborhood_id": 38888,
                    "address": "24815 Normandie Avenue #66",
                    "zip_code": 90710,
                    "zip": 90710,
                    "city": "Los Angeles",
                    "county": "LOS ANGELES",
                    "state": "CA",
                    "type": "Other",
                    "image_url": "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png",
                    "list_price": 65000,
                    "baths": 1,
                    "beds": 1,
                    "sqft": 654,
                    "days_on_market": 86,
                    "next_open_house_date": null,
                    "next_open_house_start_time": null,
                    "next_open_house_end_time": null,
                    "last_sale_date": null,
                    "last_sale_price": null,
                    "listing_id": "SB19148313",
                    "has_pool": null,
                    "is_water_front": null,
                    "num_of_units": null,
                    "latitude": 33.8002,
                    "longitude": -118.298,
                    "traditional_ROI": 9.94736,
                    "airbnb_ROI": 8.81465,
                    "traditional_rental": 1179.68,
                    "airbnb_rental": 1552.57,
                    "traditional_cap": 9.94736,
                    "airbnb_cap": 8.81465,
                    "list_price_formatted": "$65,000",
                    "price_per_sqft": 99,
                    "country": "United States",
                    "COC": {
                        "airbnb": 8.81465,
                        "traditional": 9.94736
                    },
                    "rental_income": {
                        "airbnb": 1552.57,
                        "traditional": 1179.68
                    },
                    "cap_rate": {
                        "airbnb": 8.81465,
                        "traditional": 9.94736
                    },
                    "image": "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png"
                }
            ]
        },
        "message": "City Properties fetched successfully"
    }
    

    This endpoint retrieves the city's top invesmtent properties performance.

    HTTP Request

    GET https://api.mashvisor.com/v1.1/client/city/properties/{state}/{city}

    Request Headers

    Parameter Value
    x-api-key User Authentication Header

    Path Parameters

    Parameter Value Default Description
    state* String state* name, ex: NV.
    city String City Name, Ex: Los Angeles

    Get Top Neighborhoods

    Sample Request

    OkHttpClient client = new OkHttpClient();
    
    Request request = new Request.Builder()
      .url("https://api.mashvisor.com/v1.1/client/trends/neighborhoods?state=IL&city=Chicago&items=3")
      .get()
      .build();
    
    Response response = client.newCall(request).execute();
    
    require 'uri'
    require 'net/http'
    
    url = URI("https://api.mashvisor.com/v1.1/client/trends/neighborhoods?state=IL&city=Chicago&items=3")
    
    http = Net::HTTP.new(url.host, url.port)
    
    request = Net::HTTP::Get.new(url)
    request["x-api-key"] = 'YOUR_API_KEY'
    
    response = http.request(request)
    puts response.read_body
    
    <?php
    
    $request = new HttpRequest();
    $request->setUrl('https://api.mashvisor.com/v1.1/client/trends/neighborhoods');
    $request->setMethod(HTTP_METH_GET);
    
    $request->setQueryData(array(
      'state' => 'IL',
      'city' => 'Chicago',
      'items' => '3'
    ));
    
    try {
      $response = $request->send();
    
      echo json_decode($response->getBody());
    } catch (HttpException $ex) {
      echo $ex;
    }
    
    package main
    
    import (
        "fmt"
        "net/http"
        "io/ioutil"
    )
    
    func main() {
    
        url := "https://api.mashvisor.com/v1.1/client/trends/neighborhoods?state=IL&city=Chicago&items=3"
    
        req, _ := http.NewRequest("GET", url, nil)
    
        res, _ := http.DefaultClient.Do(req)
    
        defer res.Body.Close()
        body, _ := ioutil.ReadAll(res.Body)
    
        fmt.Println(res)
        fmt.Println(string(body))
    
    }
    

    The above command returns JSON structured like this:

    {
        "status": "success",
        "content": {
            "total_results": 3,
            "current_page": 1,
            "state": "IL",
            "city": "Chicago",
            "neighborhoods": [
                {
                    "id": 269585,
                    "name": "Humboldt Park",
                    "city": "Chicago",
                    "state": "IL",
                    "occupancy": "55.40430000",
                    "total_listing": 47,
                    "description": null,
                    "single_home_value": 520000,
                    "single_home_value_formatted": "$520,000",
                    "investment_rentals": {
                        "airbnb_rental": {
                            "roi": 2.206806357417788,
                            "cap_rate": 4.275257478632692,
                            "rental_income": 1852.6115740741664
                        },
                        "traditional_rental": {
                            "roi": 0.2465075217187405,
                            "cap_rate": 3.185552884615385,
                            "rental_income": 1380.40625
                        }
                    },
                    "mashMeter": 57.7665
                },
                {
                    "id": 269592,
                    "name": "Logan Square",
                    "city": "Chicago",
                    "state": "IL",
                    "occupancy": "55.10080000",
                    "total_listing": 119,
                    "description": null,
                    "single_home_value": 350000,
                    "single_home_value_formatted": "$350,000",
                    "investment_rentals": {
                        "airbnb_rental": {
                            "roi": 3.7590651363134384,
                            "cap_rate": 6.757881386799999,
                            "rental_income": 1971.0487378166665
                        },
                        "traditional_rental": {
                            "roi": 1.5805461276322603,
                            "cap_rate": 5.608165714285714,
                            "rental_income": 1635.715
                        }
                    },
                    "mashMeter": 58.353
                },
                {
                    "id": 403312,
                    "name": "Ukrainian Village",
                    "city": "Chicago",
                    "state": "IL",
                    "occupancy": "54.73170000",
                    "total_listing": 41,
                    "description": null,
                    "single_home_value": 464500,
                    "single_home_value_formatted": "$464,500",
                    "investment_rentals": {
                        "airbnb_rental": {
                            "roi": 2.949021758402095,
                            "cap_rate": 6.284044771359168,
                            "rental_income": 2432.448996913611
                        },
                        "traditional_rental": {
                            "roi": 0.749465583878405,
                            "cap_rate": 4.492094725511302,
                            "rental_income": 1738.815
                        }
                    },
                    "mashMeter": 62.044
                }
            ]
        },
        "message": "City Overview fetched successfully"
    }
    

    This endpoint retrieves the neighborhoods has the biggest occupancy in a specific city and state.

    HTTP Request

    GET http://api.mashvisor.com/v.1/trends/neighborhoods

    Request Headers

    Parameter Value
    x-api-key User Authentication Header

    Query Parameters

    Parameter Value Default Description
    state* String state* name, ex: NV.
    city String* city name, ex: Las Vegas.
    page Integer 1 The page to return the content for. Valid values:1, ... etc.
    items Integer 5 The items to return the content for. Valid values: 10, ... etc.

    Get Neighborhood Overview

    Sample Request

    OkHttpClient client = new OkHttpClient();
    
    Request request = new Request.Builder()
      .url("https://api.mashvisor.com/v1.1/client/neighborhood/268201/bar?state=CA")
      .get()
      .addHeader("x-api-key", "YOUR_API_KEY")
      .build();
    
    Response response = client.newCall(request).execute();
    
    require 'uri'
    require 'net/http'
    
    url = URI("https://api.mashvisor.com/v1.1/client/neighborhood/268201/bar?state=CA")
    
    http = Net::HTTP.new(url.host, url.port)
    
    request = Net::HTTP::Get.new(url)
    request["x-api-key"] = 'YOUR_API_KEY'
    
    response = http.request(request)
    puts response.read_body
    
    <?php
    
    $request = new HttpRequest();
    $request->setUrl('https://api.mashvisor.com/v1.1/client/neighborhood/268201/bar');
    $request->setMethod(HTTP_METH_GET);
    
    $request->setHeaders(array(
      'x-api-key' => 'YOUR_API_KEY'
    ));
    
    $request->setQueryData(array(
      'state' => 'CA'
    ));
    
    try {
      $response = $request->send();
    
      echo json_decode($response->getBody());
    } catch (HttpException $ex) {
      echo $ex;
    }
    
    package main
    
    import (
        "fmt"
        "net/http"
        "io/ioutil"
    )
    
    func main() {
    
        url := "https://api.mashvisor.com/v1.1/client/neighborhood/268201/bar?state=CA"
    
      req, _ := http.NewRequest("GET", url, nil)
    
      req.Header.Add("x-api-key", "YOUR_API_KEY")
    
        res, _ := http.DefaultClient.Do(req)
    
        defer res.Body.Close()
        body, _ := ioutil.ReadAll(res.Body)
    
        fmt.Println(res)
        fmt.Println(string(body))
    
    }
    

    The above command returns JSON structured like this:

    {
        "status": "success",
        "content": {
            "id": "268201",
            "name": "Haight Ashbury",
            "city": "San Francisco",
            "county": "San Francisco",
            "state": "CA",
            "is_village": 0,
            "description": "It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout.",
            "image": "https://9ac82074a42d61a93c2a-4910baab8d3df1a59178432e0b86512c.ssl.cf5.rackcdn.com",
            "latitude": 37.768094,
            "longitude": -122.448285,
            "walkscore": 96,
            "num_of_properties": 3,
            "num_of_airbnb_properties": 161,
            "num_of_traditional_properties": 21,
            "median_price": 699000,
            "price_per_sqft": 908.19,
            "mashMeter": 84.86,
            "avg_occupancy": 82.7578,
            "strategy": "airbnb",
            "airbnb_rental": {
                "roi": 3.7042534351348877,
                "cap_rate": 10.878766820904865,
                "rental_income": 6336.881673177083
            },
            "traditional_rental": {
                "roi": 2.3523680369059243,
                "cap_rate": 7.266060085836912,
                "rental_income": 4232.4800000000005
            }
        },
        "message": "Neighborhood bar fetched successfully"
    }
    

    This endpoint retrieves a neighborhood investment analysis and overview.

    HTTP Request

    GET https://api.mashvisor.com/v1.1/client/neighborhood/{id}/bar

    Request Headers

    Parameter Value
    x-api-key User Authentication Header

    Path Parameters

    Parameter Value Default Description
    id Integer Neighborhood id

    Query Parameters

    Parameter Value Default Description
    state* String Neighborhood's state

    Property Info

    The Property Object

    The Property Object:

    {
      "status": "success",
      "content": {
        "stateInterest": {
          "state": "GA",
          "thirtyYearFixed": 4.41,
          "thirtyYearFixedCount": 0,
          "fifteenYearFixed": 3.83,
          "fifteenYearFixedCount": 0,
          "fiveOneARM": 3.95,
          "fiveOneARMCount": 0
        },
        "isShortSale": null,
        "source": "Property Services of Atlanta, Inc.",
        "yearBuilt": 2005,
        "nextOpenHouseEndTime": null,
        "sqft": 1566,
        "lastSaleDate": "2017-03-23 00:00:00",
        "id": 2214791,
        "state": "GA",
        "county": "DeKalb",
        "longitude": -84.51863861083984,
        "zip": 30331,
        "image": {
          "image": "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png",
          "url": "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png",
          "width": 100,
          "height": 100
        },
        "extra_images": [
          "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png",
          "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png",
          "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png",
          "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png",
          "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png"
        ],
        "videos": [],
        "virtual_tours": [],
        "tax": 1765,
        "mls_id": "8655658",
        "daysOnMarket": 3,
        "neighborhood": {
          "country": "United States",
          "image": "https://9ac82074a42d61a93c2a-4910baab8d3df1a59178432e0b86512c.ssl.cf5.rackcdn.com",
          "city": "Atlanta",
          "singleHomeValue": 140000,
          "mashMeter": 67.49,
          "latitude": 33.692139,
          "description": null,
          "singleHomeValue_formatted": "$140,000",
          "is_village": false,
          "mashMeter_formatted": 67.49,
          "name": "Fairburn",
          "id": 403452,
          "state": "GA",
          "longitude": -84.522495,
          "walkscore": 14,
          "airbnb_properties_count": 6,
          "traditional_properties_count": 0
        },
        "homeType": "Single Family Residential",
        "property_type": "Residential",
        "property_sub_type": "Single Family Detached",
        "beds": 4,
        "num_of_units": null,
        "favorite": null,
        "status": "Active",
        "city": "Atlanta",
        "saleType": "MLS Listing",
        "latitude": 33.69144821166992,
        "description": "Lorem Ipsum is simply dummy text of the printing and typesetting industry.",
        "nextOpenHouseDate": null,
        "recentReductionDate": null,
        "title": "Single Family Detached, Traditional - Atlanta, GA",
        "rent_appreciation_rate": null,
        "originalListPrice": null,
        "parkingSpots": 1,
        "parkingType": "Attached",
        "address": "2333 Daniel",
        "nextOpenHouseStartTime": null,
        "lotSize": 5663,
        "broker_name": "Property Services of Atlanta,  Inc.",
        "broker_number": "(678) 384-6220",
        "broker_url": "http://www.psatlanta.com/atlanta-homes-for-sale",
        "agents": [
          {
            "id": 39995,
            "office_id": 8461
          }
        ],
        "url": "https://www.mashvisor.com/explore/#!/property/analysis/fairburn-atlanta-ga/2333-daniel/home/2214766",
        "baths": 3,
        "address_revealing": true,
        "location": "Fairburn",
        "interested": null,
        "listPrice": 125000,
        "price_per_sqft": 79.82120051085569,
        "lastSalePrice": 145000,
        "is_foreclosure": 0,
        "foreclosure_status": null,
        "occupancy_status": null,
        "owner_occupied": false,
        "listing_date": "2019-09-06T00:00:00.000Z",
        "heating_system": "Fireplace",
        "cooling_system": "Ceiling Fan(s)",
        "mls_name": "Georgia Multiple Listing Service",
        "hoa_dues": null,
        "view_type": null,
        "parcel_number": "14F-0032-0005-068-9",
        "architecture_style": "New Traditional",
        "has_pool": null,
        "is_water_front": null,
        "needs_repair": 0,
        "tenant_occupied": 0,
        "is_market_place": 0,
        "schools": [
          {
            "category": "Elementary",
            "name": "Deerwood Academy",
            "district": null
          },
          {
            "category": "High",
            "name": "Therrell",
            "district": null
          },
          {
            "category": "JuniorHigh",
            "name": null,
            "district": null
          },
          {
            "category": "Middle",
            "name": "Bunche",
            "district": null
          }
        ],
        "modification_timestamp": "2019-09-08T18:40:39.000Z",
        "created_at": "2019-09-09T05:23:45.000Z",
        "updated_at": "2019-09-09T05:23:45.000Z"
      }
    }
    

    Mashvisor has agreements with multiple MLS' providers and we're currently finalizing agreements with multiple others. We currently have 6M+ MLS listings in total in our databases (active and inactive). ~850K Active MLS listings from them nationwide. Covering 600+ MLSs out of 820.

    Property Data Dictionary

    Attribute Definition Possible Returns
    id Mashvisor Property ID Integer
    title A short title for the property String
    description Longer description of the property String
    home_type The property sub type as provided by the MLS provider String
    Possible values:
    1. Single Family Residential
    2.Townhouse
    3.Condo/Coop
    4.Multi Family
    5. Other
    property_main_type The property main type as provided by the MLS provider String
    Possible values:
    * Residential
    * Commercial
    * Common Interest
    * Farm And Agriculture
    * Lots And Land
    * MultiFamily
    * Other
    * Rental
    * Residential
    property_category The main property listing category String
    Possible values:
    * Purchase
    * Lease
    * Rent
    address The full street address of the property, ex:
     36981 Newark Blvd #B
    String
    city The city where the property is located String
    state* The state where the property is located String
    county County where a property is located String
    zip Postal code where a property is located Integer
    location The neighborhood where the property is located String
    beds Property full bedrooms count Integer
    baths Property full bathrooms count Integer
    num_of_units Number of units in the property, only exists with multifamily properties Integer
    sqft Property living area in square feet unit  Integer
    lot_size The lot size of the property in square feet unit  Integer
    parcel_number The property APN assigned by tax assessor String
    listing_id The MLS ID of the property String
    year_built The year was constructed in Integer
    walkscore The walkscore value of the property address Integer
    tax The last knows tax amount Integer
    tax_history Collection of all the taxes reported for a property JSON Array
    list_price The listed price for the property Integer
    price_per_sqft Price per sqft value Float
    days_on_market Number of days since the property was on market for sale Integer
    parking_spots Number of parking spots Integer
    parking_type An indicator for the parking type Integer
    last_sale_date The last sale date of the property Date
    last_sale_price The last sale price of the property Integer
    is_foreclosure An indicator if the property is foreclosure or not Boolean
    Possible values: 0, 1
    foreclosure_status The foreclosure status as described by the MLS provider String
    Possible values
    * Foreclosure - Other
    * Lis Pendens (Pre-Foreclosure)
    * Notice of Default (Pre-Foreclosure)
    * Notice of Foreclosure Sale (Auction)
    * Notice of Trustee Sale (Auction)
    * Other
    * REO - Bank Owned
    next_open_house_date The date of the open house occuring Date
    next_open_house_start_time The time of the open house starting Time
    next_open_house_end_time The time of the open house ending Time
    url The URL of the property String
    source The name of the entity authorized the property to be syndicated String
    provider_url The URL of the entity authorized the property to be syndicated String
    mls_name The name of the MLS String
    broker_name The broker’s name String
    broker_number The broker’s phone number String
    broker_email The broker’s email  String
    broker_address The broker’s full address String
    franchise The franchise of the property String
    latitude Latitude of the property Float
    longitude Longitude of the property Float
    directions The directions for the property String
    heating_system The heating system type String
    cooling_system The cooling system type String
    neighborhood_id The property neighborhood ID Integer
    schools Collection of all the schools nearby a property JSON Array
    view_type The property view type String
    Possible values:
    * Airport
    * Average
    * Bluff
    * Bridge
    * Canyon
    * City
    * Desert
    * Forest
    * Golf Course
    * Harbor
    * Hills
    * Lake
    * Marina
    * Mountain
    * None
    * Ocean
    * Other
    * Panorama
    * Park
    * Ravine
    * River
    * Territorial
    * Unknown
    * Valley
    * Vista
    * Water
    image_url The property main image URL String
    extra_images List of the images associated with a property String
    videos Videos associated with a property String
    virtual_tours Virtual tour link for a property String
    listing_date The date when the property was listed for sale Date
    updated_at Date it’s updated in the database Date
    buyer_name The property buyer’s name String
    seller_name The property seller’s name String
    owner_ame The property owner’s name String
    owner_address The owner full street address String
    owner_city The owner city String
    owner_state The owner city String
    owner_zip_code The owner city String
    owner_phone_number The owner phone number String
    owner_image The owner headshot String
    owner_email The owner email String
    occupancy_status Property occupancy status String
    Possible values:
    * Assumed Owner Occupancy
    * Owner Occupied or Primary Residence
    * Second Home
    agent_id The property’s agent ID associated to it Integer
    Expense Collection of all the expenses reported for a property JSON Array
    Possible values:
    * AC Maintenance Fee
    * Accounting Fee
    * Additional Pet Fee
    * Amenity Fee
    * Annual Operating Expenses
    * Application Fee
    * Beach Fee
    * Boat Fee
    * Broadband Fee
    * Building Insurance
    * Building Maintenance Fee
    * Bus Service Fee
    * Cable Fee
    * Capital Improvements Fee
    * Carpet Cleaning Fee
    * Cleaning Deposit
    * Cleaning Fee
    * Closing Cost
    * Club Fee
    * Club Membership Fee
    * Co-Op Fee
    * Cold Water Fee
    * Common Area Maintenance Fee
    * Community Development District Fee
    * Community/Master Home Owner Fee
    * Condo Management Fee
    * Condo/Co-Op Fee
    * Contingency Fund Fee
    * Cook Fee
    * Day Care Fee
    * Dock Fee
    * Doorman Fee
    * Dredging Fee
    * Electric Fee
    * ElevatorUseFee
    * EquestrianFee
    * ExterminatorFee
    * FacilitiesFee
    * FireDepartmentDues
    * FireInsuranceFee
    * FirewoodFee
    * FirstMonthsRent
    * FirstTwoMonthsRent
    * FitnessCenterFee
    * FrontFootFee
    * GardenerFee
    * GasFee
    * GreenFee
    * GroundMaintenanceFee
    * GroundRent
    * GutterCleaningFee
    * HealthFee
    * HomeOwnerAssessmentsFee
    * HomeOwnerTransferFee
    * HorseCareFee
    * InitiationFee
    * KeyDeposit
    * LandAssessmentFee
    * LandFee
    * LastMonthsRent
    * LawnMaintenanceFee
    * LegalFee
    * LifeguardFee
    * LightBulbs Filters Fuses AlarmCareFee
    * LightFee
    * MaidServiceFee
    * MaintenanceonPool
    * ManagementFee
    * MarinaFee
    * Mello-RoosCommunityFacilitiesDistrictFee
    * MHParkFees
    * MoveinFee
    * MoveoutFee
    * OilFee
    * OnsiteParkingFee
    * OriginationFee
    * Other
    * OwnerPays
    * ParkFee
    * ParkingFee
    * PetAddendumFee
    * PetApplicationFee
    * PetDeposit
    * PhoneFee
    * Pier/DockMaintenanceFee
    * PlannedAreaDevelopmentFee
    * POAFee
    * Pool/SpaFee
    * ProcessingFee
    * RanchFee
    * Re-KeyFee
    * RecaptureFee
    * RecreationFee
    * RecyclingFee
    * RegimeFee
    * RepairDeductible
    * ReservationFee
    * ResortFee
    * RoofMaintenanceFee
    * RoofRepairFee
    * RoofReplacementFee
    * RVFee
    * RVParkingFee
    * SecurityDeposit
    * SecurityLightFee
    * SecurityMonitoringFee
    * SecurityServiceFee
    * SecurityStaffFee
    * SecuritySystemFee
    * SepticInspectionFee
    * SewerFee
    * SewerTapFee
    * SnowRemovalFee
    * SocialFee
    * SpecialAssessmentFee
    * StormWaterFee
    * StreetLightingFee
    * StreetMaintenanceFee
    * StreetParkingFee
    * StructuralMaintenanceFee
    * TenantPays
    * TennisFee
    * TrashFee
    * TripleNetFee
    * UtilitiesFee
    * WalkingTrailFee
    * WaterFee
    * WaterHeaterFee
    * WaterIrrigationFee
    * WaterPipeFee
    * WaterRightsFee
    * WaterTapFee
    * WaterTreatmentFee
    * WaterUseFee
    * Water/SewerHookupFee
    * WaterfrontFee
    * WindowCleaningFee
    * YardCareFee
    builder_name The builder name of a property String
    builder_email The builder email of a property String
    builder_number The builder phone number of a property String
    builder_address The builder full address of a property String
    disclaimer String serves as a negation or limitation of the rights under a warranty given by a seller to a buyer String
    appliances A description of the appliance as provided JSON Array
    Possible values:
    * BarbequeorGrill
    * CoffeeSystem
    * CoffeeSystem-Roughin
    * Cooktop
    * Cooktop-Electric
    * Cooktop-Electric2burner
    * Cooktop-Electric6burner
    * Cooktop-Gas
    * Cooktop-Gas2burner
    * Cooktop-Gas5burner
    * Cooktop-Gas6burner
    * Cooktop-GasCustom
    * Cooktop-Induction
    * Cooktop-Induction2burner
    * Cooktop-Induction6burner
    * Dishwasher
    * Dishwasher-Drawer
    * Dishwasher-Twoormore
    * Dryer
    * Dryer-Dualfuel
    * Dryer-Electric110V
    * Dryer-Electric220V
    * Dryer-Gas
    * Dryer-Gasroughin
    * Freezer
    * Freezer-Compact
    * Freezer-Upright
    * GarbageDisposer
    * IceMaker
    * Microwave
    * None
    * Other
    * Oven
    * Oven-Convection
    * Oven-Double
    * Oven-DoubleElectric
    * Oven-DoubleGas
    * Oven-Gas
    * Oven-Gas3wide
    * Oven-Self-Cleaning
    * Oven-Steam
    * Oven-Twin
    * Oven-TwinElectric
    * Oven-TwinGas
    * Oven-TwinGas3wide
    * Oven-TwinMixed
    * Range
    * Range-BuiltIn
    * Range-Dual
    * Range-Dual10burner
    * Range-Dual6burner
    * Range-Dual8burner
    * Range-Electric
    * Range-Gas
    * Range-Gas10burner
    * Range-Gas6burner
    * Range-Gas8burner
    * Range-Induction
    * Range-Other
    * Rangetop-Electric
    * Rangetop-Electric2burner
    * Rangetop-Electric6burner
    * Rangetop-Gas
    * Rangetop-Gas10burner
    * Rangetop-Gas2burner
    * Rangetop-Gas4burnercompact
    * Rangetop-Gas6burner
    * Rangetop-Gas8burner
    * Rangetop-GasCustom
    * Rangetop-Induction
    * Rangetop-Induction2burner
    * Rangetop-Induction6burner
    * Refrigerator
    * Refrigerator-Bar
    * Refrigerator-Built-in
    * Refrigerator-Built-inWithPlumbing
    * Refrigerator-Drawer
    * Refrigerator-SidebySide
    * Refrigerator-Undercounter
    * Refrigerator-WineStorage
    * Refrigerator-WithPlumbing
    * TrashCompactor
    * VacuumSystem
    * VacuumSystem-Roughin
    * VentHood
    * VentHood10burner
    * VentHood6burner
    * VentHood8burner
    * WarmingDrawer
    * Washer
    * Washer-Frontload
    * Washer-Steamer
    * Washer-Topload
    * Washer/DryerCombo
    * Washer/DryerStack
    * Water-Filter
    * Water-InstantHot
    * Water-Purifier
    * Water-Softener
    detailed_characteristics Detailed characteristics JSON Array
    room_count Total rooms count Integer
    year_updated Indicates the year the property received updates Integer
    half_baths Indicates the half bathrooms value for a property Integer

    Get Property

    Sample Request

    OkHttpClient client = new OkHttpClient();
    
    Request request = new Request.Builder()
      .url("https://api.mashvisor.com/v1.1/client/property?id=2214791&state=GA")
      .get()
      .addHeader("x-api-key", "YOUR_API_KEY")
      .build();
    
    Response response = client.newCall(request).execute();
    
    require 'uri'
    require 'net/http'
    
    url = URI("https://api.mashvisor.com/v1.1/client/property?id=2214791&state=GA")
    
    http = Net::HTTP.new(url.host, url.port)
    
    request = Net::HTTP::Get.new(url)
    request["x-api-key"] = 'YOUR_API_KEY'
    
    response = http.request(request)
    puts response.read_body
    
    <?php
    
    $request = new HttpRequest();
    $request->setUrl('https://api.mashvisor.com/v1.1/client/property');
    $request->setMethod(HTTP_METH_GET);
    $request->setHeaders(array(
      'x-api-key' => 'YOUR_API_KEY'
    ));
    
    $request->setQueryData(array(
      'state' => 'GA',
      'id' => 2214791
    ));
    
    try {
      $response = $request->send();
    
      echo json_decode($response->getBody());
    } catch (HttpException $ex) {
      echo $ex;
    }
    
    package main
    
    import (
        "fmt"
        "net/http"
        "io/ioutil"
    )
    
    func main() {
    
        url := "https://api.mashvisor.com/v1.1/client/property?id=2214791&state=GA"
    
      req, _ := http.NewRequest("GET", url, nil)
    
      req.Header.Add("x-api-key", "YOUR_API_KEY")
    
        res, _ := http.DefaultClient.Do(req)
    
        defer res.Body.Close()
        body, _ := ioutil.ReadAll(res.Body)
    
        fmt.Println(res)
        fmt.Println(string(body))
    
    }
    

    The above command returns JSON structured like this:

    {
      "status": "success",
      "content": {
        "stateInterest": {
          "state": "GA",
          "thirtyYearFixed": 4.41,
          "thirtyYearFixedCount": 0,
          "fifteenYearFixed": 3.83,
          "fifteenYearFixedCount": 0,
          "fiveOneARM": 3.95,
          "fiveOneARMCount": 0
        },
        "isShortSale": null,
        "source": "Property Services of Atlanta,  Inc.",
        "yearBuilt": 2005,
        "nextOpenHouseEndTime": null,
        "sqft": 1566,
        "lastSaleDate": "2017-03-23 00:00:00",
        "id": 2214791,
        "state": "GA",
        "county": "DeKalb",
        "longitude": -84.51863861083984,
        "zip": 30331,
        "image": {
          "image": "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png",
          "url": "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png",
          "width": 100,
          "height": 100
        },
        "extra_images": [
          "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png",
          "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png",
          "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png",
          "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png",
          "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png"
        ],
        "videos": [],
        "virtual_tours": [],
        "tax": 1765,
        "mls_id": "8655658",
        "daysOnMarket": 3,
        "neighborhood": {
          "country": "United States",
          "image": "https://9ac82074a42d61a93c2a-4910baab8d3df1a59178432e0b86512c.ssl.cf5.rackcdn.com",
          "city": "Atlanta",
          "singleHomeValue": 140000,
          "mashMeter": 67.49,
          "latitude": 33.692139,
          "description": null,
          "singleHomeValue_formatted": "$140,000",
          "is_village": false,
          "mashMeter_formatted": 67.49,
          "name": "Fairburn",
          "id": 403452,
          "state": "GA",
          "longitude": -84.522495,
          "walkscore": 14,
          "airbnb_properties_count": 6,
          "traditional_properties_count": 0
        },
        "homeType": "Single Family Residential",
        "property_type": "Residential",
        "property_sub_type": "Single Family Detached",
        "beds": 4,
        "num_of_units": null,
        "favorite": null,
        "status": "Active",
        "city": "Atlanta",
        "saleType": "MLS Listing",
        "latitude": 33.69144821166992,
        "description": "It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout.",
        "nextOpenHouseDate": null,
        "recentReductionDate": null,
        "title": "Single Family Detached, Traditional - Atlanta, GA",
        "rent_appreciation_rate": null,
        "originalListPrice": null,
        "parkingSpots": 1,
        "parkingType": "Attached",
        "address": "2333 Daniel",
        "nextOpenHouseStartTime": null,
        "lotSize": 5663,
        "broker_name": "Property Services of Atlanta,  Inc.",
        "broker_number": "(678) 384-6220",
        "broker_url": "http://www.psatlanta.com/atlanta-homes-for-sale",
        "agents": [
          {
            "id": 39995,
            "office_id": 8461
          }
        ],
        "url": "https://www.mashvisor.com/explore/#!/property/analysis/fairburn-atlanta-ga/2333-daniel/home/2214766",
        "baths": 3,
        "address_revealing": true,
        "location": "Fairburn",
        "interested": null,
        "listPrice": 125000,
        "price_per_sqft": 79.82120051085569,
        "lastSalePrice": 145000,
        "is_foreclosure": 0,
        "foreclosure_status": null,
        "occupancy_status": null,
        "owner_occupied": false,
        "listing_date": "2019-09-06T00:00:00.000Z",
        "heating_system": "Fireplace",
        "cooling_system": "Ceiling Fan(s)",
        "mls_name": "Georgia Multiple Listing Service",
        "hoa_dues": null,
        "view_type": null,
        "parcel_number": "14F-0032-0005-068-9",
        "architecture_style": "New Traditional",
        "has_pool": null,
        "is_water_front": null,
        "needs_repair": 0,
        "tenant_occupied": 0,
        "is_market_place": 0,
        "schools": [
          {
            "category": "Elementary",
            "name": "Deerwood Academy",
            "district": null
          },
          {
            "category": "High",
            "name": "Therrell",
            "district": null
          },
          {
            "category": "JuniorHigh",
            "name": null,
            "district": null
          },
          {
            "category": "Middle",
            "name": "Bunche",
            "district": null
          }
        ],
        "modification_timestamp": "2019-09-08T18:40:39.000Z",
        "created_at": "2019-09-09T05:23:45.000Z",
        "updated_at": "2019-09-09T05:23:45.000Z"
      }
    }
    

    This endpoint retrieves the property's detailed data set stored in Mashvisor database.

    HTTP Request

    GET https://api.mashvisor.com/v1.1/client/property

    Request Headers

    Parameter Value
    x-api-key User Authentication Header

    Query Parameters

    Parameter Value Default Description
    id Long The property Id from the Mashvisor database.
    state* String The state of the property should be provided to the api or api will throw error 404.
    parcel_number String Property parcel or APN
    mls_id String Property MLS id
    address String Property street address
    city String Property city
    zip_code String Property zip code

    Get Taxing

    Sample Request

    OkHttpClient client = new OkHttpClient();
    
    Request request = new Request.Builder()
      .url("https://api.mashvisor.com/v1.1/client/property/2214791/taxing?state=GA")
      .get()
      .addHeader("x-api-key", "YOUR_API_KEY")
      .build();
    
    Response response = client.newCall(request).execute();
    
    require 'uri'
    require 'net/http'
    
    url = URI("https://api.mashvisor.com/v1.1/client/property/2214791/taxing?state=GA")
    
    http = Net::HTTP.new(url.host, url.port)
    
    request = Net::HTTP::Get.new(url)
    request["x-api-key"] = 'YOUR_API_KEY'
    
    response = http.request(request)
    puts response.read_body
    
    <?php
    
    $request = new HttpRequest();
    $request->setUrl('https://api.mashvisor.com/v1.1/client/property/2214791/taxing');
    $request->setMethod(HTTP_METH_GET);
    $request->setHeaders(array(
      'x-api-key' => 'YOUR_API_KEY'
    ));
    
    $request->setQueryData(array(
      'state' => 'GA'
    ));
    
    try {
      $response = $request->send();
    
      echo json_decode($response->getBody());
    } catch (HttpException $ex) {
      echo $ex;
    }
    
    package main
    
    import (
        "fmt"
        "net/http"
        "io/ioutil"
    )
    
    func main() {
    
        url := "https://api.mashvisor.com/v1.1/client/property/2214791/taxing?state=GA"
    
      req, _ := http.NewRequest("GET", url, nil)
    
      req.Header.Add("x-api-key", "YOUR_API_KEY")
    
        res, _ := http.DefaultClient.Do(req)
    
        defer res.Body.Close()
        body, _ := ioutil.ReadAll(res.Body)
    
        fmt.Println(res)
        fmt.Println(string(body))
    
    }
    

    The above command returns JSON structured like this:

    {
      "status": "success",
      "content": {
        "tax_history": [
          {
            "year": "2014",
            "property_tax": 1414.47,
            "assessment": 105300
          },
          {
            "year": "2015",
            "property_tax": 1340.14,
            "assessment": 99400
          },
          {
            "year": "2016",
            "property_tax": 1340.14,
            "assessment": 99400
          },
          {
            "year": "2017",
            "property_tax": 1340.14,
            "assessment": 99400
          },
          {
            "year": "2018",
            "property_tax": 977.59,
            "assessment": 99400
          },
          {
            "year": "2019",
            "property_tax": 977.59,
            "assessment": 151200
          }
        ]
      }
    }
    

    This endpoint retrieves the property's detailed data set stored in Mashvisor database.

    HTTP Request

    GET https://api.mashvisor.com/v1.1/client/property/{id}/taxing

    Path Parameters

    Parameter Value Default Description
    id Long The property Id from the Mashvisor database.

    Request Headers

    Parameter Value
    x-api-key User Authentication Header

    Query Parameters

    Parameter Value Default Description
    state* String The state of the property should be provided to the api or api will throw error 404.

    Get Agent

    Sample Request

    OkHttpClient client = new OkHttpClient();
    
    Request request = new Request.Builder()
      .url("https://api.mashvisor.com/v1.1/client/agents/profile/detail?id=51266&state=LA")
      .get()
      .addHeader("x-api-key", "YOUR_API_KEY")
      .build();
    
    Response response = client.newCall(request).execute();
    
    require 'uri'
    require 'net/http'
    
    url = URI("https://api.mashvisor.com/v1.1/client/agents/profile/detail?id=51266&state=LA")
    
    http = Net::HTTP.new(url.host, url.port)
    
    request = Net::HTTP::Get.new(url)
    request["x-api-key"] = 'YOUR_API_KEY'
    
    response = http.request(request)
    puts response.read_body
    
    <?php
    
    $request = new HttpRequest();
    $request->setUrl('https://api.mashvisor.com/v1.1/client/agents/profile/detail');
    $request->setMethod(HTTP_METH_GET);
    
    $request->setQueryData(array(
      'id' => '51266',
      'state' => 'LA'
    ));
    
    try {
      $response = $request->send();
    
      echo json_decode($response->getBody());
    } catch (HttpException $ex) {
      echo $ex;
    }
    
    package main
    
    import (
        "fmt"
        "net/http"
        "io/ioutil"
    )
    
    func main() {
    
        url := "https://api.mashvisor.com/v1.1/client/agents/profile/detail?id=51266&state=LA"
    
        req, _ := http.NewRequest("GET", url, nil)
    
        res, _ := http.DefaultClient.Do(req)
    
      req.Header.Add("x-api-key", "YOUR_API_KEY")
    
        defer res.Body.Close()
        body, _ := ioutil.ReadAll(res.Body)
    
        fmt.Println(res)
        fmt.Println(string(body))
    
    }
    

    The above command returns JSON structured like this:

    {
        "status": 200,
        "content": {
            "agentData": {
                "id": 51266,
                "first_name": "Mary",
                "last_name": "Danna",
                "email": "[email protected]",
                "primary_phone": "(504) 517-6533",
                "phone_number": "(504) 455-0100",
                "role": "Listing",
                "office_id": 6067,
                "website": "http://www.salepending.com",
                "address": "3197 RICHLAND AVENUE",
                "city": "New Orleans",
                "state": "LA",
                "county": "Jefferson",
                "zip_code": "70002",
                "company": "Keller Williams Realty 455-0100",
                "image": "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png",
                "real_estate_licence": "0995689808",
                "years_of_experience": 1388534400,
                "areas_served": "[\"Covington, LA, USA\",\"Metairie, LA, USA\",\"New Orleans, LA, USA\",\"Mandeville, LA, USA\",\"Harahan, LA, USA\",\"Kenner, LA, USA\",\"Jefferson, LA, USA\",\"Gretna, LA, USA\",\"River Ridge, LA, USA\",\"Elmwood, LA, USA\"]",
                "agent_specialities": "Investment,Multifamily,Short Term Rentals,Second Homes,Luxury Homes,Single Family Residential",
                "agent_experience": ",Multifamily,Condos,Commercial,Single Family Residential,Renovations,Flips,Renovation loans,403k,Luxury,Short Term Rentals",
                "summary": "\n",
                "title": "Investment Real Estate Agent",
                "mls_id": null,
                "price_range": null,
                "sold_properties": null,
                "created_at": "2017-02-11T09:20:00.000Z",
                "updated_at": "2019-09-09T00:36:18.000Z",
                "agent_id": 51266,
                "cities_serving_in": [
                    {
                        "city": "Metairie",
                        "state": "LA"
                    },
                    {
                        "city": "New Orleans",
                        "state": "LA"
                    },
                    {
                        "city": "Kenner",
                        "state": "LA"
                    },
                    {
                        "city": "Coushatta",
                        "state": "LA"
                    },
                    {
                        "city": "River Ridge",
                        "state": "LA"
                    }
                ],
                "office_agents": [
                    {
                        "id": 43843,
                        "first_name": "TANGIE",
                        "last_name": "P STEPHENS",
                        "email": "[email protected]",
                        "primary_phone": "(504) 239-1288",
                        "phone_number": "(504) 455-0100",
                        "role": "Listing",
                        "office_id": 6067,
                        "website": "https://kwmetairie.com",
                        "address": "3197 RICHLAND AVENUE",
                        "city": "METAIRIE",
                        "state": "LA",
                        "county": "Jefferson",
                        "zip_code": "70002",
                        "company": "KELLER WILLIAMS REALTY 455-0100",
                        "image": "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png",
                        "real_estate_licence": null,
                        "years_of_experience": null,
                        "areas_served": null,
                        "agent_specialities": null,
                        "agent_experience": null,
                        "summary": null,
                        "title": null,
                        "mls_id": null,
                        "price_range": null,
                        "sold_properties": null,
                        "active_properties": null,
                        "created_at": "2017-01-09T22:36:34.000Z",
                        "updated_at": "2019-08-01T00:42:11.000Z",
                        "properties_count": 249
                    },
                    {
                        "id": 56608,
                        "first_name": "BRITTANY",
                        "last_name": "E PICOLO-RAMOS",
                        "email": "[email protected]",
                        "primary_phone": "(504) 251-7920",
                        "phone_number": "(504) 455-0100",
                        "role": "Listing",
                        "office_id": 6067,
                        "website": "https://kwmetairie.com",
                        "address": "3197 RICHLAND AVENUE",
                        "city": "METAIRIE",
                        "state": "LA",
                        "county": "Jefferson",
                        "zip_code": "70002",
                        "company": "KELLER WILLIAMS REALTY 455-0100",
                        "image": "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png",
                        "real_estate_licence": null,
                        "years_of_experience": null,
                        "areas_served": null,
                        "agent_specialities": null,
                        "agent_experience": null,
                        "summary": null,
                        "title": null,
                        "mls_id": null,
                        "price_range": null,
                        "sold_properties": null,
                        "active_properties": null,
                        "created_at": "2017-03-22T09:47:22.000Z",
                        "updated_at": "2019-03-28T12:43:35.000Z",
                        "properties_count": 148
                    },
                    ...
                ]
            },
            "agentDataConnection": "6",
            "supportedIDX": null,
            "approvedClaims": 0,
            "canEdit": false,
            "claimStatus": "NO-CLAIM"
        },
        "message": ""
    }
    

    This endpoint retrieves a random agent for given non-agent user.

    HTTP Request

    GET https://api.mashvisor.com/v1.1/client/agents/profile/detail

    Request Headers

    Parameter Value
    x-api-key User Authentication Header

    Query Parameters

    Parameter Value Default Description
    state* String The state of the property should be provided to the api or api will throw error 404.
    id Long The agent Id from the Mashvisor database.
    name string The agent full name from the Mashvisor database.
    city string The agent city from the Mashvisor database.

    Get Office

    Sample Request

    OkHttpClient client = new OkHttpClient();
    
    Request request = new Request.Builder()
      .url("https://api.mashvisor.com/v1.1/client/office/details?id=6067&state=LA")
      .get()
      .addHeader("x-api-key", "YOUR_API_KEY")
      .build();
    
    Response response = client.newCall(request).execute();
    
    require 'uri'
    require 'net/http'
    
    url = URI("https://api.mashvisor.com/v1.1/client/office/details?id=6067&state=LA")
    
    http = Net::HTTP.new(url.host, url.port)
    
    request = Net::HTTP::Get.new(url)
    request["x-api-key"] = 'YOUR_API_KEY'
    
    response = http.request(request)
    puts response.read_body
    
    <?php
    
    $request = new HttpRequest();
    $request->setUrl('https://api.mashvisor.com/v1.1/client/office/details');
    $request->setMethod(HTTP_METH_GET);
    
    $request->setQueryData(array(
      'id' => '6067',
      'state' => 'LA'
    ));
    
    $request->setHeaders(array(
      'x-api-key' => 'YOUR_API_KEY'
    ));
    
    try {
      $response = $request->send();
    
      echo json_decode($response->getBody());
    } catch (HttpException $ex) {
      echo $ex;
    }
    
    package main
    
    import (
        "fmt"
        "net/http"
        "io/ioutil"
    )
    
    func main() {
    
        url := "https://api.mashvisor.com/v1.1/client/office/details?id=6067&state=LA"
    
      req, _ := http.NewRequest("GET", url, nil)
    
      req.Header.Add("x-api-key", "YOUR_API_KEY")
    
        res, _ := http.DefaultClient.Do(req)
    
        defer res.Body.Close()
        body, _ := ioutil.ReadAll(res.Body)
    
        fmt.Println(res)
        fmt.Println(string(body))
    
    }
    

    The above command returns JSON structured like this:

    {
      "status": "success",
      "content": {
        "id": 6067,
        "phone_number": "(504) 455-0100",
        "name": "KELLER WILLIAMS REALTY 455-0100",
        "email": "[email protected]",
        "website": "https://kwmetairie.com",
        "mls_id": null,
        "address": "3197 RICHLAND AVENUE",
        "city": "METAIRIE",
        "state": "LA",
        "zip_code": "70002",
        "created_at": "2016-12-15T14:53:40.000Z",
        "updated_at": "2019-09-10T02:58:01.000Z",
        "agents": [
          {
            "id": 28494,
            "first_name": "SIMONE",
            "last_name": "S SOIGNET",
            "email": "[email protected]",
            "primary_phone": "(504) 650-6650",
            "phone_number": "(504) 455-0100",
            "role": "Listing",
            "office_id": 6067,
            "website": "https://kwmetairie.com",
            "address": "3197 RICHLAND AVENUE",
            "city": "METAIRIE",
            "state": "LA",
            "county": "Jefferson",
            "zip_code": "70002",
            "company": "KELLER WILLIAMS REALTY 455-0100",
            "image": "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png",
            "real_estate_licence": null,
            "years_of_experience": null,
            "areas_served": null,
            "agent_specialities": null,
            "agent_experience": null,
            "summary": null,
            "title": null,
            "mls_id": null,
            "price_range": null,
            "sold_properties": null,
            "active_properties": null,
            "mailchimp_transfer_date": "2019-03-28T12:43:35.000Z",
            "created_at": "2016-12-15T14:53:41.000Z",
            "updated_at": "2019-03-28T12:43:35.000Z",
            "active_listings": 1
          }
        ],
        "agents_count": 353,
        "active_listings": [
          {
            "id": 717559,
            "address": "6931 MEMPHIS Street",
            "city": "New Orleans",
            "state": "LA",
            "zip": 70124,
            "county": "ORLEANS",
            "status": "Active",
            "listing_id": "2157451",
            "location": "Lake Shore-Lake Vista",
            "neighborhood_id": 276411,
            "list_price": 615000,
            "beds": 4,
            "baths": 3,
            "home_type": "Single Family Residential",
            "image_url": "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png",
            "last_sale_price": null,
            "last_sale_date": null,
            "year_built": 2014
          }
        ],
        "active_listings_count": 276,
        "sold_listings": [
          {
            "id": 92573,
            "address": "1041 TCHOUPITOULAS St",
            "city": "New orleans",
            "state": "LA",
            "zip": 70130,
            "county": null,
            "status": "inactive",
            "listing_id": "2017044",
            "location": "Lower Garden District",
            "neighborhood_id": 152428,
            "list_price": 685000,
            "beds": 2,
            "baths": 3,
            "home_type": "Townhouse",
            "image_url": "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png",
            "last_sale_price": 540000,
            "last_sale_date": "2012-11-14 00:00:00",
            "year_built": null
          }
        ],
        "sold_listings_count": 2651,
        "service_areas": [
          {
            "city": "New Orleans",
            "state": "LA"
          },
          {
            "city": "Kenner",
            "state": "LA"
          }
        ]
      }
    }
    

    This endpoint retrieves the real estate office details for a specific office id.

    HTTP Request

    GET https://api.mashvisor.com/v1.1/client/property/office/details

    Request Headers

    Parameter Value
    x-api-key User Authentication Header

    Query Parameters

    Parameter Value Default Description
    state* String The state of the property should be provided to the api or api will throw error 404.
    id Long The office Id from the Mashvisor database.

    Get Price Estimates

    Sample Request

    OkHttpClient client = new OkHttpClient();
    
    Request request = new Request.Builder()
      .url("https://api.mashvisor.com/v1.1/client/property/estimates/664367?state=GA")
      .get()
      .addHeader("x-api-key", "YOUR_API_KEY")
      .addHeader("User-Agent", "PostmanRuntime/7.15.2")
      .build();
    
    Response response = client.newCall(request).execute();
    
    require 'uri'
    require 'net/http'
    
    url = URI("https://api.mashvisor.com/v1.1/client/property/estimates/664367?state=GA")
    
    http = Net::HTTP.new(url.host, url.port)
    
    request = Net::HTTP::Get.new(url)
    request["x-api-key"] = 'YOUR_API_KEY'
    
    response = http.request(request)
    puts response.read_body
    
    <?php
    
    $request = new HttpRequest();
    $request->setUrl('https://api.mashvisor.com/v1.1/client/property/estimates/664367');
    $request->setMethod(HTTP_METH_GET);
    $request->setHeaders(array(
      'x-api-key' => 'YOUR_API_KEY'
    ));
    $request->setQueryData(array(
      'state' => 'GA'
    ));
    
    try {
      $response = $request->send();
    
      echo json_decode($response->getBody());
    } catch (HttpException $ex) {
      echo $ex;
    }
    
    package main
    
    import (
        "fmt"
        "net/http"
        "io/ioutil"
    )
    
    func main() {
    
        url := "https://api.mashvisor.com/v1.1/client/property/estimates/664367?state=GA"
    
      req, _ := http.NewRequest("GET", url, nil)
    
      req.Header.Add("x-api-key", "YOUR_API_KEY")
    
        res, _ := http.DefaultClient.Do(req)
    
        defer res.Body.Close()
        body, _ := ioutil.ReadAll(res.Body)
    
        fmt.Println(res)
        fmt.Println(string(body))
    
    }
    

    The above command returns JSON structured like this:

    {
      "status": "success",
      "content": {
        "zestimate": 139365,
        "zrental_estimate": 1435,
        "redfin_estimate": 125101,
        "mashvisor_estimate": 125000
      }
    }
    

    This endpoint retrieves list and rental price estimation of given property.

    HTTP Request

    GET https://api.mashvisor.com/v1.1/client/property/estimates/{pid}

    Request Headers

    Parameter Value
    x-api-key User Authentication Header

    Path Parameters

    Parameter Value Default Description
    pid String* The property Id from the Mashvisor database.

    Query Parameters

    Parameter Value Default Description
    state* String The state of the property should be provided to the api or api will throw error 404.

    Property Ownership

    The Ownership Objects

    The Contact Object:

    {
      "id": 3432,
      "first_name": "Ahmed",
      "last_name": "Hashlamon",
      "email_address": "[email protected]",
      "phone_number": "(669) 222-6396",
      "line_type": null,
      "address": null,
      "city": "Campbell",
      "state": "CA",
      "zip_code": "95008",
      "created_at": "2016-12-15T14:53:40.000Z",
      "updated_at": "2019-09-10T02:58:01.000Z"
      }
    

    The Demographics Object:

    {
      "dob": "24081992",
      "age_range": "25-29",
      "ethnicity": "Catholic",
      "single_parent": "Yes",
      "senior_adult_household": "Yes",
      "young_adult_household": null,
      "business_owner": "Accountant",
      "language": "English",
      "religion": "Christian",
      "number_of_children": "3",
      "presence_of_children": "Yes",
      "education": null,
      "occupation": null,
      "gender": "Male",
      "marital_status": "Married",
      "owner_renter": "Owner",
      "social_presence_indicator": "Yes"
      }
    

    The Lifestyle and Interests Object:

    {
      "magazines": "Yes",
      "technology": "Yes",
      "dieting_and_wellness": "Yes",
      "exercise": "Yes",
      "diy_home_improvement": "Yes",
      "jewelry": null,
      "mail_order_buyer": "Yes",
      "membership_clubs": "Yes",
      "online_education": "Yes",
      "spectator_sports": "Yes",
      "outdoor_sports": "Yes",
      "investing": null,
      "books": null,
      "political_donor": "Yes",
      "hobbies_and_crafts": "Yes",
      "cosmetics": "Yes",
      "travel": "Yes",
      "charitable_donations": "Yes",
      "arts_and_antiques": "Yes",
      "pet_owner": "Yes",
      "cooking": null,
      "diy_auto_work": "Yes",
      "health_and_beauty": "Yes",
      "parenting": null,
      "music": null,
      "film_and_movies": "Yes",
      "self_improvement": "Yes",
      "womens_apparel": "Yes"
      }
    

    The Financials, Household incomes, wealth score, and autos Object:

    {
      "est_household_income": "$80,000 - 100,000",
      "length_of_residence": "10 years",
      "home_purchase_date": "201770",
      "est_home_purchase_price": "$950,000-1,100,999",
      "dwelling_type": "Single Family",
      "auto_year": null,
      "number_of_credit_lines": "2",
      "auto_make": null,
      "credit_card_holder": "Yes",
      "auto_model": null,
      "est_home_value": null,
      "auto_edition": null,
      "est_net_worth": "$500,000-749,999",
      "gas_credit_card_holder": null,
      "upscale_card_holder": "Yes",
      "wealth_score": 98
    }
    

    Mashvisor database could let find properties owners information, contact info, demographics, lifestyle, interests, finantionals and household income through data gathered sicne few years ago based on the proeprty address, parcels, or MLS ids.

    Owner Data Dictionary

    Attribute Definition Possible Returns
    First Name Owner First name String
    Last Name Owner Last name String
    Phone Number Phone number, including area code Integer
    Line Type Landline or Mobile String
    Email Address Owner email address String
    Address Street address String
    City City name String
    state* state* abbreviation String
    Zip Code Zip code Integer
    DOB A month and year of person’s born String
    Age Range Age range of the person String
    Ethnicity Ethnicity of the person String
    Single Parent Is single parent presence in household String
    Senior Adult Household Yes or null String
    Young Adult Household Yes or null String
    Business Owner Business owner; Accountant, Builder, Director, ..  String
    Language Primary Language String
    Religion Person’s religion String
    Number of Children Children within the household Integer
    Presence of Children Yes or null String
    Education Highest level of education String
    Occupation Industry of occupation String
    Gender Male or Female String
    Marital Status Single or Married String
    Own/Rent Own or rent household String
    Social Presence Indicator Whether the person has an account on social networks or not, Yes or null String
    Magazines If there’s a match, the title will be listed String
    Technology If there’s a match, the title will be listed String
    Dieting and Wellness If there’s a match, the title will be listed String
    Exercise If there’s a match, the title will be listed String
    DIY Home Improvement If there’s a match, the title will be listed String
    Jewelry If there’s a match, the title will be listed String
    Mail Order Buyer If there’s a match, the title will be listed String
    Membership Clubs If there’s a match, the title will be listed String
    Online Education If there’s a match, the title will be listed String
    Spectator Sports If there’s a match, the title will be listed String
    Outdoor Sports If there’s a match, the title will be listed String
    Investing If there’s a match, the title will be listed String
    Books If there’s a match, the title will be listed String
    Political Donor If there’s a match, the title will be listed String
    Hobbies and Crafts If there’s a match, the title will be listed String
    Cosmetics If there’s a match, the title will be listed String
    Travel If there’s a match, the title will be listed String
    Charitable Donations If there’s a match, the title will be listed String
    Arts and Antiques If there’s a match, the title will be listed String
    Pet Owner If there’s a match, the title will be listed String
    Cooking If there’s a match, the title will be listed String
    DIY Auto work If there’s a match, the title will be listed String
    Health and Beauty If there’s a match, the title will be listed String
    Parenting If there’s a match, the title will be listed String
    Music If there’s a match, the title will be listed String
    Film and Movies If there’s a match, the title will be listed String
    Self Improvement If there’s a match, the title will be listed String
    Womens Apparel Yes or null String
    Est. Household Income Estimated household income String
    Length of Residence Length of residence String
    Home Purchase Date Estimated date of home purchase Date
    Est. Home Purchase Price Estimated price of home purchase String
    Dwelling Type Single family or multi-family String
    Auto year Year of automobile Integer
    Number of credit lines City Number of lines of credit Integer
    Auto make Make of automobile String
    Credit card holder Yes or null String
    Auto model Model of automobile String
    Est. Home Value Estimated home value String
    Auto edition Edition of automobile String
    Est. Net Worth Estimated net worth String
    Gas credit card holder Yes or null String
    Upscale card holder Yes or null String
    Wealth Score Measure of wealth, 0 - 100 Integer

    Get Contact Info

    Sample Request

    OkHttpClient client = new OkHttpClient();
    
    Request request = new Request.Builder()
      .url("https://api.mashvisor.com/v1.1/client/owner/contact?mls_id=SF453443465&state=GA")
      .get()
      .addHeader("x-api-key", "YOUR_API_KEY")
      .build();
    
    Response response = client.newCall(request).execute();
    
    require 'uri'
    require 'net/http'
    
    url = URI("https://api.mashvisor.com/v1.1/client/owner/contact?mls_id=SF453443465&state=GA")
    
    http = Net::HTTP.new(url.host, url.port)
    
    request = Net::HTTP::Get.new(url)
    request["x-api-key"] = 'YOUR_API_KEY'
    
    response = http.request(request)
    puts response.read_body
    
    <?php
    
    $request = new HttpRequest();
    $request->setUrl('https://api.mashvisor.com/v1.1/client/owner/contact');
    $request->setMethod(HTTP_METH_GET);
    
    $request->setQueryData(array(
      'mls_id' => 'SF453443465'
      'state' => 'GA'
    ));
    
    $request->setHeaders(array(
      'x-api-key' => 'YOUR_API_KEY'
    ));
    
    try {
      $response = $request->send();
    
      echo json_decode($response->getBody());
    } catch (HttpException $ex) {
      echo $ex;
    }
    
    package main
    
    import (
        "fmt"
        "net/http"
        "io/ioutil"
    )
    
    func main() {
    
        url := "https://api.mashvisor.com/v1.1/client/owner/contact?mls_id=SF453443465&state=GA"
    
        req, _ := http.NewRequest("GET", url, nil)
    
      req.Header.Add("x-api-key", "YOUR_API_KEY")
    
        res, _ := http.DefaultClient.Do(req)
    
        defer res.Body.Close()
        body, _ := ioutil.ReadAll(res.Body)
    
        fmt.Println(res)
        fmt.Println(string(body))
    
    }
    

    The above command returns JSON structured like this:

    {
      "status": "success",
      "content": {
        "id": 3432,
        "first_name": "Ahmed",
        "last_name": "Hashlamon",
        "email_address": "[email protected]m",
        "phone_number": "(669) 222-6396",
        "line_type": "Mobile",
        "address": null,
        "city": "Campbell",
        "state": "CA",
        "zip_code": "95008",
        "created_at": "2016-12-15T14:53:40.000Z",
        "updated_at": "2019-09-10T02:58:01.000Z"
      }
    }
    

    This endpoint retrieves the contact info from Mashvisor for a single property owner.

    HTTP Request

    GET https://api.mashvisor.com/v1.1/client/owner/contact

    Request Headers

    Parameter Value
    x-api-key User Authentication Header

    Query Parameters

    Parameter Value Default Description
    parcel_number String Property parcel or APN
    mls_id String Property MLS id
    address String Property street address
    city String Property city
    state* String Property state
    zip_code String Property zip code

    Get Demographics

    Sample Request

    OkHttpClient client = new OkHttpClient();
    
    Request request = new Request.Builder()
      .url("https://api.mashvisor.com/v1.1/client/owner/demographics?phone_number=+16692226396")
      .get()
      .addHeader("x-api-key", "YOUR_API_KEY")
      .build();
    
    Response response = client.newCall(request).execute();
    
    require 'uri'
    require 'net/http'
    
    url = URI("https://api.mashvisor.com/v1.1/client/owner/demographics?phone_number=+16692226396")
    
    http = Net::HTTP.new(url.host, url.port)
    
    request = Net::HTTP::Get.new(url)
    request["x-api-key"] = 'YOUR_API_KEY'
    
    response = http.request(request)
    puts response.read_body
    
    <?php
    
    $request = new HttpRequest();
    $request->setUrl('https://api.mashvisor.com/v1.1/client/owner/demographics');
    $request->setMethod(HTTP_METH_GET);
    
    $request->setQueryData(array(
      'phone_number' => '+16692226396'
    ));
    
    $request->setHeaders(array(
      'x-api-key' => 'YOUR_API_KEY'
    ));
    
    try {
      $response = $request->send();
    
      echo json_decode($response->getBody());
    } catch (HttpException $ex) {
      echo $ex;
    }
    
    package main
    
    import (
        "fmt"
        "net/http"
        "io/ioutil"
    )
    
    func main() {
    
        url := "https://api.mashvisor.com/v1.1/client/owner/demographics?phone_number=+16692226396"
    
        req, _ := http.NewRequest("GET", url, nil)
    
      req.Header.Add("x-api-key", "YOUR_API_KEY")
    
        res, _ := http.DefaultClient.Do(req)
    
        defer res.Body.Close()
        body, _ := ioutil.ReadAll(res.Body)
    
        fmt.Println(res)
        fmt.Println(string(body))
    
    }
    

    The above command returns JSON structured like this:

    {
      "status": "success",
      "content": {
        "dob": "24081992",
        "age_range": "25-29",
        "ethnicity": "Catholic",
        "single_parent": "Yes",
        "senior_adult_household": "Yes",
        "young_adult_household": null,
        "business_owner": "Accountant",
        "language": "English",
        "religion": "Christian",
        "number_of_children": "3",
        "presence_of_children": "Yes",
        "education": null,
        "occupation": null,
        "gender": "Male",
        "marital_status": "Married",
        "owner_renter": "Owner",
        "social_presence_indicator": "Yes"
      }
    }
    

    This endpoint retrieves all owner demographics by his/her full name, phone number, email address, or by a full mailing address

    HTTP Request

    GET https://api.mashvisor.com/v1.1/client/owner/demographics

    Request Headers

    Parameter Value
    x-api-key User Authentication Header

    Query Parameters

    Parameter Value Default Description
    first_name String First name
    last_name String Last name
    phone_number String Person phone number
    email_address String Person email address
    address String Property street address
    zip_code String Property zip code
    city String Property city
    state* String Property state

    Get Lifestyle and Interests

    Sample Request

    OkHttpClient client = new OkHttpClient();
    
    Request request = new Request.Builder()
      .url("https://api.mashvisor.com/v1.1/client/owner/lifeint?phone_number=+16692226396")
      .get()
      .addHeader("x-api-key", "YOUR_API_KEY")
      .build();
    
    Response response = client.newCall(request).execute();
    
    require 'uri'
    require 'net/http'
    
    url = URI("https://api.mashvisor.com/v1.1/client/owner/lifeint?phone_number=+16692226396")
    
    http = Net::HTTP.new(url.host, url.port)
    
    request = Net::HTTP::Get.new(url)
    request["x-api-key"] = 'YOUR_API_KEY'
    
    response = http.request(request)
    puts response.read_body
    
    <?php
    
    $request = new HttpRequest();
    $request->setUrl('https://api.mashvisor.com/v1.1/client/owner/lifeint');
    $request->setMethod(HTTP_METH_GET);
    
    $request->setQueryData(array(
      'phone_number' => '+16692226396'
    ));
    
    $request->setHeaders(array(
      'x-api-key' => 'YOUR_API_KEY'
    ));
    
    try {
      $response = $request->send();
    
      echo json_decode($response->getBody());
    } catch (HttpException $ex) {
      echo $ex;
    }
    
    package main
    
    import (
        "fmt"
        "net/http"
        "io/ioutil"
    )
    
    func main() {
    
        url := "https://api.mashvisor.com/v1.1/client/owner/lifeint?phone_number=+16692226396"
    
        req, _ := http.NewRequest("GET", url, nil)
    
      req.Header.Add("x-api-key", "YOUR_API_KEY")
    
        res, _ := http.DefaultClient.Do(req)
    
        defer res.Body.Close()
        body, _ := ioutil.ReadAll(res.Body)
    
        fmt.Println(res)
        fmt.Println(string(body))
    
    }
    

    The above command returns JSON structured like this:

    {
      "status": "success",
      "content": {
        "magazines": "Yes",
        "technology": "Yes",
        "dieting_and_wellness": "Yes",
        "exercise": "Yes",
        "diy_home_improvement": "Yes",
        "jewelry": null,
        "mail_order_buyer": "Yes",
        "membership_clubs": "Yes",
        "online_education": "Yes",
        "spectator_sports": "Yes",
        "outdoor_sports": "Yes",
        "investing": null,
        "books": null,
        "political_donor": "Yes",
        "hobbies_and_crafts": "Yes",
        "cosmetics": "Yes",
        "travel": "Yes",
        "charitable_donations": "Yes",
        "arts_and_antiques": "Yes",
        "pet_owner": "Yes",
        "cooking": null,
        "diy_auto_work": "Yes",
        "health_and_beauty": "Yes",
        "parenting": null,
        "music": null,
        "film_and_movies": "Yes",
        "self_improvement": "Yes",
        "womens_apparel": "Yes"
      }
    }
    

    This endpoint retrieves all owner lifestyle and interests by his/her full name, phone number, email address, or by a full mailing address.

    HTTP Request

    GET https://api.mashvisor.com/v1.1/client/owner/lifeint

    Request Headers

    Parameter Value
    x-api-key User Authentication Header

    Query Parameters

    Parameter Value Default Description
    first_name String First name
    last_name String Last name
    phone_number String Person phone number
    email_address String Person email address
    address String Property street address
    zip_code String Property zip code
    city String Property city
    state* String Property state

    Get Financials, Household Incomes

    Sample Request

    OkHttpClient client = new OkHttpClient();
    
    Request request = new Request.Builder()
      .url("https://api.mashvisor.com/v1.1/client/owner/finhouse?phone_number=+16692226396")
      .get()
      .addHeader("x-api-key", "YOUR_API_KEY")
      .build();
    
    Response response = client.newCall(request).execute();
    
    require 'uri'
    require 'net/http'
    
    url = URI("https://api.mashvisor.com/v1.1/client/owner/finhouse?phone_number=+16692226396")
    
    http = Net::HTTP.new(url.host, url.port)
    
    request = Net::HTTP::Get.new(url)
    request["x-api-key"] = 'YOUR_API_KEY'
    
    response = http.request(request)
    puts response.read_body
    
    <?php
    
    $request = new HttpRequest();
    $request->setUrl('https://api.mashvisor.com/v1.1/client/owner/finhouse');
    $request->setMethod(HTTP_METH_GET);
    
    $request->setQueryData(array(
      'phone_number' => '+16692226396'
    ));
    
    $request->setHeaders(array(
      'x-api-key' => 'YOUR_API_KEY'
    ));
    
    try {
      $response = $request->send();
    
      echo json_decode($response->getBody());
    } catch (HttpException $ex) {
      echo $ex;
    }
    
    package main
    
    import (
        "fmt"
        "net/http"
        "io/ioutil"
    )
    
    func main() {
    
        url := "https://api.mashvisor.com/v1.1/client/owner/finhouse?phone_number=+16692226396"
    
        req, _ := http.NewRequest("GET", url, nil)
    
      req.Header.Add("x-api-key", "YOUR_API_KEY")
    
        res, _ := http.DefaultClient.Do(req)
    
        defer res.Body.Close()
        body, _ := ioutil.ReadAll(res.Body)
    
        fmt.Println(res)
        fmt.Println(string(body))
    
    }
    

    The above command returns JSON structured like this:

    {
      "status": "success",
      "content": {
        "est_household_income": "$80,000 - 100,000",
        "length_of_residence": "10 years",
        "home_purchase_date": "201770",
        "est_home_purchase_price": "$950,000-1,100,999",
        "dwelling_type": "Single Family",
        "auto_year": null,
        "number_of_credit_lines": "2",
        "auto_make": null,
        "credit_card_holder": "Yes",
        "auto_model": null,
        "est_home_value": null,
        "auto_edition": null,
        "est_net_worth": "$500,000-749,999",
        "gas_credit_card_holder": null,
        "upscale_card_holder": "Yes",
        "wealth_score": 98
      }
    }
    

    This endpoint retrieves all owner financials, household incomes, and wealth score by his/her full name, phone number, email address, or by a full mailing address.

    HTTP Request

    GET https://api.mashvisor.com/v1.1/client/owner/finhouse

    Request Headers

    Parameter Value
    x-api-key User Authentication Header

    Query Parameters

    Parameter Value Default Description
    first_name String First name
    last_name String Last name
    phone_number String Person phone number
    email_address String Person email address
    address String Property street address
    zip_code String Property zip code
    city String Property city
    state* String Property state

    Investment Analysis

    The Investment Performance Object

    The Investment Performance Object:

    {
      "principle_with_interest": 0,
      "traditional": {
          "occupancy": 93.9,
          "cash_flow": 698.3238000000001,
          "roi": 9.53343071672355,
          "cap_rate": 9.53343071672355,
          "rental_income": 1450.755,
          "maintenance_cost": 73.25,
          "traditional_utilities": 170,
          "management_cost": 145.0755,
          "traditional_property_tax": 70,
          "traditional_home_owner_insurance": 91,
          "cleaningFees": 0,
          "traditional_rental_income_tax": 203.10570000000004,
          "total_expenses": 752.4312,
          "traditional_other": 0,
          "hoa_dues": 0,
          "expenses_details": {
              "utilities": {
                  "expenses": {
                      "trash": null,
                      "water": null,
                      "cable": null,
                      "electricity": null,
                      "fuel": null
                  },
                  "sum": 0
              }
          }
      },
      "airbnb": {
          "occupancy": 62.5,
          "cash_flow": 1686.5176527777778,
          "roi": 23.024131778536216,
          "cap_rate": 23.024131778536216,
          "rental_income": 2751.0100694444445,
          "maintenance_cost": 73.25,
          "airbnb_utilities": 170,
          "management_cost": 275.10100694444446,
          "airbnb_property_tax": 70,
          "airbnb_home_owner_insurance": 91,
          "airbnb_rental_income_tax": 385.1414097222223,
          "cleaningFees": 0,
          "total_expenses": 1064.4924166666667,
          "airbnb_other": 0,
          "hoa_dues": 0,
          "expenses_details": {
              "utilities": {
                  "expenses": {
                      "trash": null,
                      "water": null,
                      "cable": null,
                      "electricity": null,
                      "fuel": null
                  },
                  "sum": 0
              }
          }
      },
      "property_tax": 70
    }
    

    Property Data Dictionary

    Attribute Definition Possible Returns
    Traditional Rental The expected monthly rent if the property is rented out traditionally (long-term rental) Double
    Traditional ROI Measures the returns of a property based on the amount of cash put down: (Cash Flow X 12 Months X 100)/Total Cash Invested Double
    Traditional Cap Rate Measures the expected income and potential return of a property; does not take property financing into consideration, gives return as if property is paid off: (Cash Flow X 12 Months)/Property Price Double
    Traditional Vacancy Rate The expected number of days the property won’t be reserved/rented per year.  Double
    AirBnB Rental The expected monthly rent if the property is listed on Airbnb (short-term vacation rental) versus if the property is rented out traditionally (long-term rental) Double
    AirBnB ROI Measures the returns of a property based on the amount of cash put down: (Cash Flow X 12 Months X 100)/Total Cash Invested Double
    AirBnB Cap Rate Measures the expected income and potential return of a property; does not take property financing into consideration, gives return as if property is paid off: (Cash Flow X 12 Months)/Property Price Double
    AirBnB Occupancy The expected number of days the property will be reserved/rented per year. num of days per year, or a percentage Based on "is_days" param, eg: 70 as a percentage, or 150 as days Double
    Down Payment Down payment Integer
    Loan Type Loan type Integer
    Interest Rate Interest rate Double
    Payment Type loan, or cash String
    Default: cash
    Traditional Occupancy num of days per year, or a percentage Based on "is_days" param, eg: 70 as a percentage, or 150 as days Double
    Is Days If it's set to 0, the "traditional_occupancy" is considered as a percentage, if it's 1, it's considered as num of days per year Integer
    Default: 0
    Max Bid Sets the property listing price to its value Integer
    Traditional Maintenance Cost Sets the traditional maintenance cost, e.g: 250 Double
    Airbnb Maintenance Cost Sets the airbnb maintenance cost, e.g: 230 Double
    Traditional Management Cost Sets the traditional management cost, e.g: 130 Double
    Airbnb Management Cost Sets the airbnb management cost, e.g: 120 Double
    Airbnb Property Tax Sets the airbnb property tax value, e.g: 1705 Float
    Traditional Property Tax Sets the traditional property tax value, e.g: 1705 Float
    Airbnb Home Owner Insurance Sets the airbnb home owner insurance cost, e.g: 83 Integer
    Traditional Home Owner Insurance Sets the traditional home owner insurance cost, e.g: 83 Integer
    Airbnb Total Expenses Sets the airbnb total expenses, e.g: 1700 Double
    Traditional Total Expenses Sets the traditional total expenses, e.g: 1900 Double
    Startup Cost First time costs, paid only once Integer
    Default: 8000

    Get Investment Performance

    Sample Request

    OkHttpClient client = new OkHttpClient();
    
    Request request = new Request.Builder()
      .url("https://api.mashvisor.com/v1.1/client/property/664367/investment?state=GA&payment_type=loan&interest_rate=0.5&loan_type=1&down_payment=100")
      .get()
      .addHeader("x-api-key", "YOUR_API_KEY")
      .build();
    
    Response response = client.newCall(request).execute();
    
    require 'uri'
    require 'net/http'
    
    url = URI("https://api.mashvisor.com/v1.1/client/property/664367/investment?state=GA&payment_type=loan&interest_rate=0.5&loan_type=1&down_payment=100")
    
    http = Net::HTTP.new(url.host, url.port)
    
    request = Net::HTTP::Get.new(url)
    request["x-api-key"] = 'YOUR_API_KEY'
    
    response = http.request(request)
    puts response.read_body
    
    <?php
    
    $request = new HttpRequest();
    $request->setUrl('https://api.mashvisor.com/v1.1/client/property/664367/investment');
    $request->setMethod(HTTP_METH_GET);
    $request->setHeaders(array(
      'x-api-key' => 'YOUR_API_KEY'
    ));
    $request->setQueryData(array(
      'state' => 'GA',
      'payment_type' => 'loan',
      'interest_rate' => '0.5',
      'loan_type' => '1',
      'down_payment' => '100'
    ));
    
    try {
      $response = $request->send();
    
      echo json_decode($response->getBody());
    } catch (HttpException $ex) {
      echo $ex;
    }
    
    package main
    
    import (
        "fmt"
        "net/http"
        "io/ioutil"
    )
    
    func main() {
    
        url := "https://api.mashvisor.com/v1.1/client/property/664367/investment?state=GA&payment_type=loan&interest_rate=0.5&loan_type=1&down_payment=100"
    
        req, _ := http.NewRequest("GET", url, nil)
    
      req.Header.Add("x-api-key", "YOUR_API_KEY")
    
        req.Header.Add("cache-control", "no-cache")
        req.Header.Add("postman-token", "6dc17686-8955-e00f-f0bb-d8f60f49a16b")
    
        res, _ := http.DefaultClient.Do(req)
    
        defer res.Body.Close()
        body, _ := ioutil.ReadAll(res.Body)
    
        fmt.Println(res)
        fmt.Println(string(body))
    
    }
    

    The above command returns JSON structured like this:

    {
      "status": "success",
      "content": {
          "principle_with_interest": 0,
          "traditional": {
              "occupancy": 93.9,
              "cash_flow": 698.3238000000001,
              "roi": 9.53343071672355,
              "cap_rate": 9.53343071672355,
              "rental_income": 1450.755,
              "maintenance_cost": 73.25,
              "traditional_utilities": 170,
              "management_cost": 145.0755,
              "traditional_property_tax": 70,
              "traditional_home_owner_insurance": 91,
              "cleaningFees": 0,
              "traditional_rental_income_tax": 203.10570000000004,
              "total_expenses": 752.4312,
              "traditional_other": 0,
              "hoa_dues": 0,
              "expenses_details": {
                  "utilities": {
                      "expenses": {
                          "trash": null,
                          "water": null,
                          "cable": null,
                          "electricity": null,
                          "fuel": null
                      },
                      "sum": 0
                  }
              }
          },
          "airbnb": {
              "occupancy": 62.5,
              "cash_flow": 1686.5176527777778,
              "roi": 23.024131778536216,
              "cap_rate": 23.024131778536216,
              "rental_income": 2751.0100694444445,
              "maintenance_cost": 73.25,
              "airbnb_utilities": 170,
              "management_cost": 275.10100694444446,
              "airbnb_property_tax": 70,
              "airbnb_home_owner_insurance": 91,
              "airbnb_rental_income_tax": 385.1414097222223,
              "cleaningFees": 0,
              "total_expenses": 1064.4924166666667,
              "airbnb_other": 0,
              "hoa_dues": 0,
              "expenses_details": {
                  "utilities": {
                      "expenses": {
                          "trash": null,
                          "water": null,
                          "cable": null,
                          "electricity": null,
                          "fuel": null
                      },
                      "sum": 0
                  }
              }
          },
          "property_tax": 70
      }
    }
    

    This endpoint retrieves the property's investment performance.

    HTTP Request

    GET https://api.mashvisor.com/v1.1/client/property/{id}/investment

    Request Headers

    Parameter Value
    x-api-key User Authentication Header

    Path Parameters

    Parameter Value Default Description
    id Long The property Id from the Mashvisor database.

    Query Parameters

    Parameter Value Default Description
    state* String The state of the property should be provided to the api or api will throw error 404.
    down_payment Integer Down payment
    loan_type Integer Loan type
    interest_rate Double Interest rate
    payment_type String loan, cash
    airbnb_rental Double Monthly Airbnb rental income, ex: 2000
    traditional_rental Double Monthly traditional rental income, ex: 1700
    airbnb_occupancy Double num of days per year, or a percentage Based on "is_days" param, eg: 70 as a percentage, or 150 as days
    traditional_occupancy Double num of days per year, or a percentage Based on "is_days" param, eg: 70 as a percentage, or 150 as days
    is_days Integer 0 If it's set to 0, the "traditional_occupancy" is considered as a percentage, if it's 1, it's considered as num of days per year
    max_bid Integer Sets the property listing price to its value
    traditional_maintenance_cost Double Sets the traditional maintenance cost, e.g: 250
    airbnb_maintenance_cost Double Sets the airbnb maintenance cost, e.g: 230
    traditional_management_cost Double Sets the traditional management cost, e.g: 130
    airbnb_management_cost Double Sets the airbnb management cost, e.g: 120
    airbnb_property_tax Float Sets the airbnb property tax value, e.g: 1705
    traditional_property_tax Float Sets the traditional property tax value, e.g: 1705
    airbnb_home_owner_insurance Integer Sets the airbnb home owner insurance cost, e.g: 83
    traditional_home_owner_insurance Integer Sets the traditional home owner insurance cost, e.g: 83
    airbnb_total_expenses Double Sets the airbnb total expenses, e.g: 1700
    traditional_total_expenses Double Sets the traditional total expenses, e.g: 1900
    valuation_score Boolean false If true, gets the property valuation score
    startup_cost Integer 8000

    Get Investment Breakdown

    Sample Request

    OkHttpClient client = new OkHttpClient();
    
    Request request = new Request.Builder()
      .url("https://api.mashvisor.com/v1.1/client/property/664367/investment/breakdown?state=GA&startup_cost=39000&recurring_cost=200&turnover_cost=200")
      .get()
      .addHeader("x-api-key", "YOUR_API_KEY")
      .build();
    
    Response response = client.newCall(request).execute();
    
    require 'uri'
    require 'net/http'
    
    url = URI("https://api.mashvisor.com/v1.1/client/property/664367/investment/breakdown?state=GA&startup_cost=39000&recurring_cost=200&turnover_cost=200")
    
    http = Net::HTTP.new(url.host, url.port)
    
    request = Net::HTTP::Get.new(url)
    request["x-api-key"] = 'YOUR_API_KEY'
    
    response = http.request(request)
    puts response.read_body
    
    <?php
    
    $request = new HttpRequest();
    $request->setUrl('https://api.mashvisor.com/v1.1/client/property/664367/investment/breakdown');
    $request->setMethod(HTTP_METH_GET);
    $request->setHeaders(array(
      'x-api-key' => 'YOUR_API_KEY'
    ));
    $request->setQueryData(array(
      'state' => 'GA',
      'startup_cost' => '39000',
      'recurring_cost' => '200',
      'turnover_cost' => '200'
    ));
    
    try {
      $response = $request->send();
    
      echo json_decode($response->getBody());
    } catch (HttpException $ex) {
      echo $ex;
    }
    
    package main
    
    import (
        "fmt"
        "net/http"
        "io/ioutil"
    )
    
    func main() {
    
        url := "https://api.mashvisor.com/v1.1/client/property/664367/investment/breakdown?state=GA&startup_cost=39000&recurring_cost=200&turnover_cost=200"
    
        req, _ := http.NewRequest("GET", url, nil)
    
      req.Header.Add("x-api-key", "YOUR_API_KEY")
        res, _ := http.DefaultClient.Do(req)
    
        defer res.Body.Close()
        body, _ := ioutil.ReadAll(res.Body)
    
        fmt.Println(res)
        fmt.Println(string(body))
    
    }
    

    The above command returns JSON structured like this:

    {
        "status": "success",
        "content": {
            "strategy": "Airbnb",
            "breakdown": [
                {
                    "month": 1,
                    "gross_rental_revenue": 4091.0416666666665,
                    "cleaning_fee_collected": 316.84027777777777,
                    "vacancy": 1534.140625,
                    "airbnb_hosting_fee": 122.73124999999999,
                    "adjusted_gross_income": 2751.0100694444445,
                    "net_rents": 2351.0100694444445,
                    "yield_on_investment": 6.028230947293448,
                    "balance": 36648.98993055556
                },
                {
                    "month": 2,
                    "gross_rental_revenue": 4091.0416666666665,
                    "cleaning_fee_collected": 316.84027777777777,
                    "vacancy": 1534.140625,
                    "airbnb_hosting_fee": 122.73124999999999,
                    "adjusted_gross_income": 2751.0100694444445,
                    "net_rents": 2351.0100694444445,
                    "yield_on_investment": 6.028230947293448,
                    "balance": 34297.97986111112
                },
                {
                    "month": 3,
                    "gross_rental_revenue": 4091.0416666666665,
                    "cleaning_fee_collected": 316.84027777777777,
                    "vacancy": 1534.140625,
                    "airbnb_hosting_fee": 122.73124999999999,
                    "adjusted_gross_income": 2751.0100694444445,
                    "net_rents": 2351.0100694444445,
                    "yield_on_investment": 6.028230947293448,
                    "balance": 31946.969791666674
                },
                {
                    "month": 4,
                    "gross_rental_revenue": 4091.0416666666665,
                    "cleaning_fee_collected": 316.84027777777777,
                    "vacancy": 1534.140625,
                    "airbnb_hosting_fee": 122.73124999999999,
                    "adjusted_gross_income": 2751.0100694444445,
                    "net_rents": 2351.0100694444445,
                    "yield_on_investment": 6.028230947293448,
                    "balance": 29595.95972222223
                },
                {
                    "month": 5,
                    "gross_rental_revenue": 4091.0416666666665,
                    "cleaning_fee_collected": 316.84027777777777,
                    "vacancy": 1534.140625,
                    "airbnb_hosting_fee": 122.73124999999999,
                    "adjusted_gross_income": 2751.0100694444445,
                    "net_rents": 2351.0100694444445,
                    "yield_on_investment": 6.028230947293448,
                    "balance": 27244.949652777785
                },
                {
                    "month": 6,
                    "gross_rental_revenue": 4091.0416666666665,
                    "cleaning_fee_collected": 316.84027777777777,
                    "vacancy": 1534.140625,
                    "airbnb_hosting_fee": 122.73124999999999,
                    "adjusted_gross_income": 2751.0100694444445,
                    "net_rents": 2351.0100694444445,
                    "yield_on_investment": 6.028230947293448,
                    "balance": 24893.93958333334
                },
                {
                    "month": 7,
                    "gross_rental_revenue": 4091.0416666666665,
                    "cleaning_fee_collected": 316.84027777777777,
                    "vacancy": 1534.140625,
                    "airbnb_hosting_fee": 122.73124999999999,
                    "adjusted_gross_income": 2751.0100694444445,
                    "net_rents": 2351.0100694444445,
                    "yield_on_investment": 6.028230947293448,
                    "balance": 22542.929513888896
                },
                {
                    "month": 8,
                    "gross_rental_revenue": 4091.0416666666665,
                    "cleaning_fee_collected": 316.84027777777777,
                    "vacancy": 1534.140625,
                    "airbnb_hosting_fee": 122.73124999999999,
                    "adjusted_gross_income": 2751.0100694444445,
                    "net_rents": 2351.0100694444445,
                    "yield_on_investment": 6.028230947293448,
                    "balance": 20191.91944444445
                },
                {
                    "month": 9,
                    "gross_rental_revenue": 4091.0416666666665,
                    "cleaning_fee_collected": 316.84027777777777,
                    "vacancy": 1534.140625,
                    "airbnb_hosting_fee": 122.73124999999999,
                    "adjusted_gross_income": 2751.0100694444445,
                    "net_rents": 2351.0100694444445,
                    "yield_on_investment": 6.028230947293448,
                    "balance": 17840.909375000007
                },
                {
                    "month": 10,
                    "gross_rental_revenue": 4091.0416666666665,
                    "cleaning_fee_collected": 316.84027777777777,
                    "vacancy": 1534.140625,
                    "airbnb_hosting_fee": 122.73124999999999,
                    "adjusted_gross_income": 2751.0100694444445,
                    "net_rents": 2351.0100694444445,
                    "yield_on_investment": 6.028230947293448,
                    "balance": 15489.899305555562
                },
                {
                    "month": 11,
                    "gross_rental_revenue": 4091.0416666666665,
                    "cleaning_fee_collected": 316.84027777777777,
                    "vacancy": 1534.140625,
                    "airbnb_hosting_fee": 122.73124999999999,
                    "adjusted_gross_income": 2751.0100694444445,
                    "net_rents": 2351.0100694444445,
                    "yield_on_investment": 6.028230947293448,
                    "balance": 13138.889236111117
                },
                {
                    "month": 12,
                    "gross_rental_revenue": 4091.0416666666665,
                    "cleaning_fee_collected": 316.84027777777777,
                    "vacancy": 1534.140625,
                    "airbnb_hosting_fee": 122.73124999999999,
                    "adjusted_gross_income": 2751.0100694444445,
                    "net_rents": 2351.0100694444445,
                    "yield_on_investment": 6.028230947293448,
                    "balance": 10787.879166666673
                }
            ],
            "avg_occupancy": 0.625,
            "days_leased_per_month": 19.010416666666668,
            "avg_daily_leased_rate": 134.5,
            "airbnb_tax": 0,
            "cash_flow": 2351.0100694444445,
            "net_operating_income": 2351.0100694444445,
            "rental_yield": 32.09570060675009,
            "annually_breakdown": [
                {
                    "year": 1,
                    "gross_rental_revenue": 49092.5,
                    "cleaning_fee_collected": 3802.083333333333,
                    "vacancy": 18409.6875,
                    "airbnb_hosting_fee": 1472.7749999999999,
                    "adjusted_gross_income": 33012.120833333334,
                    "net_rents": 28212.120833333334,
                    "yield_on_investment": 6.028230947293448,
                    "balance": 10787.879166666666
                },
                {
                    "year": 2,
                    "gross_rental_revenue": 49092.5,
                    "cleaning_fee_collected": 3802.083333333333,
                    "vacancy": 18409.6875,
                    "airbnb_hosting_fee": 1472.7749999999999,
                    "adjusted_gross_income": 33012.120833333334,
                    "net_rents": 28212.120833333334,
                    "yield_on_investment": 6.028230947293448,
                    "balance": -17424.24166666667
                },
                {
                    "year": 3,
                    "gross_rental_revenue": 49092.5,
                    "cleaning_fee_collected": 3802.083333333333,
                    "vacancy": 18409.6875,
                    "airbnb_hosting_fee": 1472.7749999999999,
                    "adjusted_gross_income": 33012.120833333334,
                    "net_rents": 28212.120833333334,
                    "yield_on_investment": 6.028230947293448,
                    "balance": -45636.3625
                },
                {
                    "year": 4,
                    "gross_rental_revenue": 49092.5,
                    "cleaning_fee_collected": 3802.083333333333,
                    "vacancy": 18409.6875,
                    "airbnb_hosting_fee": 1472.7749999999999,
                    "adjusted_gross_income": 33012.120833333334,
                    "net_rents": 28212.120833333334,
                    "yield_on_investment": 6.028230947293448,
                    "balance": -73848.48333333334
                },
                {
                    "year": 5,
                    "gross_rental_revenue": 49092.5,
                    "cleaning_fee_collected": 3802.083333333333,
                    "vacancy": 18409.6875,
                    "airbnb_hosting_fee": 1472.7749999999999,
                    "adjusted_gross_income": 33012.120833333334,
                    "net_rents": 28212.120833333334,
                    "yield_on_investment": 6.028230947293448,
                    "balance": -102060.60416666667
                },
                {
                    "year": 6,
                    "gross_rental_revenue": 49092.5,
                    "cleaning_fee_collected": 3802.083333333333,
                    "vacancy": 18409.6875,
                    "airbnb_hosting_fee": 1472.7749999999999,
                    "adjusted_gross_income": 33012.120833333334,
                    "net_rents": 28212.120833333334,
                    "yield_on_investment": 6.028230947293448,
                    "balance": -130272.725
                },
                {
                    "year": 7,
                    "gross_rental_revenue": 49092.5,
                    "cleaning_fee_collected": 3802.083333333333,
                    "vacancy": 18409.6875,
                    "airbnb_hosting_fee": 1472.7749999999999,
                    "adjusted_gross_income": 33012.120833333334,
                    "net_rents": 28212.120833333334,
                    "yield_on_investment": 6.028230947293448,
                    "balance": -158484.84583333333
                },
                {
                    "year": 8,
                    "gross_rental_revenue": 49092.5,
                    "cleaning_fee_collected": 3802.083333333333,
                    "vacancy": 18409.6875,
                    "airbnb_hosting_fee": 1472.7749999999999,
                    "adjusted_gross_income": 33012.120833333334,
                    "net_rents": 28212.120833333334,
                    "yield_on_investment": 6.028230947293448,
                    "balance": -186696.96666666667
                },
                {
                    "year": 9,
                    "gross_rental_revenue": 49092.5,
                    "cleaning_fee_collected": 3802.083333333333,
                    "vacancy": 18409.6875,
                    "airbnb_hosting_fee": 1472.7749999999999,
                    "adjusted_gross_income": 33012.120833333334,
                    "net_rents": 28212.120833333334,
                    "yield_on_investment": 6.028230947293448,
                    "balance": -214909.08750000002
                },
                {
                    "year": 10,
                    "gross_rental_revenue": 49092.5,
                    "cleaning_fee_collected": 3802.083333333333,
                    "vacancy": 18409.6875,
                    "airbnb_hosting_fee": 1472.7749999999999,
                    "adjusted_gross_income": 33012.120833333334,
                    "net_rents": 28212.120833333334,
                    "yield_on_investment": 6.028230947293448,
                    "balance": -243121.20833333337
                }
            ]
        }
    }
    

    This endpoint retrieves the property's investment breakdown performance for Airbnb or Traditional.

    HTTP Request

    GET https://api.mashvisor.com/v1.1/client/property/{id}/investment/breakdown

    Request Headers

    Parameter Value
    x-api-key User Authentication Header

    Path Parameters

    Parameter Value Default Description
    id Long The property Id from the Mashvisor database.

    Query Parameters

    Parameter Value Default Description
    state* String The state of the property should be provided to the api or api will throw error 404.
    airbnb_rental Double Monthly Airbnb rental income, ex: 2000
    traditional_rental Double Monthly traditional rental income, ex: 1700
    airbnb_occupancy Double num of days per year, or a percentage Based on "is_days" param, eg: 70 as a percentage, or 150 as days
    traditional_occupancy Double num of days per year, or a percentage Based on "is_days" param, eg: 70 as a percentage, or 150 as days
    is_days Integer 0 If it's set to 0, the "traditional_occupancy" is considered as a percentage, if it's 1, it's considered as num of days per year
    max_bid Integer Sets the property listing price to its value
    startup_cost Double 8000 Startup cost for the investment, e.x: 8000
    source String Airbnb Defines the monthly calculations should be calculated for "Airbnb" or "Traditional"
    recurring_cost Double Recurring cost of the investment strategy, ex: 1435
    turnover_cost Double Turnover cost

    Get Property Marker

    Sample Request

    OkHttpClient client = new OkHttpClient();
    
    Request request = new Request.Builder()
      .url("https://api.mashvisor.com/v1.1/client/property/marker?state=CA&pid=2207289&type=Investment")
      .get()
      .addHeader("x-api-key", "YOUR_API_KEY")
      .build();
    
    Response response = client.newCall(request).execute();
    
    require 'uri'
    require 'net/http'
    
    url = URI("https://api.mashvisor.com/v1.1/client/property/marker?state=CA&pid=2207289&type=Investment")
    
    http = Net::HTTP.new(url.host, url.port)
    
    request = Net::HTTP::Get.new(url)
    request["x-api-key"] = 'YOUR_API_KEY'
    
    response = http.request(request)
    puts response.read_body
    
    <?php
    
    $request = new HttpRequest();
    $request->setUrl('https://api.mashvisor.com/v1.1/client/property/marker');
    $request->setMethod(HTTP_METH_GET);
    
    $request->setQueryData(array(
      'state' => 'CA',
      'pid' => '2207289',
      'type' => 'Investment'
    ));
    
    $request->setHeaders(array(
      'x-api-key' => 'YOUR_API_KEY'
    ));
    
    try {
      $response = $request->send();
    
      echo json_decode($response->getBody());
    } catch (HttpException $ex) {
      echo $ex;
    }
    
    package main
    
    import (
        "fmt"
        "net/http"
        "io/ioutil"
    )
    
    func main() {
    
        url := "https://api.mashvisor.com/v1.1/client/property/marker?state=CA&pid=2207289&type=Investment"
    
      req, _ := http.NewRequest("GET", url, nil)
    
      req.Header.Add("x-api-key", "YOUR_API_KEY")
    
        res, _ := http.DefaultClient.Do(req)
    
        defer res.Body.Close()
        body, _ := ioutil.ReadAll(res.Body)
    
        fmt.Println(res)
        fmt.Println(string(body))
    
    }
    

    The above command returns JSON structured like this:

    {
        "status": "success",
        "content": {
            "id": 2207289,
            "neighborhood": {
                "id": 417524,
                "name": "Buena Vista Park"
            },
            "address": "110 Alpine Terrace",
            "city": "San Francisco",
            "state": "CA",
            "listPrice": 1695000,
            "ROI": {
                "airbnb_ROI": 0.620426,
                "traditional_ROI": -0.208019
            },
            "Cap": {
                "airbnb_Cap": 0.620426,
                "traditional_Cap": -0.208019
            }
        }
    }
    

    This endpoint retrieves snapshot data about a specific property.

    HTTP Request

    GET https://api.mashvisor.com/v1.1/client/property/marker

    Request Headers

    Parameter Value
    x-api-key User Authentication Header

    Query Parameters

    Parameter Value Default Description
    pid Long The property Id from the Mashvisor database.
    state* String The state of the property should be provided to the api or API will throw error 404.
    type String Investment, Airbnb, or Traditional
    payment String CASH CASH, or LOAN
    downPayment Integer The downpayment for mortgage calculations, e.g: 40000
    loanType Integer The loan type, e.g: 30
    interestRate Double The interest rate for mortgage, e.g: 3.51
    loanInterestOnlyYears Integer
    loanArmType Double 3/1 3/1, 5/1, 7/1, 10/1
    loanArmRate Double .25
    startupCost Double 8000
    loanTerm Double

    Get Airbnb Comparable Listings

    Sample Request

    OkHttpClient client = new OkHttpClient();
    
    Request request = new Request.Builder()
      .url("https://api.mashvisor.com/v1.1/client/neighborhood/269590/airbnb/details?state=IL")
      .get()
      .addHeader("x-api-key", "YOUR_API_KEY")
      .build();
    
    Response response = client.newCall(request).execute();
    
    require 'uri'
    require 'net/http'
    
    url = URI("https://api.mashvisor.com/v1.1/client/neighborhood/269590/airbnb/details?state=IL")
    
    http = Net::HTTP.new(url.host, url.port)
    
    request = Net::HTTP::Get.new(url)
    request["x-api-key"] = 'YOUR_API_KEY'
    
    response = http.request(request)
    puts response.read_body
    
    <?php
    
    $request = new HttpRequest();
    $request->setUrl('https://api.mashvisor.com/v1.1/client/neighborhood/269590/airbnb/details');
    $request->setMethod(HTTP_METH_GET);
    $request->setHeaders(array(
      'x-api-key' => 'YOUR_API_KEY'
    ));
    $request->setQueryData(array(
      'state' => 'IL'
    ));
    
    try {
      $response = $request->send();
    
      echo json_decode($response->getBody());
    } catch (HttpException $ex) {
      echo $ex;
    }
    
    package main
    
    import (
        "fmt"
        "net/http"
        "io/ioutil"
    )
    
    func main() {
    
        url := "https://api.mashvisor.com/v1.1/client/neighborhood/269590/airbnb/details?state=IL"
    
      req, _ := http.NewRequest("GET", url, nil)
    
      req.Header.Add("x-api-key", "YOUR_API_KEY")
    
        res, _ := http.DefaultClient.Do(req)
    
        defer res.Body.Close()
        body, _ := ioutil.ReadAll(res.Body)
    
        fmt.Println(res)
        fmt.Println(string(body))
    
    }
    

    The above command returns JSON structured like this:

    {
        "status": "success",
        "content": {
            "properties": [
                {
                    "id": 21131720,
                    "propertyId": "20992111",
                    "source": "Airbnb",
                    "status": "ACTIVE",
                    "nightPrice": 235,
                    "weeklyPrice": 0,
                    "monthlyPrice": 0,
                    "numOfBaths": 2,
                    "numOfRooms": 4,
                    "occupancy": 56,
                    "rentalIncome": 3948,
                    "airbnbNeighborhoodId": 397651,
                    "name": "Perfect getaway in the Hudson Valley",
                    "address": "Red Hook, NY, United States",
                    "airbnbNeighborhood": null,
                    "airbnbCity": "Red Hook",
                    "state": "NY",
                    "capacityOfPeople": 6,
                    "zip": "12571",
                    "propertyType": "House",
                    "roomType": "Entire home/apt",
                    "roomTypeCategory": "entire_home",
                    "amenities": null,
                    "reviewsCount": 16,
                    "startRating": 5,
                    "reviews": null,
                    "createdAt": "2019-08-19T16:00:19.000Z",
                    "updatedAt": "2019-08-19T16:00:19.000Z",
                    "numOfBeds": 4,
                    "lat": 41.9516716003418,
                    "lon": -73.77474975585938,
                    "image": "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png",
                    "url": null,
                    "rental_income": 3948.0000000000005,
                    "neighborhood": {
                        "id": 397651,
                        "name": null
                    },
                    "nightRate": 235,
                    "property_id": "20992111",
                    "airbnbZIP": "12571",
                    "distance": 6.204173070158869,
                    "similarity": 0.5
                },
                {
                    "id": 21131669,
                    "propertyId": "15235032",
                    "source": "Airbnb",
                    "status": "ACTIVE",
                    "nightPrice": 268,
                    "weeklyPrice": 0,
                    "monthlyPrice": 0,
                    "numOfBaths": 1.5,
                    "numOfRooms": 2,
                    "occupancy": 84,
                    "rentalIncome": 6754,
                    "airbnbNeighborhoodId": 397651,
                    "name": "Modern Upstate NY cabin + hot pool in the woods.",
                    "address": "Red Hook, NY, United States",
                    "airbnbNeighborhood": null,
                    "airbnbCity": "Red Hook",
                    "state": "NY",
                    "capacityOfPeople": 6,
                    "zip": "12571",
                    "propertyType": "Cabin",
                    "roomType": "Entire home/apt",
                    "roomTypeCategory": "entire_home",
                    "amenities": null,
                    "reviewsCount": 90,
                    "startRating": 5,
                    "reviews": null,
                    "createdAt": "2019-08-19T15:59:49.000Z",
                    "updatedAt": "2019-08-19T15:59:49.000Z",
                    "numOfBeds": 3,
                    "lat": 42.00767135620117,
                    "lon": -73.7533187866211,
                    "image": "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png",
                    "url": null,
                    "rental_income": 6753.599999999999,
                    "neighborhood": {
                        "id": 397651,
                        "name": null
                    },
                    "nightRate": 268,
                    "property_id": "15235032",
                    "airbnbZIP": "12571",
                    "distance": 4.958961405286708,
                    "similarity": 0.48
                },
                {
                    "id": 21131735,
                    "propertyId": "5602615",
                    "source": "Airbnb",
                    "status": "ACTIVE",
                    "nightPrice": 965,
                    "weeklyPrice": 4000,
                    "monthlyPrice": 10000,
                    "numOfBaths": 2.5,
                    "numOfRooms": 4,
                    "occupancy": 21,
                    "rentalIncome": 6080,
                    "airbnbNeighborhoodId": 397651,
                    "name": "Lovely Hudson Valley Country Home",
                    "address": "Red Hook, NY, United States",
                    "airbnbNeighborhood": null,
                    "airbnbCity": "Red Hook",
                    "state": "NY",
                    "capacityOfPeople": 8,
                    "zip": "12571",
                    "propertyType": "House",
                    "roomType": "Entire home/apt",
                    "roomTypeCategory": "entire_home",
                    "amenities": null,
                    "reviewsCount": 23,
                    "startRating": 5,
                    "reviews": null,
                    "createdAt": "2019-08-19T16:00:26.000Z",
                    "updatedAt": "2019-08-19T16:00:26.000Z",
                    "numOfBeds": 4,
                    "lat": 42.0384407043457,
                    "lon": -73.8933334350586,
                    "image": "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png",
                    "url": null,
                    "rental_income": 6079.5,
                    "neighborhood": {
                        "id": 397651,
                        "name": null
                    },
                    "nightRate": 965,
                    "property_id": "5602615",
                    "airbnbZIP": "12571",
                    "distance": 2.569544555210685,
                    "similarity": 0.53
                }
            ],
            "num_of_properties": 23,
            "avg_occupancy": 45.913,
            "avg_price": 296.1304,
            "num_page_properties": 3,
            "page": "3"
        }
    }
    

    This endpoint retrieves the Airbnb neighborhood's listing data set in Mashvisor database with similiraty and distnace regarding the target MLS property.

    HTTP Request

    GET https://api.mashvisor.com/v1.1/client/neighborhood/{id}/airbnb/details

    Request Headers

    Parameter Value
    x-api-key User Authentication Header

    Path Parameters

    Parameter Value Default Description
    id Long The neighborhood Id from the Mashvisor database.

    Query Parameters

    Parameter Value Default Description
    state* String The state of the neighborhood should be provided to the api or api will throw error 404.
    page Integer 1 Page number
    items Integer 3 items number
    bedrooms Integer bedrooms number
    pid Long Property to fetch comparble listings for.
    sort_by String Sorting type.
    Possible input:
    * name
    * similarity
    * distance
    * address
    * occupancy
    * night_price
    * rental_income
    * num_of_baths
    * num_of_rooms
    * reviews_count
    order String desc Order type: desc, or asc
    format String json json, or xml

    Get Traditional Comparable Listings

    Sample Request

    OkHttpClient client = new OkHttpClient();
    
    Request request = new Request.Builder()
      .url("https://api.mashvisor.com/v1.1/client/neighborhood/397651/traditional/listing?format=json&items=9&order=desc&page=1&pid=325215&sort_by=address&state=ny")
      .get()
      .addHeader("x-api-key", "YOUR_API_KEY")
      .build();
    
    Response response = client.newCall(request).execute();
    
    require 'uri'
    require 'net/http'
    
    url = URI("https://api.mashvisor.com/v1.1/client/neighborhood/397651/traditional/listing?format=json&items=9&order=desc&page=1&pid=325215&sort_by=address&state=NY")
    
    http = Net::HTTP.new(url.host, url.port)
    
    request = Net::HTTP::Get.new(url)
    request["x-api-key"] = 'YOUR_API_KEY'
    
    response = http.request(request)
    puts response.read_body
    
    <?php
    
    $request = new HttpRequest();
    $request->setUrl('https://api.mashvisor.com/v1.1/client/neighborhood/397651/traditional/listing');
    $request->setMethod(HTTP_METH_GET);
    $request->setHeaders(array(
      'x-api-key' => 'YOUR_API_KEY'
    ));
    
    $request->setQueryData(array(
      'format' => 'json',
      'order' => 'desc',
      'pid' => '325215',
      'state' => 'ny',
      'items' => '4',
      'page' => '8',
      'sort_by' => 'address'
    ));
    
    try {
      $response = $request->send();
    
      echo json_decode($response->getBody());
    } catch (HttpException $ex) {
      echo $ex;
    }
    
    package main
    
    import (
        "fmt"
        "net/http"
        "io/ioutil"
    )
    
    func main() {
    
        url := "https://api.mashvisor.com/v1.1/client/neighborhood/397651/traditional/listing?format=json&items=9&order=desc&page=1&pid=325215&sort_by=address&state=ny"
    
      req, _ := http.NewRequest("GET", url, nil)
    
      req.Header.Add("x-api-key", "YOUR_API_KEY")
    
        res, _ := http.DefaultClient.Do(req)
    
        defer res.Body.Close()
        body, _ := ioutil.ReadAll(res.Body)
    
        fmt.Println(res)
        fmt.Println(string(body))
    
    }
    

    The above command returns JSON structured like this:

    {
        "status": "success",
        "content": {
            "results": [
                {
                    "id": 6699070,
                    "title": "2-4 Family, Other - Red Hook, NY",
                    "lon": -73.84407806396484,
                    "lat": 42.02531051635742,
                    "state": "NY",
                    "city": "Red Hook",
                    "county": "DUTCHESS COUNTY",
                    "neighborhood": "Red Hook",
                    "description": "It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout.",
                    "price": 2300,
                    "baths": 2,
                    "beds": 4,
                    "num_of_units": null,
                    "sqft": 2600,
                    "lot_size": 28314,
                    "days_on_market": 26,
                    "year_built": 1810,
                    "tax": null,
                    "tax_history": null,
                    "videos": null,
                    "virtual_tours": null,
                    "parking_spots": null,
                    "parking_type": "Off Street",
                    "walkscore": null,
                    "mls_id": "382940",
                    "image": "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png",
                    "extra_images": "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png",
                    "zipcode": "12571",
                    "address": "14 SPRING LAKE RD",
                    "type": "Other",
                    "property_type": "Rental",
                    "property_sub_type": "Other",
                    "status": "rented",
                    "broker_name": "GARY DiMAURO REAL ESTATE, INC.",
                    "broker_number": "845 7575000",
                    "broker_url": "http://www.garydimauro.com",
                    "source": "GARY DiMAURO REAL ESTATE, INC.",
                    "mls_name": "Mid-Hudson Multiple Listing Service",
                    "architecture_style": "Other",
                    "has_pool": null,
                    "is_water_front": null,
                    "heating_system": "Forced Air",
                    "cooling_system": "None",
                    "view_type": null,
                    "schools": "[{\"category\":\"Elementary\",\"name\":\"Mill Road - Primary Grades\",\"district\":\"Red Hook Central\"},{\"category\":\"High\",\"name\":\"Red Hook Senior High School\",\"district\":\"Red Hook Central\"},{\"category\":\"JuniorHigh\",\"name\":null,\"district\":\"Red Hook Central\"},{\"category\":\"Middle\",\"name\":\"Linden Avenue Middle School\",\"district\":\"Red Hook Central\"}]",
                    "parcel_number": "13488900637300012828230000",
                    "neighborhood_id": 397651,
                    "listing_date": "2019-06-28T00:00:00.000Z",
                    "modification_timestamp": "2019-07-13T00:18:44.000Z",
                    "created_at": "2019-06-30T01:04:43.000Z",
                    "updated_at": "2019-07-24T04:27:49.000Z",
                    "distance": 0.2280876552393839,
                    "similarity": 0.45
                },
                {
                    "id": 6584461,
                    "title": "Single Family Detached, Ranch - V. Red Hook, NY",
                    "lon": -73.87642669677734,
                    "lat": 42.00033187866211,
                    "state": "NY",
                    "city": "Red Hook",
                    "county": null,
                    "neighborhood": "Red Hook",
                    "description": "It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout.",
                    "price": 2300,
                    "baths": 2,
                    "beds": 4,
                    "num_of_units": null,
                    "sqft": 1435,
                    "lot_size": null,
                    "days_on_market": null,
                    "year_built": 1950,
                    "tax": null,
                    "tax_history": null,
                    "videos": null,
                    "virtual_tours": null,
                    "parking_spots": null,
                    "parking_type": null,
                    "walkscore": null,
                    "mls_id": "376976",
                    "image": "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png",
                    "extra_images": null,
                    "zipcode": "12571",
                    "address": "14 PARK AVENUE",
                    "type": "single_home",
                    "property_type": null,
                    "property_sub_type": null,
                    "status": "rented",
                    "broker_name": "Berkshire Hathaway HomeServices Hudson Valley Properties",
                    "broker_number": "(845) 905-8747",
                    "broker_url": null,
                    "source": "Berkshire Hathaway HomeServices Hudson Valley Properties",
                    "mls_name": null,
                    "original_source": null,
                    "architecture_style": null,
                    "has_pool": null,
                    "is_water_front": null,
                    "heating_system": null,
                    "cooling_system": null,
                    "view_type": null,
                    "schools": null,
                    "parcel_number": null,
                    "neighborhood_id": 397651,
                    "listing_date": null,
                    "modification_timestamp": null,
                    "created_at": "2018-11-30T01:21:38.000Z",
                    "updated_at": "2019-03-08T01:34:44.000Z",
                    "distance": 2.1697949933012572,
                    "similarity": 0.6
                },
                {
                    "id": 6756141,
                    "title": "2-4 Family, Other - Red Hook, NY",
                    "lon": -73.84525299072266,
                    "lat": 42.03054809570313,
                    "state": "NY",
                    "city": "Red Hook",
                    "county": "DUTCHESS COUNTY",
                    "neighborhood": "Red Hook",
                    "description": "It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout.",
                    "price": 1450,
                    "baths": 1,
                    "beds": 2,
                    "num_of_units": null,
                    "sqft": 1100,
                    "lot_size": 16988,
                    "days_on_market": 6,
                    "year_built": 1860,
                    "tax": null,
                    "tax_history": null,
                    "videos": null,
                    "virtual_tours": null,
                    "parking_spots": null,
                    "parking_type": "Off Street",
                    "walkscore": null,
                    "mls_id": "384191",
                    "image": "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png",
                    "extra_images": "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png,https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png",
                    "zipcode": "12571",
                    "address": "123 OLD POST ROAD NORTH #B",
                    "type": "Other",
                    "property_type": "Rental",
                    "property_sub_type": "Other",
                    "status": "Active",
                    "broker_name": "PAULA REDMOND LIC. R.E. BKR",
                    "broker_number": "518 3983030",
                    "broker_url": "http://www.paularedmond.com",
                    "source": "PAULA REDMOND LIC. R.E. BKR",
                    "mls_name": "Mid-Hudson Multiple Listing Service",
                    "architecture_style": "Other",
                    "has_pool": null,
                    "is_water_front": null,
                    "heating_system": "Hot Water (Oil)",
                    "cooling_system": "None",
                    "view_type": null,
                    "schools": "[{\"category\":\"Elementary\",\"name\":\"Mill Road - Primary Grades\",\"district\":\"Red Hook Central\"},{\"category\":\"High\",\"name\":\"Red Hook Senior High School\",\"district\":\"Red Hook Central\"},{\"category\":\"JuniorHigh\",\"name\":null,\"district\":\"Red Hook Central\"},{\"category\":\"Middle\",\"name\":\"Linden Avenue Middle School\",\"district\":\"Red Hook Central\"}]",
                    "parcel_number": "13488900637400002520120000",
                    "neighborhood_id": 397651,
                    "listing_date": "2019-09-05T00:00:00.000Z",
                    "modification_timestamp": "2019-09-06T03:19:16.000Z",
                    "created_at": "2019-09-07T04:20:03.000Z",
                    "updated_at": "2019-09-11T04:08:44.000Z",
                    "distance": 0.5151012639728284,
                    "similarity": 0.38
                },
                {
                    "id": 3035205,
                    "title": "2-4 Family, Other - Red Hook, NY",
                    "lon": -73.84519958496094,
                    "lat": 42.03060150146484,
                    "state": "NY",
                    "city": "Red Hook",
                    "county": null,
                    "neighborhood": "Red Hook",
                    "description": "It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout.",
                    "price": 1400,
                    "baths": 2,
                    "beds": 2,
                    "num_of_units": null,
                    "sqft": 950,
                    "lot_size": null,
                    "days_on_market": null,
                    "year_built": 1860,
                    "tax": null,
                    "tax_history": null,
                    "videos": null,
                    "virtual_tours": null,
                    "parking_spots": null,
                    "parking_type": null,
                    "walkscore": null,
                    "mls_id": "379210",
                    "image": "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png",
                    "extra_images": null,
                    "zipcode": "12571",
                    "address": "123 N OLD POST ROAD #A",
                    "type": "Other",
                    "property_type": null,
                    "property_sub_type": null,
                    "status": "rented",
                    "broker_name": "PAULA REDMOND LIC. R.E. BKR",
                    "broker_number": "518 3983030",
                    "broker_url": null,
                    "source": "PAULA REDMOND LIC. R.E. BKR",
                    "mls_name": null,
                    "original_source": null,
                    "architecture_style": null,
                    "has_pool": null,
                    "is_water_front": null,
                    "heating_system": null,
                    "cooling_system": null,
                    "view_type": null,
                    "schools": null,
                    "parcel_number": null,
                    "neighborhood_id": 397651,
                    "listing_date": null,
                    "modification_timestamp": null,
                    "created_at": "2017-11-03T01:13:44.000Z",
                    "updated_at": "2019-04-09T01:09:43.000Z",
                    "distance": 0.5193335664792641,
                    "similarity": 0.4
                }
            ],
            "total_results": 35,
            "total_pages": 9,
            "current_page": "8"
        }
    }
    

    This endpoint retrieves the traditional neighborhood's listing data set in Mashvisor database with similiraty and distnace regarding the target MLS property.

    HTTP Request

    GET https://api.mashvisor.com/v1.1/client/neighborhood/{id}/traditional/listing

    Request Headers

    Parameter Value
    x-api-key User Authentication Header

    Path Parameters

    Parameter Value Default Description
    id Long The neighborhood Id from the Mashvisor database.

    Query Parameters

    Parameter Value Default Description
    state* String The state of the neighborhood should be provided to the api or api will throw error 404.
    page Integer 1 Page number
    items Integer 3 items number
    category Integer bedrooms number
    min_price Integer min_price of rental value
    max_price Integer max_price of rental value
    pid Long Property to fetch comparble listings for.
    sort_by String Sorting type.
    Possible input:
    * address
    * similarity
    * distance
    * beds
    * baths
    * price
    order String desc Order type: desc, or asc
    format String json json, or xml

    Rental Rates

    The Rental Rates Object

    The Rental Rates Object:

    {
        "retnal_rates": {
            "studio_value": 2100,
            "one_room_value": 2500,
            "two_room_value": 3890,
            "three_room_value": 4997.5,
            "four_room_value": 7995
        },
        "sample_count": 268,
        "detailed": [
            {
                "state": "CA",
                "city": null,
                "neighborhood": "117954",
                "zipcode": null,
                "beds": "0",
                "count": 7,
                "min": 2000,
                "max": 3000,
                "avg": 2221.4285714285716,
                "median": 2100,
                "adjusted_rental_income": 2022.3
            },
            {
                "state": "CA",
                "city": null,
                "neighborhood": "117954",
                "zipcode": null,
                "beds": "1",
                "count": 31,
                "min": 995,
                "max": 4500,
                "avg": 2641.6129032258063,
                "median": 2500,
                "adjusted_rental_income": 2407.5
            },
            {
                "state": "CA",
                "city": null,
                "neighborhood": "117954",
                "zipcode": null,
                "beds": "2",
                "count": 136,
                "min": 1300,
                "max": 7500,
                "avg": 3979.8970588235293,
                "median": 3890,
                "adjusted_rental_income": 3746.07
            },
            {
                "state": "CA",
                "city": null,
                "neighborhood": "117954",
                "zipcode": null,
                "beds": "3",
                "count": 78,
                "min": 645,
                "max": 12000,
                "avg": 5288.961538461538,
                "median": 4997.5,
                "adjusted_rental_income": 4812.5925
            },
            {
                "state": "CA",
                "city": null,
                "neighborhood": "117954",
                "zipcode": null,
                "beds": "4",
                "count": 16,
                "min": 4700,
                "max": 27000,
                "avg": 11459.6875,
                "median": 7995,
                "adjusted_rental_income": 7699.1849999999995
            }
        ]
    }
    

    Property Data Dictionary

    Attribute Definition Possible Returns
    Studio Value The expected monthly rent if a studio property is rented out Double
    One Rroom Value The expected monthly rent if a one bedroom property is rented out Double
    Two Room Value The expected monthly rent if a two bedrooms property is rented out Double
    Three Room Value The expected monthly rent if a three bedrooms property is rented out Double
    Four Room Value The expected monthly rent if a four bedrooms property is rented out Double

    Mashvisor API lets you find out an estiamted rental rate for a specific location eaither for long term rentals (traditional way), or for short term rentals (Airbnb, VRBO, or Homeaway). These estiamtes categorized by the number of bedrooms of a property you're trying to get the estimates for. The estimates are based on 12 months historical performance for the target area, and they are calculated over several similar listings was rented in the area, or currently avaialble for renting.

    Get Rental Rates

    Sample Request

    OkHttpClient client = new OkHttpClient();
    
    Request request = new Request.Builder()
      .url("https://api.mashvisor.com/v1.1/client/rental-rates?city=Chicago&state=IL&neighborhood=138261&source=airbnb")
      .get()
      .addHeader("x-api-key", "YOUR_API_KEY")
      .build();
    
    Response response = client.newCall(request).execute();
    
    require 'uri'
    require 'net/http'
    
    url = URI("https://api.mashvisor.com/v1.1/client/rental-rates?city=Chicago&state=IL&neighborhood=138261&source=airbnb")
    
    http = Net::HTTP.new(url.host, url.port)
    
    request = Net::HTTP::Get.new(url)
    request["x-api-key"] = 'YOUR_API_KEY'
    
    response = http.request(request)
    puts response.read_body
    
    <?php
    
    $request = new HttpRequest();
    $request->setUrl('https://api.mashvisor.com/v1.1/client/neighborhood/rental-rates');
    $request->setMethod(HTTP_METH_GET);
    $request->setHeaders(array(
      'x-api-key' => 'YOUR_API_KEY'
    ));
    
    $request->setQueryData(array(
      'city' => 'Chicago',
      'state' => 'IL',
      'neighborhood' => '138261',
      'source' => 'airbnb'
    ));
    
    try {
      $response = $request->send();
    
      echo json_decode($response->getBody());
    } catch (HttpException $ex) {
      echo $ex;
    }
    
    package main
    
    import (
        "fmt"
        "net/http"
        "io/ioutil"
    )
    
    func main() {
    
        url := "https://api.mashvisor.com/v1.1/client/rental-rates?city=Chicago&state=IL&neighborhood=138261&source=airbnb"
    
      req, _ := http.NewRequest("GET", url, nil)
    
      req.Header.Add("x-api-key", "YOUR_API_KEY")
    
        res, _ := http.DefaultClient.Do(req)
    
        defer res.Body.Close()
        body, _ := ioutil.ReadAll(res.Body)
    
        fmt.Println(res)
        fmt.Println(string(body))
    
    }
    

    The above command returns JSON structured like this:

    {
        "status": "success",
        "content": {
            "retnal_rates": {
                "studio_value": 2100,
                "one_room_value": 2500,
                "two_room_value": 3890,
                "three_room_value": 4997.5,
                "four_room_value": 7995
            },
            "sample_count": 268,
            "detailed": [
                {
                    "state": "CA",
                    "city": null,
                    "neighborhood": "117954",
                    "zipcode": null,
                    "beds": "0",
                    "count": 7,
                    "min": 2000,
                    "max": 3000,
                    "avg": 2221.4285714285716,
                    "median": 2100,
                    "adjusted_rental_income": 2022.3
                },
                {
                    "state": "CA",
                    "city": null,
                    "neighborhood": "117954",
                    "zipcode": null,
                    "beds": "1",
                    "count": 31,
                    "min": 995,
                    "max": 4500,
                    "avg": 2641.6129032258063,
                    "median": 2500,
                    "adjusted_rental_income": 2407.5
                },
                {
                    "state": "CA",
                    "city": null,
                    "neighborhood": "117954",
                    "zipcode": null,
                    "beds": "2",
                    "count": 136,
                    "min": 1300,
                    "max": 7500,
                    "avg": 3979.8970588235293,
                    "median": 3890,
                    "adjusted_rental_income": 3746.07
                },
                {
                    "state": "CA",
                    "city": null,
                    "neighborhood": "117954",
                    "zipcode": null,
                    "beds": "3",
                    "count": 78,
                    "min": 645,
                    "max": 12000,
                    "avg": 5288.961538461538,
                    "median": 4997.5,
                    "adjusted_rental_income": 4812.5925
                },
                {
                    "state": "CA",
                    "city": null,
                    "neighborhood": "117954",
                    "zipcode": null,
                    "beds": "4",
                    "count": 16,
                    "min": 4700,
                    "max": 27000,
                    "avg": 11459.6875,
                    "median": 7995,
                    "adjusted_rental_income": 7699.1849999999995
                }
            ]
        }
    }
    

    This endpoint retrieves the traditional neighborhood's listing data set in Mashvisor database with similiraty and distnace regarding the target MLS property.

    HTTP Request

    GET https://api.mashvisor.com/v1.1/client/rental-rates

    Request Headers

    Parameter Value
    x-api-key User Authentication Header

    Query Parameters

    Parameter Value Default Description
    state* String The state of the neighborhood should be provided to the api or api will throw error 404.
    city String A specific city you're looking for.
    neighborhood Long Neighborhood id you're targeting
    zip_code Integer Any postal zip code.
    source String Targeting service to fetch estiamtes for.
    Possible inputs:
    * airbnb
    * traditional

    Predictive Scores

    Investment Likelihood

    Sample Request

    OkHttpClient client = new OkHttpClient();
    
    MediaType mediaType = MediaType.parse("application/json");
    RequestBody body = RequestBody.create(mediaType, '{"airbnb_ROI":9.33728,"airbnb_rental":3235.36,"traditional_ROI":1.92281,"traditional_rental":1270,"baths":10,"beds":10,"days_on_market":152,"home_type":"Multi Family","list_price":599000,"sqft":2000}');
    Request request = new Request.Builder()
      .url("https://api.mashvisor.com/v1.1/client/ml/investment-likelihood")
      .post(body)
      .addHeader("Content-Type", "application/json")
      .build();
    
    Response response = client.newCall(request).execute();
    
    require 'uri'
    require 'net/http'
    
    url = URI("https://api.mashvisor.com/v1.1/client/ml/investment-likelihood")
    
    http = Net::HTTP.new(url.host, url.port)
    
    request = Net::HTTP::Post.new(url)
    request["x-api-key"] = 'YOUR_API_KEY'
    request["Postman-Token"] = 'd84dcf05-a554-48d1-a7c4-a675b624dfb3'
    request.body = '{"airbnb_ROI":9.33728,"airbnb_rental":3235.36,"traditional_ROI":1.92281,"traditional_rental":1270,"baths":10,"beds":10,"days_on_market":152,"home_type":"Multi Family","list_price":599000,"sqft":2000}'
    
    response = http.request(request)
    puts response.read_body
    
    <?php
    
    $request = new HttpRequest();
    $request->setUrl('https://api.mashvisor.com/v1.1/client/ml/investment-likelihood');
    $request->setMethod(HTTP_METH_POST);
    
    $request->setHeaders(array(
      'Content-Type' => 'application/json'
    ));
    
    $request->setBody('{"airbnb_ROI":9.33728,"airbnb_rental":3235.36,"traditional_ROI":1.92281,"traditional_rental":1270,"baths":10,"beds":10,"days_on_market":152,"home_type":"Multi Family","list_price":599000,"sqft":2000}');
    
    try {
      $response = $request->send();
    
      echo json_decode($response->getBody());
    } catch (HttpException $ex) {
      echo $ex;
    }
    
    package main
    
    import (
        "fmt"
        "strings"
        "net/http"
        "io/ioutil"
    )
    
    func main() {
    
        url := "https://api.mashvisor.com/v1.1/client/ml/investment-likelihood"
    
        payload := strings.NewReader('{"airbnb_ROI":9.33728,"airbnb_rental":3235.36,"traditional_ROI":1.92281,"traditional_rental":1270,"baths":10,"beds":10,"days_on_market":152,"home_type":"Multi Family","list_price":599000,"sqft":2000}')
    
        req, _ := http.NewRequest("POST", url, payload)
    
        req.Header.Add("Content-Type", "application/json")
    
        res, _ := http.DefaultClient.Do(req)
    
        defer res.Body.Close()
        body, _ := ioutil.ReadAll(res.Body)
    
        fmt.Println(res)
        fmt.Println(string(body))
    
    }
    

    The above command returns JSON structured like this:

    {
      "status": "success",
      "content": {
        "contact": {
          "prediction": {
            "Value": 1
          },
          "prediction_likelihood": {
            "Value": 67.31213123
          }
        }
      },
      "message": "prediction_likelihood succeeded"
    }
    

    In the last year we were trying to go over the traditional technique for searching an area per area for the best investment home to buy or rent over like other listings site, so went over this with our new product the “Property Finder”, the model built over a machine learning model Investment Likelihood telling the score of each MLS listing if it’s suitable for investment or not, and the customer could easily search within a short listed of listings that are suitable for investment in multiple areas (up to 5 different areas concurrently).

    The model had 3 developments iterations yet, and we achieved more than 86% accuracy with it in our last iteration with our data scientist and real estate experience with help of multiple real estate brokers and agents who were using the product for the past recent months. The model designed to get use of all sold listings for investment use them in next training cycle to guarantee model evolving upon time automatically as well as our data scientists keeps working on the best machine learning algorithm to introduce a very high quality investment listings for our customers.

    The model has shown a very good impressions by our customers and recently it’s our most performing product with a thank for our developed machine learning algorithms. Currently our data team is working on having a new feature over the Property Finder and this investment likelihood model for predicting the most likely investment listings characters that the lead would be interested to buy through defining and implementing new machine learning models having in respect the advantage of the investment likelihood model itself as a basement, with mode dependency over the persons financials situations, demographics, and lifestyle intestates.

    HTTP Request

    POST https://api.mashvisor.com/v1.1/client/ml/investment-likelihood

    HTTP Headers

    Header Value Default
    Content-Type application/json
    x-api-key User Authentication Header

    Body Parameters

    Parameter Value Required Description
    airbnb_ROI Double YES Airbnb cash on cash (rent over investment)
    airbnb_rental Double YES Airbnb monthly rental income
    traditional_ROI Double YES Airbnb cash on cash (rent over investment)
    traditional_rental Double YES Traditional monthly rental income
    baths Integer YES Property bathrooms
    beds Integer YES Property bedrooms
    days_on_market Integer NO
    Replace it with 0 with when missed
    How many days the listing has been active on market
    home_type String YES Property home type
    Possible input:
    * Condo/Coop
    * Multi Family
    * Other
    * Single Family Residential
    * Townhouse
    list_price Integer NO
    Replace it with 0 with when missed
    Property list price
    sqft Integer NO
    Replace it with 0 with when missed
    Property sqft value

    Mashmeter

    Sample Request

    OkHttpClient client = new OkHttpClient();
    
    MediaType mediaType = MediaType.parse("application/json");
    RequestBody body = RequestBody.create(mediaType, '{"airbnb_listings":1104,"median_airbnb_coc":6.60582,"airbnb_price_to_rent_ratio":27.884447053896,"traditional_listings":7,"median_traditional_coc":0.7074975,"traditional_price_to_rent_ratio":28.650655961001,"walkscore":55}');
    Request request = new Request.Builder()
      .url("https://api.mashvisor.com/v1.1/client/ml/mashmeter")
      .post(body)
      .addHeader("Content-Type", "application/json")
      .build();
    
    Response response = client.newCall(request).execute();
    
    require 'uri'
    require 'net/http'
    
    url = URI("https://api.mashvisor.com/v1.1/client/ml/mashmeter")
    
    http = Net::HTTP.new(url.host, url.port)
    
    request = Net::HTTP::Post.new(url)
    request["x-api-key"] = 'YOUR_API_KEY'
    request["Postman-Token"] = 'd84dcf05-a554-48d1-a7c4-a675b624dfb3'
    request.body = '{"airbnb_listings":1104,"median_airbnb_coc":6.60582,"airbnb_price_to_rent_ratio":27.884447053896,"traditional_listings":7,"median_traditional_coc":0.7074975,"traditional_price_to_rent_ratio":28.650655961001,"walkscore":55}'
    
    response = http.request(request)
    puts response.read_body
    
    <?php
    
    $request = new HttpRequest();
    $request->setUrl('https://api.mashvisor.com/v1.1/client/ml/mashmeter');
    $request->setMethod(HTTP_METH_POST);
    
    $request->setHeaders(array(
      'Content-Type' => 'application/json'
    ));
    
    $request->setBody('{"airbnb_listings":1104,"median_airbnb_coc":6.60582,"airbnb_price_to_rent_ratio":27.884447053896,"traditional_listings":7,"median_traditional_coc":0.7074975,"traditional_price_to_rent_ratio":28.650655961001,"walkscore":55}');
    
    try {
      $response = $request->send();
    
      echo json_decode($response->getBody());
    } catch (HttpException $ex) {
      echo $ex;
    }
    
    package main
    
    import (
        "fmt"
        "strings"
        "net/http"
        "io/ioutil"
    )
    
    func main() {
    
        url := "https://api.mashvisor.com/v1.1/client/ml/mashmeter"
    
        payload := strings.NewReader('{"airbnb_listings":1104,"median_airbnb_coc":6.60582,"airbnb_price_to_rent_ratio":27.884447053896,"traditional_listings":7,"median_traditional_coc":0.7074975,"traditional_price_to_rent_ratio":28.650655961001,"walkscore":55}')
    
        req, _ := http.NewRequest("POST", url, payload)
    
        req.Header.Add("Content-Type", "application/json")
    
        res, _ := http.DefaultClient.Do(req)
    
        defer res.Body.Close()
        body, _ := ioutil.ReadAll(res.Body)
    
        fmt.Println(res)
        fmt.Println(string(body))
    
    }
    

    The above command returns JSON structured like this:

    {
        "status": "success",
        "content": {
          "traditional_mashmeter": "75.09",
          "airbnb_mashmeter": "67.79",
          "traditional_weight": "0.46",
          "airbnb_weight": "2.52",
          "strategy": "Airbnb",
          "mashmeter": "67.79"
        },
        "message": "Mashmeter values fetched successfully"
    }
    

    The Mashmeter is a unique function build over machine learning algorithms and a developed mathematical formula by our data engineers, which only Mashvisor offers to real estate investors. This simply shows you if a real estate investment in a certain neighborhood is a good or bad real estate investment decision.

    The goal of this model is to evaluate a neighbourhood by predicting how much it is good for investment. The resulting score is what so-called Mashmeter.

    HTTP Request

    POST https://api.mashvisor.com/v1.1/client/ml/mashmeter

    HTTP Headers

    Header Value Default
    Content-Type application/json
    x-api-key User Authentication Header

    Body Parameters

    Parameter Value Default Description
    airbnb_listings Integer Number of properties listed for sale in a given neighbourhood
    median_airbnb_coc Double Median Airbnb cash on cash (rent over investment) for a neighborhood
    airbnb_price_to_rent_ratio Double Airbnb price to rent ratio
    traditional_listings Integer Number of properties listed on Airbnb in a given neighbourhood
    median_traditional_coc Double Median traditional cash on cash (rent over investment) for a neighborhood
    traditional_price_to_rent_ratio Double Traditional price to rent ratio
    walkscore Integer Neighborhood Walkscore value

    Property Recommender

    Sample Request

    OkHttpClient client = new OkHttpClient();
    
    MediaType mediaType = MediaType.parse("application/json");
    RequestBody body = RequestBody.create(mediaType, '{"AgeRange":"45-54","WealthScore":"50.0","Gender":"Female","EstimatedHouseholdIncome":"> $250,000","PresenceOfChildren":"YES","NumberOfChildren":"1","MaritalStatusInHousehold":"Single","Investing":"YES","EstWealth":"> $499,999","NumberCreditLines":"1","LengthOfResidence":"11 - 15 years","Sale1 Transfer Amt":"590000.0","BusinessOwner":"UNKNOWN"}');
    Request request = new Request.Builder()
      .url("https://api.mashvisor.com/v1.1/client/ml/recommended_property")
      .post(body)
      .addHeader("Content-Type", "application/json")
      .addHeader("x-api-key", "YOUR_API_KEY")
      .build();
    
    Response response = client.newCall(request).execute();
    
    require 'uri'
    require 'net/http'
    
    url = URI("https://api.mashvisor.com/v1.1/client/ml/recommended_property")
    
    http = Net::HTTP.new(url.host, url.port)
    
    request = Net::HTTP::Post.new(url)
    request["x-api-key"] = 'YOUR_API_KEY'
    request["Postman-Token"] = 'd84dcf05-a554-48d1-a7c4-a675b624dfb3'
    request.body = '{"AgeRange":"45-54","WealthScore":"50.0","Gender":"Female","EstimatedHouseholdIncome":"> $250,000","PresenceOfChildren":"YES","NumberOfChildren":"1","MaritalStatusInHousehold":"Single","Investing":"YES","EstWealth":"> $499,999","NumberCreditLines":"1","LengthOfResidence":"11 - 15 years","Sale1 Transfer Amt":"590000.0","BusinessOwner":"UNKNOWN"}'
    
    response = http.request(request)
    puts response.read_body
    
    <?php
    
    $request = new HttpRequest();
    $request->setUrl('https://api.mashvisor.com/v1.1/client/ml/recommended_property');
    $request->setMethod(HTTP_METH_POST);
    
    $request->setHeaders(array(
      'x-api-key' => 'YOUR_API_KEY',
      'Content-Type' => 'application/json'
    ));
    
    $request->setBody('{"AgeRange":"45-54","WealthScore":"50.0","Gender":"Female","EstimatedHouseholdIncome":"> $250,000","PresenceOfChildren":"YES","NumberOfChildren":"1","MaritalStatusInHousehold":"Single","Investing":"YES","EstWealth":"> $499,999","NumberCreditLines":"1","LengthOfResidence":"11 - 15 years","Sale1 Transfer Amt":"590000.0","BusinessOwner":"UNKNOWN"}');
    
    try {
      $response = $request->send();
    
      echo json_decode($response->getBody());
    } catch (HttpException $ex) {
      echo $ex;
    }
    
    package main
    
    import (
        "fmt"
        "strings"
        "net/http"
        "io/ioutil"
    )
    
    func main() {
    
        url := "https://api.mashvisor.com/v1.1/client/ml/recommended_property"
    
        payload := strings.NewReader('{"AgeRange":"45-54","WealthScore":"50.0","Gender":"Female","EstimatedHouseholdIncome":"> $250,000","PresenceOfChildren":"YES","NumberOfChildren":"1","MaritalStatusInHousehold":"Single","Investing":"YES","EstWealth":"> $499,999","NumberCreditLines":"1","LengthOfResidence":"11 - 15 years","Sale1 Transfer Amt":"590000.0","BusinessOwner":"UNKNOWN"}')
    
        req, _ := http.NewRequest("POST", url, payload)
    
        req.Header.Add("Content-Type", "application/json")
        req.Header.Add("x-api-key", "YOUR_API_KEY")
    
        res, _ := http.DefaultClient.Do(req)
    
        defer res.Body.Close()
        body, _ := ioutil.ReadAll(res.Body)
    
        fmt.Println(res)
        fmt.Println(string(body))
    
    }
    

    The above command returns JSON structured like this:

    {
      "status": "success",
      "content": {
        "property_type": {
          "Condo/Coop": 69
        },
        "bedrooms": {
          "1": 95
        },
        "bathrooms": {
          "['1', '2']": 57.4
        },
        "home_value": {
          "> $1,000,000": 71.5
        }
      }
    }
    

    The API is to return a json object holding data representing specifications for recommended properties based on the a person demographics and financials. The specifications including: property type, number of rooms, number of bathrooms, and the home value.

    HTTP Request

    POST https://api.mashvisor.com/v1.1/client/ml/recommended_property

    HTTP Headers

    Header Value Default
    Content-Type application/json
    x-api-key User Authentication Header

    Body Parameters

    Parameter Value Default Description
    AgeRange String Person age range
    Possbile Inputs:
    * '18-24'
    * '25-34'
    * '35-44'
    * '45-54'
    * '55-64'
    * '65-74'
    * '75+'
    * 'UNKNOWN'
    WealthScore Integer Any from 0 to 100
    Or 'UNKNOWN'
    Gender String Possbile Inputs:
    * Male
    * Female
    * UNKNOWN
    EstimatedHouseholdIncome String Possbile Inputs:
    * '< $20,000'
    * '$10,000-49,999'
    * '$50,000-99,999'
    * '$100,000-149,999'
    * '$150,000-199,999'
    * '$200,000-249,999'
    * $250,000'
    *'UNKNOWN'
    PresenceOfChildren String Possbile Inputs:
    * 'YES'
    * UNKNOWN
    NumberOfChildren String Any positive integer number
    If missing, value should be sent as -1
    MaritalStatusInHousehold String Possbile Inputs:
    * Married
    * Signle
    * UNKNOWN
    Investing String Possbile Inputs:
    * 'YES'
    * UNKNOWN
    EstWealth String Possbile Inputs:
    * '< $1'
    *'$1-4,999'
    *'$5,000-9,999'
    *'$10,000-24,999'
    *'$25,000-49,999'
    *'$50,000-99,999'
    *'$100,000-249,999'
    *'$250,000-499,999'
    *'>$499,999'
    *'UNKNOWN'
    NumberCreditLines String Any positive integer number
    LengthOfResidence String Possbile Inputs:
    * '1 - 4 year'
    * '11 - 15 years'
    * '5 - 10 years'
    * UNKNOWN
    Sale1 Transfer Amt String Any positive number
    BusinessOwner String Possbile Inputs:
    * Accountant
    * 'Contractor'
    * 'Owner','Partner'
    *'Person Owns a Business'
    * Self Employed'
    * 'UNKNOWN'

    Short Term Rentals

    Mashvisor prvides data and anlysis for different short term rentals services presenting them for the investment listings, including AirBnB, HomeAway, and VRBO.
    * AirBnB
    Mashvisor started integrating with AirBnB since the first day we founded the company - late 2014. We have data for all U.S listings in a location, storing all listing detailed info, reviews, photos, host info, and yearly calendar for day per day booking availability and booking price per night. We currently having 2M+ listings available in our database.
    Mashvisor also developed an occupancy calculator algotherm evolved over the last 5 years calculating the occupancy rate for each listing month by month upon its historical performance and available future bookings. Our algorithms could currently distinguish between booked days and blocked days from booking, also calculate the estimated monthly rental income for the listings for future predictions, and availability to provide rental incomes for all the past months for the listing history. Moreover, we’ve implemented different mathematical algorithms helping us into our calculations, and we’re working on a new machine learning algorithms would help determining listings outliers, calculated occupancy rates.
    Recently, we started the process of reviewing our occupancy rates calculations with verified AirBnB hosts who have multiple listings over there to guarantee better service introduced for our customers and superiority over our main competitor AirDna. States breakdown coverage is attached in appendix D.
    * HomeAway
    Mashvisor started integrating with HomeAway since mid of 2016. We go over all neighborhoods and cities available in our database on monthly basis getting all listings within a neighborhood, storing all listing detailed info, reviews, photos, and yearly calendar for day per day booking availability. We currently having 500K+ listings available in our database.
    Our crawling cycle areas coverage crawling automatically month by month whenever we have a new city or neighborhood covered into our database.
    Mashvisor also developed an occupancy calculator algotherm evolved over the last 3 years calculating the occupancy rate for each listing month by month upon its historical performance and available future bookings. Also calculate the estimated monthly rental income for the listings for future predictions, and availability to provide rental incomes for all the past months for the listing history.

    Get Airbnb Listing Info

    Sample Request

    OkHttpClient client = new OkHttpClient();
    
    Request request = new Request.Builder()
      .url("https://api.mashvisor.com/v1.1/client/airbnb-property/22518616?state=AZ")
      .get()
      .addHeader("x-api-key", "YOUR_API_KEY")
      .build();
    
    Response response = client.newCall(request).execute();
    
    require 'uri'
    require 'net/http'
    
    url = URI("https://api.mashvisor.com/v1.1/client/property/22518616?state=AZ")
    
    http = Net::HTTP.new(url.host, url.port)
    
    request = Net::HTTP::Get.new(url)
    request["x-api-key"] = 'YOUR_API_KEY'
    
    response = http.request(request)
    puts response.read_body
    
    <?php
    
    $request = new HttpRequest();
    $request->setUrl('https://api.mashvisor.com/v1.1/client/property/22518616');
    $request->setMethod(HTTP_METH_GET);
    $request->setHeaders(array(
      'x-api-key' => 'YOUR_API_KEY'
    ));
    $request->setQueryData(array(
      'state' => 'AZ'
    ));
    
    try {
      $response = $request->send();
    
      echo json_decode($response->getBody());
    } catch (HttpException $ex) {
      echo $ex;
    }
    
    package main
    
    import (
        "fmt"
        "net/http"
        "io/ioutil"
    )
    
    func main() {
    
        url := "https://api.mashvisor.com/v1.1/client/property/22518616?state=AZ"
    
      req, _ := http.NewRequest("GET", url, nil)
    
      req.Header.Add("x-api-key", "YOUR_API_KEY")
    
        res, _ := http.DefaultClient.Do(req)
    
        defer res.Body.Close()
        body, _ := ioutil.ReadAll(res.Body)
    
        fmt.Println(res)
        fmt.Println(string(body))
    
    }
    

    The above command returns JSON structured like this:

    {
      "status": "success",
      "content": {
        "id": 21419158,
        "city": "Tempe",
        "picture_url": "https://a0.muscache.com/4ea/air/v2//pictures/81b62204-5602-49e9-83af-baf5a2477dcb.jpg?t=r:w1200-h720-sfit,e:fjpg-c85",
        "thumbnail_url": "https://a0.muscache.com/im/pictures/81b62204-5602-49e9-83af-baf5a2477dcb.jpg?aki_policy=small",
        "medium_url": "https://a0.muscache.com/im/pictures/81b62204-5602-49e9-83af-baf5a2477dcb.jpg?aki_policy=medium",
        "xl_picture_url": "https://a0.muscache.com/im/pictures/81b62204-5602-49e9-83af-baf5a2477dcb.jpg?aki_policy=x_large",
        "user_id": 2158239,
        "price": 250,
        "native_currency": "USD",
        "price_native": 250,
        "price_formatted": "$250",
        "lat": 33.4433,
        "lng": -111.9222,
        "country": "United States",
        "name": "Luxury Three Story Home with Two Balconies",
        "smart_location": "Tempe, AZ",
        "has_double_blind_reviews": false,
        "instant_bookable": false,
        "bedrooms": 4,
        "beds": 5,
        "bathrooms": 3.5,
        "market": "Phoenix",
        "min_nights": 1,
        "neighborhood": null,
        "person_capacity": 9,
        "state": "AZ",
        "zipcode": "85281",
        "address": "Tempe, AZ, United States",
        "country_code": "US",
        "cancellation_policy": "moderate",
        "property_type": "House",
        "reviews_count": 41,
        "room_type": "Entire home/apt",
        "room_type_category": "entire_home",
        "picture_count": 42,
        "currency_symbol_left": "$",
        "currency_symbol_right": null,
        "bed_type": "Real Bed",
        "bed_type_category": "real_bed",
        "require_guest_profile_picture": false,
        "require_guest_phone_verification": false,
        "force_mobile_legal_modal": false,
        "cancel_policy": 4,
        "check_in_time": 15,
        "check_out_time": 10,
        "guests_included": 4,
        "license": null,
        "max_nights": 1125,
        "square_feet": null,
        "locale": "en",
        "has_viewed_terms": null,
        "has_viewed_cleaning": null,
        "has_agreed_to_legal_terms": null,
        "has_viewed_ib_perf_dashboard_panel": null,
        "language": "en",
        "public_address": "Tempe, AZ, United States",
        "map_image_url": "https://maps.googleapis.com/maps/api/staticmap?maptype=roadmap&markers=33.4433%2C-111.9222&size=480x320&zoom=15&client=gme-airbnbinc&channel=monorail-prod&signature=QM7Jbt_vQkf3Nodd5X4RELn0InM%3D",
        "experiences_offered": "none",
        "max_nights_input_value": null,
        "min_nights_input_value": 1,
        "requires_license": false,
        "property_type_id": 2,
        "house_rules": "- No smoking inside the house\n- No pets allowed\n- No parties or large gatherings (smaller events or gatherings considered with prior homeowner approval)\n- Must be at least 25 years old to book\n- Additional fees and taxes may apply\n- Photo ID may be required upon check-in\n- No early check-in/out during Nov-Apr.\n- Extra cleaning charge will be reported to Airbnb if the house needs extensive cleaning efforts (longer than 3 hours: $55/hour)\n-Please do not park the car in front of the garage door.",
        "security_deposit_native": 200,
        "security_price_native": 200,
        "security_deposit_formatted": "$200",
        "description": "Bask in the sun on one of the two lovely balconies, or socialise at the pool, at this dreamy desert getaway. Utilise the comfy bedrooms on all three floors, cook a gourmet meal in the high-end kitchen and watch TV on the giant projection screen.",
        "description_locale": "en",
        "summary": "Bask in the sun on one of the two lovely balconies, or socialise at the pool, at this dreamy desert getaway. Utilise the comfy bedrooms on all three floors, cook a gourmet meal in the high-end kitchen and watch TV on the giant projection screen.",
        "space": "Master Bedroom: King Bed | Bedroom 2: Queen Bed | Bedroom 3: Queen Bed, Twin Trundle Bed | Bedroom 4 (1st floor): Queen Sleeper Sofa \n\nNestled in the pristine Newport community, this spacious home is designed to impress with modern elegance and comfortable furnishings. \n\nJust steps from your home-away-from-home is the shared outdoor pool and spa. Dive into relaxation in this pristine body of water or enjoy a soothing soak in the jacuzzi for optimal holiday relaxation. \n\nWhen you're not lounging poolside, unwind in the living area, featuring plush sofas, a stereo, smart home system, and a Smart TV with cable channels and a large projector screen. \n\nYou'll want to put your culinary skills to the test in the high-end kitchen, adorned with stainless steel appliances, sleek countertops, a breakfast bar, and a farmhouse sink. Enjoy your home-cooked cuisine at the 2-person breakfast bar or at the dining room table with seating for 6. \n\nFor a front-row seat to colorful Arizona sunsets, retreat upstairs to the private rooftop patio, with seating for 2 and picturesque Tempe views. The property also features a second-floor balcony - the perfect place to jumpstart your day with a cup of coffee or end it with an evening nightcap.\n\nRetire to the well-appointed master bedroom, offering a king-sized bed and an en-suite bathroom with a large shower and bathtub. Sleep will come easy in Bedrooms 2 and 3, boasting high-quality memory foam queen mattresses. Additional sleeping can be found in the downstairs 4th bedroom with high-end foam mattress queen-sized sleeper sofa.",
        "access": "Guest has access to the whole house. Just make it your own home in the dessert.",
        "interaction": "Keyless entry and self check in is available. Instruction will be sent to you after booking.",
        "neighborhood_overview": "Visit boutiques, museums, galleries, live theatre, gourmet fare and more in these lively cities, or head out into nature for more adventure. Downtown Tempe is just a stone's throw away, and Old Scottsdale is only 15 minutes away.",
        "transit": "Rental car is highly recommended. Although uber/Lyft are also very convenient to use in town. There’s also free flash to go to ASU and downtown. \nWe have two bikes you can use for free.",
        "amenities": [
            "TV",
            "Cable TV",
            "Wifi",
            "Air conditioning",
            "Pool",
            "Kitchen",
            "Free parking on premises",
            "Gym",
            "Free street parking",
            "Hot tub",
            "Indoor fireplace",
            "Heating",
            "Washer",
            "Dryer",
            "Smoke detector",
            "Carbon monoxide detector",
            "Essentials",
            "Shampoo",
            "Hangers",
            "Hair dryer",
            "Iron",
            "Laptop friendly workspace",
            "Self check-in",
            "Smart lock",
            "Private entrance",
            "Bathtub",
            "Room-darkening shades",
            "Hot water",
            "Body soap",
            "Bath towel",
            "Toilet paper",
            "Bed linens",
            "Extra pillows and blankets",
            "Microwave",
            "Coffee maker",
            "Refrigerator",
            "Dishwasher",
            "Dishes and silverware",
            "Cooking basics",
            "Oven",
            "Stove",
            "BBQ grill",
            "Patio or balcony",
            "Long term stays allowed",
            "Cleaning before checkout",
            "Handheld shower head",
            "Hot water kettle",
            "Central air conditioning",
            "Smart TV",
            "Mountain view",
            "Rain shower",
            "Balcony",
            "Sound system",
            "Gas oven",
            "Projector and screen",
            "Exercise equipment",
            "Breakfast table",
            "Espresso machine",
            "Formal dining area",
            "Sun loungers",
            "Day bed",
            "Shared gym",
            "Shared pool",
            "Shared hot tub",
            "Convection oven",
            "Amazon Echo",
            "Memory foam mattress",
            "En suite bathroom",
            "Outdoor seating",
            "Soaking tub",
            "Walk-in shower",
            "Full kitchen",
            "Bedroom comforts",
            "Bathroom essentials"
        ],
        "is_location_exact": false,
        "cancel_policy_short_str": "Moderate",
        "star_rating": 5,
        "price_for_extra_person_native": 15,
        "weekly_price_native": null,
        "monthly_price_native": null,
        "time_zone_name": "America/Phoenix",
        "loc": {
            "type": "Point",
            "coordinates": [
                -111.9222,
                33.4433
            ]
        },
        "exists": true,
        "created_at": "2018-04-05T23:17:26.415Z",
        "updated_at": "2019-11-08T06:22:15.499Z",
        "cleaning_fee_native": 250,
        "extras_price_native": 250,
        "in_building": false,
        "in_toto_area": false,
        "instant_book_enabled": true,
        "is_business_travel_ready": false,
        "listing_cleaning_fee_native": 250,
        "listing_monthly_price_native": null,
        "listing_price_for_extra_person_native": 15,
        "listing_weekend_price_native": 295,
        "listing_weekly_price_native": null,
        "localized_city": "Tempe",
        "monthly_price_factor": 0.92,
        "special_offer": null,
        "toto_opt_in": null,
        "weekly_price_factor": 0.95,
        "wireless_info": null,
        "host_id": 2158239,
        "airbnb_id": 22518616,
        "mashvisor_id": 21419158,
        "occupancy": 63,
        "rental_income": 3059,
        "nights_booked": 209
      }
    }
    

    This endpoint retrieves the Airbnb property detailed information, reviews, photos, host, estiamted rental income, calculated occupancy rate.

    Airbnb Property Data Dictionary

    Attribute Definition Possible Returns
    id Airbnb listing ID: 9998508 Integer
    name Listing full name String
    neighborhood Listing neighborhood Boolean
    city The city where the listing is located String
    state* The state where the property is located String
    zip code Postal code where a listing is located Integer
    country County where a listing is located String
    smart_location Full location of listing String
    address Address of listing entered by host String
    public_address Full address along with the country String
    country_code Listing’s country code, ex: US String
    market Listing market String
    lat Latitude of listing location Float
    lng Longitude of listing location Float
    instant_bookable Indicator if listing is available for instant booking Boolean
    picture_url Main picture url String
    thumbnail_url Main thumbnail picture url String
    medium_url Main XL picture url String
    xl_picture_url All XL pictures urls.  String
    picture_urls All pictures url String - array
    thumbnail_urls All thumbnail pictures url String - array
    xl_picture_urls All XL pictures urls.  String - array
    picture_count Count of all pictures Integer
    picture_captions All pictures captions String - array
    map_image_url Google map image url String
    user_id Listing’s host ID Integer
    price Listing current booking price per night Integer
    native_currency Natiec price currency, ex: “USD” String
    price_native Listing nartive price Integer
    price_formatted Price along with the currency String
    price_for_extra_person_native Extra person’s price Integer
    weekly_price_native Weekly price after the discount Integer
    monthly_price_native Monthly price after the discount Integer
    currency_symbol_left Currency symbol, ex: “$” String
    currency_symbol_right Currency symbol, ex: “€” String
    security_deposit_native Security deposit price Integer
    security_price_native Security deposit native price Integer
    security_deposit_formatted Security deposit price with currency String
    bedrooms Number of bedrooms Integer
    beds Number of beds Integer
    bathrooms Number of bathrooms Integer
    min_nights Min allowed booking nights Integer
    person_capacity Max listing capacity of persons Integer
    user The time of the open house starting User Object
    cancellation_policy Cancellation policy category String
    cancel_policy Cancellation policy category ID Integer
    cancel_policy_short_str Summary of cancellation policy String
    has_double_blind_reviews Boolean indicator for blind reviews Boolean
    property_type Property main type String
    Available types:
    * House
    * Apartment
    * Bed and breakfast
    * Boutique hotel
    * More information
    * Bungalow
    * Cabin
    * Chalet
    * Cottage
    * Guest suite
    * Guesthouse
    * Hostel
    * Hotel
    * Loft
    * Resort
    * Townhouse
    * Villa
    reviews_count Total reviews count Integer
    review_scores Detailed reviews scores per category Review Scores object
    room_type Listing room type String
    Available types:
    * Entire home/apt
    * Private room
    * Shared room
    room_type_category Room type category String
    bed_type Bed type String
    bed_type_category Bed type category String
    require_guest_profile_picture Boolean
    Require_guest_phone_ Boolean
    verification
    force_mobile_legal_modal Boolean
    check_in_time Check in time hour Integer
    check_out_time Check out time hour Integer
    guests_included Number of guests included Integer
    license AirBnB license for listing String
    max_nights Max booking nights Integer
    square_feet Listing living area Integer
    locale Listing’s locale String
    has_viewed_terms Boolean
    has_viewed_cleaning Boolean
    has_agreed_to_legal_terms Boolean
    Has_viewed_ib_ Boolean
    perf_dashboard_panel
    language Listing page language  String
    experiences_offered Listing’ experience offered along with booking String
    max_nights_input_value Integer
    min_nights_input_value Integer
    requires_license Indicator if the listing requires licence Boolean
    property_type_id Property type ID Integer
    house_rules Hosting rules provided by host when booking String
    description Listing full description String
    description_locale Description locale String
    summary Description summary String
    space Listing space String
    access Allowed accesses in the listing from host String
    interaction Host interaction String
    neighborhood_overview Listing neighborhood overview String
    transit Listing around transit String
    amenities All included amenities String - array
    is_location_exact Verified exact location Boolean
    star_rating Total start rating Float
    time_zone_name Full timezone name String
    created_at Listing creation date and time Timestamp
    updated_at Listing updates date and time Timestamp
    exists Indicator if the listing is still active over AirBnB or not. Boolean

    HTTP Request

    GET https://api.mashvisor.com/v1.1/client/airbnb-property/{id}

    Request Headers

    Parameter Value
    x-api-key User Authentication Header

    Path Parameters

    Parameter Value Default Description
    id Long The Airbnb listing Id.

    Query Parameters

    Parameter Value Default Description
    state* String The state of the listing should be provided to the api or api will throw error 404.

    Get Airbnb Historical Performance

    Sample Request

    OkHttpClient client = new OkHttpClient();
    
    Request request = new Request.Builder()
      .url("https://api.mashvisor.com/v1.1/client/airbnb-property/21419158/historical?state=AZ")
      .get()
      .addHeader("x-api-key", "YOUR_API_KEY")
      .build();
    
    Response response = client.newCall(request).execute();
    
    require 'uri'
    require 'net/http'
    
    url = URI("https://api.mashvisor.com/v1.1/client/airbnb-property/21419158/historical?state=AZ")
    
    http = Net::HTTP.new(url.host, url.port)
    
    request = Net::HTTP::Get.new(url)
    request["x-api-key"] = 'YOUR_API_KEY'
    
    response = http.request(request)
    puts response.read_body
    
    <?php
    
    $request = new HttpRequest();
    $request->setUrl('https://api.mashvisor.com/v1.1/client/airbnb-property/21419158/historical');
    $request->setMethod(HTTP_METH_GET);
    $request->setHeaders(array(
      'x-api-key' => 'YOUR_API_KEY'
    ));
    $request->setQueryData(array(
      'state' => 'AZ'
    ));
    
    try {
      $response = $request->send();
    
      echo json_decode($response->getBody());
    } catch (HttpException $ex) {
      echo $ex;
    }
    
    package main
    
    import (
        "fmt"
        "net/http"
        "io/ioutil"
    )
    
    func main() {
    
        url := "https://api.mashvisor.com/v1.1/client/airbnb-property/21419158/historical?state=AZ"
    
      req, _ := http.NewRequest("GET", url, nil)
    
      req.Header.Add("x-api-key", "YOUR_API_KEY")
    
        res, _ := http.DefaultClient.Do(req)
    
        defer res.Body.Close()
        body, _ := ioutil.ReadAll(res.Body)
    
        fmt.Println(res)
        fmt.Println(string(body))
    
    }
    

    The above command returns JSON structured like this:

    {
        "status": "success",
        "content": {
            "name": "Luxury Three Story Home with Two Balconies",
            "airbnb_id": "22518616",
            "months": [
                {
                    "airbnb_id": "22518616",
                    "name": "Luxury Three Story Home with Two Balconies",
                    "year": 2018,
                    "month": 12,
                    "nightly_price": 200,
                    "revenue": 2800,
                    "occupancy": 14,
                    "unbooked_nights": 17,
                    "occupancy_rate": 45
                },
                {
                    "airbnb_id": "22518616",
                    "name": "Luxury Three Story Home with Two Balconies",
                    "year": 2019,
                    "month": 1,
                    "nightly_price": 0,
                    "revenue": 0,
                    "occupancy": 0,
                    "unbooked_nights": null,
                    "occupancy_rate": null
                },
                {
                    "airbnb_id": "22518616",
                    "name": "Luxury Three Story Home with Two Balconies",
                    "year": 2019,
                    "month": 2,
                    "nightly_price": 223,
                    "revenue": 4462,
                    "occupancy": 20,
                    "unbooked_nights": 8,
                    "occupancy_rate": 71
                },
                {
                    "airbnb_id": "22518616",
                    "name": "Luxury Three Story Home with Two Balconies",
                    "year": 2019,
                    "month": 3,
                    "nightly_price": 264,
                    "revenue": 7404,
                    "occupancy": 28,
                    "unbooked_nights": 3,
                    "occupancy_rate": 90
                },
                {
                    "airbnb_id": "22518616",
                    "name": "Luxury Three Story Home with Two Balconies",
                    "year": 2019,
                    "month": 4,
                    "nightly_price": 192,
                    "revenue": 2107,
                    "occupancy": 11,
                    "unbooked_nights": 19,
                    "occupancy_rate": 37
                },
                {
                    "airbnb_id": "22518616",
                    "name": "Luxury Three Story Home with Two Balconies",
                    "year": 2019,
                    "month": 5,
                    "nightly_price": 175,
                    "revenue": 3153,
                    "occupancy": 18,
                    "unbooked_nights": 13,
                    "occupancy_rate": 58
                },
                {
                    "airbnb_id": "22518616",
                    "name": "Luxury Three Story Home with Two Balconies",
                    "year": 2019,
                    "month": 6,
                    "nightly_price": 107,
                    "revenue": 2345,
                    "occupancy": 22,
                    "unbooked_nights": 8,
                    "occupancy_rate": 73
                },
                {
                    "airbnb_id": "22518616",
                    "name": "Luxury Three Story Home with Two Balconies",
                    "year": 2019,
                    "month": 7,
                    "nightly_price": 95,
                    "revenue": 2090,
                    "occupancy": 22,
                    "unbooked_nights": 9,
                    "occupancy_rate": 71
                },
                {
                    "airbnb_id": "22518616",
                    "name": "Luxury Three Story Home with Two Balconies",
                    "year": 2019,
                    "month": 8,
                    "nightly_price": 125,
                    "revenue": 2375,
                    "occupancy": 19,
                    "unbooked_nights": 12,
                    "occupancy_rate": 61
                },
                {
                    "airbnb_id": "22518616",
                    "name": "Luxury Three Story Home with Two Balconies",
                    "year": 2019,
                    "month": 9,
                    "nightly_price": 129,
                    "revenue": 2451,
                    "occupancy": 19,
                    "unbooked_nights": 11,
                    "occupancy_rate": 63
                },
                {
                    "airbnb_id": "22518616",
                    "name": "Luxury Three Story Home with Two Balconies",
                    "year": 2019,
                    "month": 10,
                    "nightly_price": 144,
                    "revenue": 2599,
                    "occupancy": 18,
                    "unbooked_nights": 13,
                    "occupancy_rate": 58
                },
                {
                    "airbnb_id": "22518616",
                    "name": "Luxury Three Story Home with Two Balconies",
                    "year": 2019,
                    "month": 11,
                    "nightly_price": 123,
                    "revenue": 2211,
                    "occupancy": 18,
                    "unbooked_nights": 12,
                    "occupancy_rate": 60
                }
            ]
        }
    }
    

    This endpoint retrieves the Airbnb property 12 historical records - nightly price, revenue, and occupancy, unbooked nights, and occupancy rate - for a specific property.

    HTTP Request

    GET https://api.mashvisor.com/v1.1/client/airbnb-property/{id}/historical

    Request Headers

    Parameter Value
    x-api-key User Authentication Header

    Path Parameters

    Parameter Value Default Description
    id Long The Airbnb property record Id from the Mashvisor database.

    Query Parameters

    Parameter Value Default Description
    state* String The state of the property should be provided to the api or api will throw error 404.

    Get Neighborhood Historical Performance

    Sample Request

    OkHttpClient client = new OkHttpClient();
    
    Request request = new Request.Builder()
      .url("https://api.mashvisor.com/v1.1/client/neighborhood/268201/historical/airbnb?average_by=revenue&state=CA")
      .get()
      .addHeader("x-api-key", "YOUR_API_KEY")
      .build();
    
    Response response = client.newCall(request).execute();
    
    require 'uri'
    require 'net/http'
    
    url = URI("https://api.mashvisor.com/v1.1/client/neighborhood/268201/historical/airbnb?average_by=revenue&state=CA")
    
    http = Net::HTTP.new(url.host, url.port)
    
    request = Net::HTTP::Get.new(url)
    request["x-api-key"] = 'YOUR_API_KEY'
    
    response = http.request(request)
    puts response.read_body
    
    <?php
    
    $request = new HttpRequest();
    $request->setUrl('https://api.mashvisor.com/v1.1/client/neighborhood/268201/historical/airbnb');
    $request->setMethod(HTTP_METH_GET);
    
    $request->setQueryData(array(
      'state' => 'CA',
      'city' => 'San%20Francisco'
    ));
    
    try {
      $response = $request->send();
    
      echo json_decode($response->getBody());
    } catch (HttpException $ex) {
      echo $ex;
    }
    
    package main
    
    import (
        "fmt"
        "net/http"
        "io/ioutil"
    )
    
    func main() {
    
        url := "https://api.mashvisor.com/v1.1/client/neighborhood/268201/historical/airbnb?average_by=revenue&state=CA"
    
      req, _ := http.NewRequest("GET", url, nil)
    
      req.Header.Add("x-api-key", "YOUR_API_KEY")
    
        res, _ := http.DefaultClient.Do(req)
    
        defer res.Body.Close()
        body, _ := ioutil.ReadAll(res.Body)
    
        fmt.Println(res)
        fmt.Println(string(body))
    
    }
    

    The above command returns JSON structured for occupancy category like this:

    {
        "status": "success",
        "content": {
            "results": [
                {
                    "year": 2018,
                    "month": 10,
                    "value": 71
                },
                {
                    "year": 2018,
                    "month": 11,
                    "value": 42
                },
                {
                    "year": 2018,
                    "month": 12,
                    "value": 17
                },
                {
                    "year": 2019,
                    "month": 1,
                    "value": 65
                },
                {
                    "year": 2019,
                    "month": 2,
                    "value": 76
                },
                {
                    "year": 2019,
                    "month": 3,
                    "value": 83
                },
                {
                    "year": 2019,
                    "month": 4,
                    "value": 73
                },
                {
                    "year": 2019,
                    "month": 5,
                    "value": 84
                },
                {
                    "year": 2019,
                    "month": 6,
                    "value": 79
                },
                {
                    "year": 2019,
                    "month": 7,
                    "value": 79
                },
                {
                    "year": 2019,
                    "month": 8,
                    "value": 66
                },
                {
                    "year": 2019,
                    "month": 9,
                    "value": 55
                }
            ]
        },
        "message": "Historical Data fetched successfully"
    }
    

    The above command returns JSON structured for revenue category like this:

    {
        "status": "success",
        "content": {
            "results": [
                {
                    "year": 2018,
                    "month": 10,
                    "value": 6056
                },
                {
                    "year": 2018,
                    "month": 11,
                    "value": 3767
                },
                {
                    "year": 2018,
                    "month": 12,
                    "value": 1797
                },
                {
                    "year": 2019,
                    "month": 1,
                    "value": 4739
                },
                {
                    "year": 2019,
                    "month": 2,
                    "value": 5738
                },
                {
                    "year": 2019,
                    "month": 3,
                    "value": 5970
                },
                {
                    "year": 2019,
                    "month": 4,
                    "value": 4398
                },
                {
                    "year": 2019,
                    "month": 5,
                    "value": 5751
                },
                {
                    "year": 2019,
                    "month": 6,
                    "value": 5398
                },
                {
                    "year": 2019,
                    "month": 7,
                    "value": 6004
                },
                {
                    "year": 2019,
                    "month": 8,
                    "value": 4999
                },
                {
                    "year": 2019,
                    "month": 9,
                    "value": 3998
                }
            ]
        },
        "message": "Historical Data fetched successfully"
    }
    

    Get a submarket (neighborhood) short term historical performance for its listings as an array

    HTTP Request

    GET https://api.mashvisor.com/v1.1/client/neighborhood/{id}/historical/airbnb

    Request Headers

    Parameter Value
    x-api-key User Authentication Header

    Path Parameters

    Parameter Value Default Description
    id Long Neighborhood id to fetch data for

    Query Parameters

    Parameter Value Default Description
    state* String The state should be provided to the api or api will throw error 404.
    percentile_rate Double 1 Percentile rate
    average_by String occupancy Neighborhood id you're targeting.
    Possbile Inputs:
    * occupancy
    * price
    * revenue
    category String AirBnB category type.
    Possbile Inputs:
    * flat
    * house
    * apartment
    * loft
    beds Integer 0 to 4 bedrooms value

    Get Listings

    Sample Request

    OkHttpClient client = new OkHttpClient();
    
    Request request = new Request.Builder()
      .url("https://api.mashvisor.com/v1.1/client/airbnb-property/active-listings?state=CA&city=San%20Francisco")
      .get()
      .addHeader("x-api-key", "YOUR_API_KEY")
      .build();
    
    Response response = client.newCall(request).execute();
    
    require 'uri'
    require 'net/http'
    
    url = URI("https://api.mashvisor.com/v1.1/client/airbnb-property/active-listings?state=CA&city=San%20Francisco")
    
    http = Net::HTTP.new(url.host, url.port)
    
    request = Net::HTTP::Get.new(url)
    request["x-api-key"] = 'YOUR_API_KEY'
    
    response = http.request(request)
    puts response.read_body
    
    <?php
    
    $request = new HttpRequest();
    $request->setUrl('https://api.mashvisor.com/v1.1/client/airbnb-property/active-listings');
    $request->setMethod(HTTP_METH_GET);
    
    $request->setQueryData(array(
      'state' => 'CA',
      'city' => 'San%20Francisco'
    ));
    
    try {
      $response = $request->send();
    
      echo json_decode($response->getBody());
    } catch (HttpException $ex) {
      echo $ex;
    }
    
    package main
    
    import (
        "fmt"
        "net/http"
        "io/ioutil"
    )
    
    func main() {
    
        url := "https://api.mashvisor.com/v1.1/client/airbnb-property/active-listings?state=CA&city=San%20Francisco"
    
      req, _ := http.NewRequest("GET", url, nil)
    
      req.Header.Add("x-api-key", "YOUR_API_KEY")
    
        res, _ := http.DefaultClient.Do(req)
    
        defer res.Body.Close()
        body, _ := ioutil.ReadAll(res.Body)
    
        fmt.Println(res)
        fmt.Println(string(body))
    
    }
    

    The above command returns JSON structured like this:

    {
        "status": "success",
        "content": {
            "num_of_properties": 7115,
            "items": 5,
            "total_pages": 1423,
            "page": 2,
            "properties": [
                {
                    "id": 18894069,
                    "propertyId": "4733174",
                    "source": "Airbnb",
                    "nightPrice": 307,
                    "weeklyPrice": 0,
                    "monthlyPrice": 0,
                    "numOfBaths": 1.5,
                    "numOfRooms": 3,
                    "name": "Huge Apt in Lincoln Park Mansion!",
                    "address": "Chicago, IL, United States",
                    "airbnbNeighborhood": "Lincoln Park",
                    "airbnbCity": "Chicago",
                    "capacityOfPeople": 9,
                    "zip": "60614",
                    "propertyType": "Apartment",
                    "roomType": "Entire home/apt",
                    "roomTypeCategory": "entire_home",
                    "amenities": null,
                    "reviewsCount": 51,
                    "startRating": 5,
                    "reviews": null,
                    "createdAt": "2017-07-08T18:29:04.000Z",
                    "updatedAt": "2017-07-08T18:29:04.000Z",
                    "numOfBeds": 5,
                    "lat": "41.92822647094727",
                    "lon": "-87.64620208740234",
                    "image": "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png"
                    "nightRate": 307,
                    "property_id": "4733174",
                    "airbnbZIP": "60614"
                },
                {
                    "id": 18894071,
                    "propertyId": "14222880",
                    "source": "Airbnb",
                    "nightPrice": 164,
                    "weeklyPrice": 0,
                    "monthlyPrice": 0,
                    "numOfBaths": 1,
                    "numOfRooms": 2,
                    "name": "Lincoln park spacious 2.5 bedroom",
                    "address": "Chicago, IL 60614, United States",
                    "airbnbNeighborhood": "Lincoln Park",
                    "airbnbCity": "Chicago",
                    "capacityOfPeople": 6,
                    "zip": "60614",
                    "propertyType": "Condominium",
                    "roomType": "Entire home/apt",
                    "roomTypeCategory": "entire_home",
                    "amenities": null,
                    "reviewsCount": 15,
                    "startRating": 5,
                    "reviews": null,
                    "createdAt": "2017-07-08T18:29:08.000Z",
                    "updatedAt": "2017-07-08T18:29:08.000Z",
                    "numOfBeds": 3,
                    "lat": "41.91649627685547",
                    "lon": "-87.65447998046875",
                    "image": "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png",
                    "nightRate": 164,
                    "property_id": "14222880",
                    "airbnbZIP": "60614"
                },
                {
                    "id": 18894074,
                    "propertyId": "9577653",
                    "source": "Airbnb",
                    "nightPrice": 128,
                    "weeklyPrice": 0,
                    "monthlyPrice": 0,
                    "numOfBaths": 1,
                    "numOfRooms": 1,
                    "name": "Modern Lincoln Park 1bd 1ba Parking",
                    "address": "Chicago, IL 60614, United States",
                    "airbnbNeighborhood": "Lincoln Park",
                    "airbnbCity": "Chicago",
                    "capacityOfPeople": 3,
                    "zip": "60614",
                    "propertyType": "Apartment",
                    "roomType": "Entire home/apt",
                    "roomTypeCategory": "entire_home",
                    "amenities": null,
                    "reviewsCount": 57,
                    "startRating": 5,
                    "reviews": null,
                    "createdAt": "2017-07-08T18:29:12.000Z",
                    "updatedAt": "2017-07-08T18:29:12.000Z",
                    "numOfBeds": 1,
                    "lat": "41.92398071289063",
                    "lon": "-87.66230773925781",
                    "image": "https://bc9f40b414b80f1ce90f-212b46b1c531b50ebb00763170d70160.ssl.cf5.rackcdn.com/Properties/property-default.png",
                    "nightRate": 128,
                    "property_id": "9577653",
                    "airbnbZIP": "60614"
                }
            ],
            "num_of_properties": 114,
            "num_page_properties": 3,
            "page": "1"
        }
    }
    

    List all active short term rentals for a specific location: city, zip code, or a neighborhood.

    HTTP Request

    GET https://api.mashvisor.com/v1.1/client/airbnb-property/active-listings

    Request Headers

    Parameter Value
    x-api-key User Authentication Header

    Query Parameters

    Parameter Value Default Description
    state* String The state should be provided to the api or api will throw error 404.
    city String A specific city you're looking for.
    neighborhood Long Neighborhood id you're targeting
    zip_code Integer Any postal zip code.
    page Integer 1 Page number
    items Integer 4 Items number per page.

    Get Market Summary

    Sample Request

    OkHttpClient client = new OkHttpClient();
    
    Request request = new Request.Builder()
      .url("https://api.mashvisor.com/v1.1/client/airbnb-property/market-summary?state=CA&city=San%20Francisco")
      .get()
      .addHeader("x-api-key", "YOUR_API_KEY")
      .build();
    
    Response response = client.newCall(request).execute();
    
    require 'uri'
    require 'net/http'
    
    url = URI("https://api.mashvisor.com/v1.1/client/airbnb-property/market-summary?state=CA&city=San%20Francisco")
    
    http = Net::HTTP.new(url.host, url.port)
    
    request = Net::HTTP::Get.new(url)
    request["x-api-key"] = 'YOUR_API_KEY'
    
    response = http.request(request)
    puts response.read_body
    
    <?php
    
    $request = new HttpRequest();
    $request->setUrl('https://api.mashvisor.com/v1.1/client/airbnb-property/market-summary');
    $request->setMethod(HTTP_METH_GET);
    
    $request->setQueryData(array(
      'state' => 'CA',
      'city' => 'San%20Francisco'
    ));
    
    try {
      $response = $request->send();
    
      echo json_decode($response->getBody());
    } catch (HttpException $ex) {
      echo $ex;
    }
    
    package main
    
    import (
        "fmt"
        "net/http"
        "io/ioutil"
    )
    
    func main() {
    
        url := "https://api.mashvisor.com/v1.1/client/airbnb-property/market-summary?state=CA&city=San%20Francisco"
    
      req, _ := http.NewRequest("GET", url, nil)
    
      req.Header.Add("x-api-key", "YOUR_API_KEY")
    
        res, _ := http.DefaultClient.Do(req)
    
        defer res.Body.Close()
        body, _ := ioutil.ReadAll(res.Body)
    
        fmt.Println(res)
        fmt.Println(string(body))
    
    }
    

    The above command returns JSON structured like this:

    {
        "status": "success",
        "content": {
            "listings_count": 60,
            "property_types": {
                "total_types": 60,
                "histogram": [
                    "House",
                    "House",
                    "Apartment",
                    "Townhouse",
                    "House",
                    "Apartment",
                    "House",
                    "Guesthouse",
                    "Guesthouse",
                    "House",
                    "House",
                    "Guest suite",
                    "Apartment",
                    "Bungalow",
                    "Bungalow",
                    "Apartment",
                    "Apartment",
                    "House",
                    "Apartment",
                    "Apartment",
                    "Guesthouse",
                    "House",
                    "House",
                    "Apartment",
                    "Apartment",
                    "House",
                    "House",
                    "Apartment",
                    "Guesthouse",
                    "Bungalow",
                    "Loft",
                    "Apartment",
                    "Guesthouse",
                    "Guesthouse",
                    "Apartment",
                    "House",
                    "House",
                    "House",
                    "Apartment",
                    "Apartment",
                    "House",
                    "Apartment",
                    "House",
                    "Apartment",
                    "Guest suite",
                    "Guesthouse",
                    "Dome house",
                    "House",
                    "House",
                    "House",
                    "Loft",
                    "House",
                    "Apartment",
                    "Apartment",
                    "Loft",
                    "Apartment",
                    "Apartment",
                    "Guesthouse",
                    "Bungalow",
                    "House"
                ]
            },
            "occupancy_histogram": {
                "average_occupancy": 63.5,
                "histogram": [
                    23,
                    22,
                    100,
                    84,
                    75,
                    84,
                    94,
                    77,
                    76,
                    65,
                    60,
                    72,
                    10,
                    73,
                    45,
                    53,
                    74,
                    59,
                    56,
                    14,
                    88,
                    76,
                    42,
                    90,
                    58,
                    66,
                    96,
                    74,
                    62,
                    76,
                    90,
                    53,
                    75,
                    73,
                    69,
                    77,
                    49,
                    32,
                    53,
                    62,
                    71,
                    54,
                    27,
                    0,
                    65,
                    58,
                    93,
                    50,
                    17,
                    30,
                    50,
                    86,
                    44,
                    85,
                    83,
                    73,
                    88,
                    95,
                    73,
                    91
                ]
            },
            "night_price_histogram": {
                "average_price": 150.26666666666668,
                "histogram": [
                    95,
                    109,
                    105,
                    91,
                    293,
                    95,
                    98,
                    122,
                    106,
                    132,
                    197,
                    85,
                    180,
                    93,
                    135,
                    230,
                    67,
                    301,
                    243,
                    95,
                    77,
                    147,
                    278,
                    94,
                    245,
                    179,
                    166,
                    128,
                    109,
                    144,
                    92,
                    65,
                    96,
                    71,
                    108,
                    72,
                    198,
                    226,
                    235,
                    231,
                    167,
                    238,
                    545,
                    95,
                    76,
                    89,
                    98,
                    117,
                    143,
                    303,
                    116,
                    114,
                    205,
                    109,
                    87,
                    130,
                    122,
                    94,
                    135,
                    200
                ]
            },
            "rental_income_histogram": {
                "average_rental_income": 2699.9,
                "histogram": [
                    665,
                    713,
                    3179,
                    2308,
                    6686,
                    2435,
                    2806,
                    2839,
                    2457,
                    2604,
                    3605,
                    1863,
                    540,
                    2071,
                    1841,
                    3701,
                    1511,
                    5363,
                    4109,
                    397,
                    2066,
                    3381,
                    3568,
                    2585,
                    4299,
                    3606,
                    4851,
                    2863,
                    2061,
                    3325,
                    2515,
                    1047,
                    2179,
                    1581,
                    2246,
                    1670,
                    2911,
                    2228,
                    3838,
                    4389,
                    3637,
                    3914,
                    4428,
                    0,
                    1501,
                    1587,
                    2777,
                    1775,
                    763,
                    2803,
                    1763,
                    2993,
                    2768,
                    2824,
                    2199,
                    2893,
                    3250,
                    2726,
                    2982,
                    5509
                ]
            },
            "listings_ids": [
                "10091952",
                "10130714",
                "10337903",
                "11606890",
                "13292266",
                "13586511",
                "13600955",
                "13716877",
                "13910936",
                "14712502",
                "16262529",
                "17000038",
                "17094877",
                "17164542",
                "17408114",
                "17642407",
                "17788570",
                "17996526",
                "18240831",
                "18624311",
                "18716083",
                "18889885",
                "21755300",
                "21937079",
                "22019979",
                "22504999",
                "24517691",
                "24694748",
                "25738917",
                "25970489",
                "26715469",
                "27049904",
                "27901098",
                "28606355",
                "29100817",
                "29921190",
                "30133810",
                "31496383",
                "32643136",
                "32892977",
                "33092851",
                "33338746",
                "33499868",
                "33606395",
                "33663979",
                "34515878",
                "35287663",
                "35343401",
                "35810250",
                "36768569",
                "37092132",
                "37365584",
                "37565110",
                "4823654",
                "590936",
                "594777",
                "636629",
                "7019957",
                "8174638",
                "839546"
            ]
        }
    }
    

    Get a summary an overview for a specific location: city, zip code, or a neighborhood.

    HTTP Request

    GET https://api.mashvisor.com/v1.1/client/airbnb-property/market-summary

    Request Headers

    Parameter Value
    x-api-key User Authentication Header

    Query Parameters

    Parameter Value Default Description
    state* String The state should be provided to the api or api will throw error 404.
    city String A specific city you're looking for.
    neighborhood Long Neighborhood id you're targeting
    zip_code Integer Any postal zip code.

    Get Airbnb Occupancy Rates

    For each Airbnb listing, we calculate its occupancy rate, month per month, and an annual rate, and we offer our clients a 12-month historical performance for the occupancy rates. We store each listing’s bookings and calendar since the day the listing became active over AirBnB.
    We have access to a day per day performance, nightly price, and if the property was available for booking or not. So for each month, we check day over day if it was booked or not, and how much the host made off that booking, whether it was a one night booking, or a booking for a few nights in a row.
    Sometimes, a host makes the listing calendar look like it’s occupied and not available for booking, even though it is not booked by a guest. Generally speaking, this might cause inaccurate calculations for the occupancy rates and the listing rental rate. At Mashvisor, we have identified this issue and solved it by the continuous hard working cycle over cycle over the past 4 years to enhance how we calculate the occupancy and to verify if a night was really booked or only blocked by the host from booking.
    We also calculate the nightly price rate based on the nights that were actually booked. We calculate the nightly price as the average of all booked nights in a month.
    Also, when Mashvisor sees a month is almost fully booked, we review the month’s reviews and compare it to the number of bookings. This guarantees the bookings are real and the data and calculation we made are right. If the validation fails, we don’t consider the month’s bookings.
    Finally, the listing’s occupancy rate is calculated as the average (mean) occupancy rate of the previous 12 months’ occupancies to make sure that seasonality is considered in the analysis.

    OkHttpClient client = new OkHttpClient();
    
    Request request = new Request.Builder()
      .url("https://api.mashvisor.com/v1.1/client/airbnb-property/occupancy-rates?state=CA&city=San%20Francisco")
      .get()
      .addHeader("x-api-key", "YOUR_API_KEY")
      .build();
    
    Response response = client.newCall(request).execute();
    
    require 'uri'
    require 'net/http'
    
    url = URI("https://api.mashvisor.com/v1.1/client/airbnb-property/occupancy-rates?state=CA&city=San%20Francisco")
    
    http = Net::HTTP.new(url.host, url.port)
    
    request = Net::HTTP::Get.new(url)
    request["x-api-key"] = 'YOUR_API_KEY'
    
    response = http.request(request)
    puts response.read_body
    
    <?php
    
    $request = new HttpRequest();
    $request->setUrl('https://api.mashvisor.com/v1.1/client/airbnb-property/occupancy-rates');
    $request->setMethod(HTTP_METH_GET);
    
    $request->setQueryData(array(
      'state' => 'CA',
      'city' => 'San%20Francisco'
    ));
    
    try {
      $response = $request->send();
    
      echo json_decode($response->getBody());
    } catch (HttpException $ex) {
      echo $ex;
    }
    
    package main
    
    import (
        "fmt"
        "net/http"
        "io/ioutil"
    )
    
    func main() {
    
        url := "https://api.mashvisor.com/v1.1/client/airbnb-property/occupancy-rates?state=CA&city=San%20Francisco"
    
      req, _ := http.NewRequest("GET", url, nil)
    
      req.Header.Add("x-api-key", "YOUR_API_KEY")
    
        res, _ := http.DefaultClient.Do(req)
    
        defer res.Body.Close()
        body, _ := ioutil.ReadAll(res.Body)
    
        fmt.Println(res)
        fmt.Println(string(body))
    
    }
    

    The above command returns JSON structured like this:

    {
        "status": "success",
        "content": {
            "occupancy_rates": {
                "studio": 84,
                "one_bedroom": 73.5,
                "two_bedrooms": 67.5,
                "three_bedrooms": 60,
                "four_bedrooms": 54
            },
            "sample_count": 60,
            "detailed": {
                "studio_occupancies_histogram": [
                    53,
                    73,
                    75,
                    84,
                    88,
                    90,
                    95
                ],
                "one_bedroom_histogram": [
                    14,
                    22,
                    50,
                    58,
                    62,
                    65,
                    72,
                    73,
                    73,
                    74,
                    76,
                    77,
                    83,
                    84,
                    90,
                    93,
                    94,
                    100
                ],
                "two_bedrooms_histogram": [
                    10,
                    17,
                    23,
                    27,
                    45,
                    49,
                    65,
                    66,
                    69,
                    73,
                    76,
                    76,
                    77,
                    85,
                    86,
                    96
                ],
                "three_bedrooms_histogram": [
                    32,
                    50,
                    59,
                    60,
                    71,
                    74,
                    91
                ],
                "four_bedrooms_histogram": [
                    42,
                    44,
                    53,
                    53,
                    54,
                    56,
                    58,
                    62,
                    88
                ]
            }
        }
    }
    

    Market occupancy rates for a zip code or a neighborhood.

    HTTP Request

    GET https://api.mashvisor.com/v1.1/client/airbnb-property/occupancy-rates

    Request Headers

    Parameter Value
    x-api-key User Authentication Header

    Query Parameters

    Parameter Value Default Description
    state* String The state should be provided to the api or api will throw error 404.
    city String A specific city you're looking for.
    neighborhood Long Neighborhood id you're targeting
    zip_code Integer Any postal zip code.

    Get Property Types

    Sample Request

    OkHttpClient client = new OkHttpClient();
    
    Request request = new Request.Builder()
      .url("https://api.mashvisor.com/v1.1/client/airbnb-property/property-types?state=CA&city=San%20Francisco")
      .get()
      .addHeader("x-api-key", "YOUR_API_KEY")
      .build();
    
    Response response = client.newCall(request).execute();
    
    require 'uri'
    require 'net/http'
    
    url = URI("https://api.mashvisor.com/v1.1/client/airbnb-property/property-types?state=CA&city=San%20Francisco")
    
    http = Net::HTTP.new(url.host, url.port)
    
    request = Net::HTTP::Get.new(url)
    request["x-api-key"] = 'YOUR_API_KEY'
    
    response = http.request(request)
    puts response.read_body
    
    <?php
    
    $request = new HttpRequest();
    $request->setUrl('https://api.mashvisor.com/v1.1/client/airbnb-property/property-types');
    $request->setMethod(HTTP_METH_GET);
    
    $request->setQueryData(array(
      'state' => 'CA',
      'city' => 'San%20Francisco'
    ));
    
    try {
      $response = $request->send();
    
      echo json_decode($response->getBody());
    } catch (HttpException $ex) {
      echo $ex;
    }
    
    package main
    
    import (
        "fmt"
        "net/http"
        "io/ioutil"
    )
    
    func main() {
    
        url := "https://api.mashvisor.com/v1.1/client/airbnb-property/property-types?state=CA&city=San%20Francisco"
    
      req, _ := http.NewRequest("GET", url, nil)
    
      req.Header.Add("x-api-key", "YOUR_API_KEY")
    
        res, _ := http.DefaultClient.Do(req)
    
        defer res.Body.Close()
        body, _ := ioutil.ReadAll(res.Body)
    
        fmt.Println(res)
        fmt.Println(string(body))
    
    }
    

    The above command returns JSON structured like this:

    {
      "status": "success",
      "content": {
        "Apartment": 3234,
        "Barn": 1,
        "Bungalow": 189,
        "Cabin": 12,
        "Chalet": 2,
        "Condominium": 304,
        "Cottage": 32,
        "Dome house": 2,
        "Guest suite": 552,
        "Guesthouse": 915,
        "House": 1379,
        "Loft": 271,
        "Other": 8,
        "Serviced apartment": 44,
        "Tiny house": 15,
        "Townhouse": 104,
        "Villa": 51
      }
    }
    

    Check all market property types for a zip code or a neighborhood and return their counts.

    Available Property Types:

    HTTP Request

    GET https://api.mashvisor.com/v1.1/client/airbnb-property/property-types

    Request Headers

    Parameter Value
    x-api-key User Authentication Header

    Query Parameters

    Parameter Value Default Description
    state* String The state should be provided to the api or api will throw error 404.
    city String A specific city you're looking for.
    neighborhood Long Neighborhood id you're targeting
    zip_code Integer Any postal zip code.

    Get Super Hosts

    Sample Request

    OkHttpClient client = new OkHttpClient();
    
    Request request = new Request.Builder()
      .url("https://api.mashvisor.com/v1.1/client/airbnb-property/super-hosts?state=CA&city=San%20Francisco")
      .get()
      .addHeader("x-api-key", "YOUR_API_KEY")
      .build();
    
    Response response = client.newCall(request).execute();
    
    require 'uri'
    require 'net/http'
    
    url = URI("https://api.mashvisor.com/v1.1/client/airbnb-property/super-hosts?state=CA&city=San%20Francisco")
    
    http = Net::HTTP.new(url.host, url.port)
    
    request = Net::HTTP::Get.new(url)
    request["x-api-key"] = 'YOUR_API_KEY'
    
    response = http.request(request)
    puts response.read_body
    
    <?php
    
    $request = new HttpRequest();
    $request->setUrl('https://api.mashvisor.com/v1.1/client/airbnb-property/super-hosts');
    $request->setMethod(HTTP_METH_GET);
    
    $request->setQueryData(array(
      'state' => 'CA',
      'city' => 'San%20Francisco'
    ));
    
    try {
      $response = $request->send();
    
      echo json_decode($response->getBody());
    } catch (HttpException $ex) {
      echo $ex;
    }
    
    package main
    
    import (
        "fmt"
        "net/http"
        "io/ioutil"
    )
    
    func main() {
    
        url := "https://api.mashvisor.com/v1.1/client/airbnb-property/super-hosts?state=CA&city=San%20Francisco"
    
      req, _ := http.NewRequest("GET", url, nil)
    
      req.Header.Add("x-api-key", "YOUR_API_KEY")
    
        res, _ := http.DefaultClient.Do(req)
    
        defer res.Body.Close()
        body, _ := ioutil.ReadAll(res.Body)
    
        fmt.Println(res)
        fmt.Println(string(body))
    
    }
    

    The above command returns JSON structured like this:

    {
        "status": "success",
        "content": {
            "items_per_page": 10,
            "page": 1,
            "total_pages": 2,
            "total_items": 17,
            "super_hosts": [
                {
                    "first_name": "Marina",
                    "has_profile_pic": true,
                    "id": 9601940,
                    "picture_url": "https://a0.muscache.com/im/pictures/4f72a94e-f421-4183-a90c-9031dbac0ce1.jpg?aki_policy=profile_x_medium",
                    "smart_name": "Marina",
                    "thumbnail_url": "https://a0.muscache.com/im/pictures/4f72a94e-f421-4183-a90c-9031dbac0ce1.jpg?aki_policy=profile_small",
                    "acceptance_rate": "N/A",
                    "created_at": "2013-10-23T21:52:46Z",
                    "identity_verified": false,
                    "is_superhost": true,
                    "picture_large_url": "https://a0.muscache.com/im/pictures/4f72a94e-f421-4183-a90c-9031dbac0ce1.jpg?aki_policy=profile_large",
                    "recommendation_count": 0,
                    "response_rate": "100%",
                    "response_time": "within an hour",
                    "reviewee_count": 13,
                    "thumbnail_medium_url": "https://a0.muscache.com/im/pictures/4f72a94e-f421-4183-a90c-9031dbac0ce1.jpg?aki_policy=profile_medium",
                    "neighborhood": null,
                    "verification_labels": [
                        "Email address",
                        "Phone number",
                        "Reviewed"
                    ],
                    "verifications": [
                        "email",
                        "phone",
                        "reviews"
                    ],
                    "about": "",
                    "friends_count": 0,
                    "has_available_payout_info": true,
                    "identity_mt_verified": false,
                    "identity_v2_verified": false,
                    "is_generated_user": false,
                    "is_trip_host": false,
                    "is_marketplace_cohost": false,
                    "languages": [
                        "Русский"
                    ],
                    "listings_count": 1,
                    "location": "Los Angeles, CA",
                    "recent_recommendation": null,
                    "recent_review": {
                        "review": {
                            "comments": "The host canceled this reservation 47 days before arrival. This is an automated posting.",
                            "created_at": "2018-01-21T02:40:09Z",
                            "id": 228670297,
                            "listing_id": 17651828,
                            "reviewee_id": 9601940,
                            "reviewer": {
                                "user": {
                                    "first_name": "Karen",
                                    "has_profile_pic": true,
                                    "id": 165271662,
                                    "picture_url": "https://a0.muscache.com/im/pictures/user/0ed80885-6dba-411c-b686-34673a92a34b.jpg?aki_policy=profile_x_medium",
                                    "smart_name": "Karen",
                                    "thumbnail_url": "https://a0.muscache.com/im/pictures/user/0ed80885-6dba-411c-b686-34673a92a34b.jpg?aki_policy=profile_small"
                                }
                            },
                            "reviewer_id": 165271662,
                            "role": "guest",
                            "user_flag": null,
                            "reviewee": {
                                "user": {
                                    "first_name": "Marina",
                                    "has_profile_pic": true,
                                    "id": 9601940,
                                    "picture_url": "https://a0.muscache.com/im/pictures/4f72a94e-f421-4183-a90c-9031dbac0ce1.jpg?aki_policy=profile_x_medium",
                                    "smart_name": "Marina",
                                    "thumbnail_url": "https://a0.muscache.com/im/pictures/4f72a94e-f421-4183-a90c-9031dbac0ce1.jpg?aki_policy=profile_small"
                                }
                            },
                            "listing": null
                        }
                    },
                    "school": "California State University, Northridge",
                    "show_travel_for_work": false,
                    "signup_method": 1,
                    "total_listings_count": 2,
                    "user_flag": null,
                    "work": "Boston Scientific"
                },
                ...
            ]
        }
    }
    

    Obtain a list of all market super hosts for a zip code or a city.

    HTTP Request

    GET https://api.mashvisor.com/v1.1/client/airbnb-property/super-hosts

    Request Headers

    Parameter Value
    x-api-key User Authentication Header

    Query Parameters

    Parameter Value Default Description
    state* String The state should be provided to the api or api will throw error 404.
    city String A specific city you're looking for.
    zip_code Integer Any postal zip code.
    page Integer 1 page number.

    Get Top Reviewed Homes

    Sample Request

    OkHttpClient client = new OkHttpClient();
    
    Request request = new Request.Builder()
      .url("https://api.mashvisor.com/v1.1/client/airbnb-property/top-reviewed?state=CA&city=San%20Francisco")
      .get()
      .addHeader("x-api-key", "YOUR_API_KEY")
      .build();
    
    Response response = client.newCall(request).execute();
    
    require 'uri'
    require 'net/http'
    
    url = URI("https://api.mashvisor.com/v1.1/client/airbnb-property/top-reviewed?state=CA&city=San%20Francisco")
    
    http = Net::HTTP.new(url.host, url.port)
    
    request = Net::HTTP::Get.new(url)
    request["x-api-key"] = 'YOUR_API_KEY'
    
    response = http.request(request)
    puts response.read_body
    
    <?php
    
    $request = new HttpRequest();
    $request->setUrl('https://api.mashvisor.com/v1.1/client/airbnb-property/top-reviewed');
    $request->setMethod(HTTP_METH_GET);
    
    $request->setQueryData(array(
      'state' => 'CA',
      'city' => 'San%20Francisco'
    ));
    
    try {
      $response = $request->send();
    
      echo json_decode($response->getBody());
    } catch (HttpException $ex) {
      echo $ex;
    }
    
    package main
    
    import (
        "fmt"
        "net/http"
        "io/ioutil"
    )
    
    func main() {
    
        url := "https://api.mashvisor.com/v1.1/client/airbnb-property/top-reviewed?state=CA&city=San%20Francisco"
    
      req, _ := http.NewRequest("GET", url, nil)
    
      req.Header.Add("x-api-key", "YOUR_API_KEY")
    
        res, _ := http.DefaultClient.Do(req)
    
        defer res.Body.Close()
        body, _ := ioutil.ReadAll(res.Body)
    
        fmt.Println(res)
        fmt.Println(string(body))
    
    }
    

    The above command returns JSON structured like this:

    {
        "status": "success",
        "content": {
            "items_per_page": 10,
            "page": 1,
            "reviews_count_limit": 30,
            "total_pages": 1,
            "total_items": 4,
            "list": [
                {
                    "id": 18076608,
                    "city": "Los Angeles",
                    "picture_url": "https://a0.muscache.com/im/pictures/d59d726f-5f9b-4fd3-80fd-b4c5671bbde6.jpg?aki_policy=large",
                    "thumbnail_url": "https://a0.muscache.com/im/pictures/d59d726f-5f9b-4fd3-80fd-b4c5671bbde6.jpg?aki_policy=small",
                    "medium_url": "https://a0.muscache.com/im/pictures/d59d726f-5f9b-4fd3-80fd-b4c5671bbde6.jpg?aki_policy=medium",
                    "xl_picture_url": "https://a0.muscache.com/im/pictures/d59d726f-5f9b-4fd3-80fd-b4c5671bbde6.jpg?aki_policy=x_large",
                    "user_id": 15564576,
                    "price": 70,
                    "native_currency": "USD",
                    "price_native": 70,
                    "price_formatted": "$70",
                    "lat": 34.21287,
                    "lng": -118.43941,
                    "country": "United States",
                    "name": "PRIVATE ROOM & BATH in LOVELY POOL HOME",
                    "smart_location": "Los Angeles, CA",
                    "has_double_blind_reviews": false,
                    "instant_bookable": false,
                    "bedrooms": 1,
                    "beds": 3,
                    "bathrooms": 1,
                    "market": "Los Angeles",
                    "min_nights": 2,
                    "neighborhood": "Panorama City",
                    "person_capacity": 3,
                    "state": "CA",
                    "zipcode": "91402",
                    "address": "Los Angeles, CA, United States",
                    "country_code": "US",
                    "cancellation_policy": "flexible",
                    "property_type": "House",
                    "reviews_count": 141,
                    "room_type": "Private room",
                    "room_type_category": "private_room",
                    "picture_count": 28,
                    "currency_symbol_left": "$",
                    "currency_symbol_right": null,
                    "bed_type": "Real Bed",
                    "bed_type_category": "real_bed",
                    "require_guest_profile_picture": false,
                    "require_guest_phone_verification": false,
                    "force_mobile_legal_modal": false,
                    "cancel_policy": 3,
                    "check_in_time": 15,
                    "check_out_time": 11,
                    "guests_included": 2,
                    "license": "HSR19-002242",
                    "max_nights": 29,
                    "square_feet": null,
                    "locale": "en",
                    "has_viewed_terms": true,
                    "has_viewed_cleaning": null,
                    "has_agreed_to_legal_terms": true,
                    "has_viewed_ib_perf_dashboard_panel": null,
                    "language": "en",
                    "public_address": "Los Angeles, CA, United States",
                    "map_image_url": "https://maps.googleapis.com/maps/api/staticmap?maptype=roadmap&markers=34.21287%2C-118.43941&size=480x320&zoom=15&client=gme-airbnbinc&channel=monorail-prod&signature=Cv2h-vjyxpdQc3jvu3iUzpgmtZY%3D",
                    "experiences_offered": "none",
                    "max_nights_input_value": 29,
                    "min_nights_input_value": 2,
                    "requires_license": true,
                    "property_type_id": 2,
                    "house_rules": "Smoking is allowed on back patio.\nQuiet time after 11PM",
                    "security_deposit_native": 0,
                    "security_price_native": 0,
                    "security_deposit_formatted": "$0",
                    "description": "Spacious room with private entrance, ergonomic split king bed, luxurious bath w/rain shower. Off-street parking. Peaceful, beautifully landscaped patio/pool area that you'll most often have all to yourself! 15 minutes from Universal Studios, Warner Bros., Studio City (CBS Redford) and NoHo Arts District; 20 from the heart of Hollywood, 30 minutes from LAX and Magic Mountain; 45 minutes to the beach in one direction, an hour-and-fifteen to skiing in the other. 2 cats on premises.\n\nThis large master bedroom with ensuite bath is connected to the house but has a separate entrance and is self-sufficient with a toaster, coffee maker, mini-fridge and microwave. It also has hair dryer, iron, wifi, a 42\" flat screen TV with Netflix and an ergonomic split king bed with separate remote controls that include a massage function. There is a sitting area where you can enjoy your morning coffee and bagels or a late night snack. The daybed also doubles as sleeping area for a 3rd guest (no children under 14 please). The 8' foot sliding glass doors look out on the pool and gardens which you will have to yourself most of the time. Plantation shutters ensure your privacy. There are beach towels, sunscreen and a beach bag in the room for use at the pool or to take on an excursion to the beach.\n\nprivate master bedroom with en suite bath.\nlaundry on request\nback patio\npool\nfront porch\n\nI will be around much of the time to provide you with directions or sightseeing recommendations. If you need anything just ask and, if you don't see me, you can reach me by phone.\n\nI live in the city of Los Angeles, a few blocks north of Van Nuys in the San Fernando Valley. It's quiet and residential but less than a 5-minute drive or 15-minute walk to a wide range of Asian and Latino restaurants. If you prefer American fare and take-out you are equally close to Chipotle, Ono Hawaiin BBQ, Blaze Pizza, Starbucks, TOGO's, Tutti Frutti (frozen yogurt), In-n-Out Burger and Home Town Buffet as well as to the Regency Plant 16 movie theaters.\n\nThere are buses that go along the major cross streets (Roscoe and Van Nuys Boulevard).  One can take a bus to the Orange Line and the Orange Line to the train in North Hollywood. From there you can get to Hollywood or Downtown L.A.  I would opt for Ubering to your destination or at least to the North Hollywood train station. Ubers are quick to pick you up here and much of the time you can share a ride very inexpensively. From the Airport, if you are not renting a car, take Uber or Super Shuttle.  I recommend taking Shuttle2LAX ($20 dollar flat rate - book online) but not FROM the airport as there can be a very long wait.\n\nTwo cats live in my part of the house and have the run of the back and front yard. Please feel free to pet and play with them outside but I ask that you please not bring or let them into the guest room as other guests may be allergic,.",
                    "description_locale": "en",
                    "summary": "Spacious room with private entrance, ergonomic split king bed, luxurious bath w/rain shower. Off-street parking. Peaceful, beautifully landscaped patio/pool area that you'll most often have all to yourself! 15 minutes from Universal Studios, Warner Bros., Studio City (CBS Redford) and NoHo Arts District; 20 from the heart of Hollywood, 30 minutes from LAX and Magic Mountain; 45 minutes to the beach in one direction, an hour-and-fifteen to skiing in the other. 2 cats on premises.",
                    "space": "This large master bedroom with ensuite bath is connected to the house but has a separate entrance and is self-sufficient with a toaster, coffee maker, mini-fridge and microwave. It also has hair dryer, iron, wifi, a 42\" flat screen TV with Netflix and an ergonomic split king bed with separate remote controls that include a massage function. There is a sitting area where you can enjoy your morning coffee and bagels or a late night snack. The daybed also doubles as sleeping area for a 3rd guest (no children under 14 please). The 8' foot sliding glass doors look out on the pool and gardens which you will have to yourself most of the time. Plantation shutters ensure your privacy. There are beach towels, sunscreen and a beach bag in the room for use at the pool or to take on an excursion to the beach.",
                    "access": "private master bedroom with en suite bath.\nlaundry on request\nback patio\npool\nfront porch",
                    "interaction": "I will be around much of the time to provide you with directions or sightseeing recommendations. If you need anything just ask and, if you don't see me, you can reach me by phone.",
                    "neighborhood_overview": "I live in the city of Los Angeles, a few blocks north of Van Nuys in the San Fernando Valley. It's quiet and residential but less than a 5-minute drive or 15-minute walk to a wide range of Asian and Latino restaurants. If you prefer American fare and take-out you are equally close to Chipotle, Ono Hawaiin BBQ, Blaze Pizza, Starbucks, TOGO's, Tutti Frutti (frozen yogurt), In-n-Out Burger and Home Town Buffet as well as to the Regency Plant 16 movie theaters.",
                    "transit": "There are buses that go along the major cross streets (Roscoe and Van Nuys Boulevard).  One can take a bus to the Orange Line and the Orange Line to the train in North Hollywood. From there you can get to Hollywood or Downtown L.A.  I would opt for Ubering to your destination or at least to the North Hollywood train station. Ubers are quick to pick you up here and much of the time you can share a ride very inexpensively. From the Airport, if you are not renting a car, take Uber or Super Shuttle.  I recommend taking Shuttle2LAX ($20 dollar flat rate - book online) but not FROM the airport as there can be a very long wait.",
                    "amenities": [
                        "TV",
                        "Cable TV",
                        "Wifi",
                        "Air conditioning",
                        "Pool",
                        "Pets live on this property",
                        "Cat(s)",
                        "Heating",
                        "Smoke detector",
                        "Essentials",
                        "Shampoo",
                        "Lock on bedroom door",
                        "Hangers",
                        "Hair dryer",
                        "Iron",
                        "translation missing: en.hosting_amenity_49",
                        "translation missing: en.hosting_amenity_50",
                        "Private entrance",
                        "Hot water",
                        "Bed linens",
                        "Extra pillows and blankets",
                        "Microwave",
                        "Coffee maker",
                        "Refrigerator",
                        "Dishes and silverware",
                        "Single level home",
                        "BBQ grill",
                        "Patio or balcony",
                        "Garden or backyard",
                        "Luggage dropoff allowed",
                        "Wide hallways",
                        "No stairs or steps to enter",
                        "Wide entrance for guests",
                        "Flat path to guest entrance",
                        "Well-lit path to entrance",
                        "Disabled parking spot"
                    ],
                    "is_location_exact": true,
                    "cancel_policy_short_str": "Flexible",
                    "star_rating": 5,
                    "price_for_extra_person_native": 15,
                    "weekly_price_native": null,
                    "monthly_price_native": null,
                    "time_zone_name": "America/Los_Angeles",
                    "loc": {
                        "type": "Point",
                        "coordinates": [
                            -118.43941,
                            34.21287
                        ]
                    },
                    "exists": true,
                    "created_at": "2017-05-20T10:40:32.208Z",
                    "updated_at": "2019-11-09T10:19:55.288Z",
                    "cleaning_fee_native": 35,
                    "extras_price_native": 35,
                    "in_building": false,
                    "in_toto_area": false,
                    "instant_book_enabled": true,
                    "is_business_travel_ready": false,
                    "listing_cleaning_fee_native": 35,
                    "listing_monthly_price_native": null,
                    "listing_price_for_extra_person_native": 15,
                    "listing_weekend_price_native": 69,
                    "listing_weekly_price_native": null,
                    "localized_city": "Los Angeles",
                    "special_offer": null,
                    "toto_opt_in": null,
                    "weekly_price_factor": 0.95,
                    "wireless_info": null,
                    "host_id": 15564576,
                    "airbnb_id": 18076608
                },
                {
                    "id": 13577446,
                    "city": "Los Angeles",
                    "picture_url": "https://a0.muscache.com/im/pictures/2ae7683a-a3c2-4ece-b5fe-fea01dc1f112.jpg?aki_policy=large",
                    "thumbnail_url": "https://a0.muscache.com/im/pictures/2ae7683a-a3c2-4ece-b5fe-fea01dc1f112.jpg?aki_policy=small",
                    "medium_url": "https://a0.muscache.com/im/pictures/2ae7683a-a3c2-4ece-b5fe-fea01dc1f112.jpg?aki_policy=medium",
                    "xl_picture_url": "https://a0.muscache.com/im/pictures/2ae7683a-a3c2-4ece-b5fe-fea01dc1f112.jpg?aki_policy=x_large",
                    "user_id": 9140511,
                    "price": 13,
                    "native_currency": "USD",
                    "price_native": 13,
                    "price_formatted": "$13",
                    "lat": 34.235966829380835,
                    "lng": -118.45276089852146,
                    "country": "United States",
                    "name": "Shared space for Budget Savvy Travelers",
                    "smart_location": "Los Angeles, CA",
                    "has_double_blind_reviews": false,
                    "instant_bookable": true,
                    "bedrooms": 1,
                    "beds": 1,
                    "bathrooms": 1,
                    "market": "Los Angeles",
                    "min_nights": 1,
                    "neighborhood": "Panorama City",
                    "person_capacity": 2,
                    "state": "CA",
                    "zipcode": "91402",
                    "address": "Los Angeles, CA, United States",
                    "country_code": "US",
                    "cancellation_policy": "strict",
                    "property_type": "Apartment",
                    "reviews_count": 57,
                    "room_type": "Shared room",
                    "room_type_category": "shared_room",
                    "picture_count": 7,
                    "currency_symbol_left": "$",
                    "currency_symbol_right": null,
                    "bed_type": "Airbed",
                    "bed_type_category": "airbed",
                    "require_guest_profile_picture": false,
                    "require_guest_phone_verification": false,
                    "force_mobile_legal_modal": false,
                    "cancel_policy": 5,
                    "check_in_time": 17,
                    "check_out_time": 10,
                    "guests_included": 1,
                    "license": null,
                    "max_nights": 1125,
                    "square_feet": null,
                    "locale": "en",
                    "has_viewed_terms": true,
                    "has_viewed_cleaning": null,
                    "has_agreed_to_legal_terms": true,
                    "has_viewed_ib_perf_dashboard_panel": null,
                    "language": "en",
                    "public_address": "Los Angeles, CA, United States",
                    "map_image_url": "https://maps.googleapis.com/maps/api/staticmap?maptype=roadmap&markers=34.235966829380835%2C-118.45276089852146&size=480x320&zoom=15&client=gme-airbnbinc&channel=monorail-prod&signature=ZWjg5piYc7JT7eOjxI3wlOrhoyo%3D",
                    "experiences_offered": "none",
                    "max_nights_input_value": 1125,
                    "min_nights_input_value": 1,
                    "requires_license": false,
                    "property_type_id": 1,
                    "house_rules": "This listing is located in the living room and near the kitchen area. Some guests might wake up early and will be using some stuff in the kitchen. If this does not bother you, then my place will be a good place for you to save. \n\nMy place is always cozy and clean and I require all my guests to take off their shoes upon entering. You can place your shoes in the closet near the entrance.",
                    "security_deposit_native": null,
                    "security_price_native": null,
                    "security_deposit_formatted": "",
                    "description": "A Full Airbed for 2 guests or a Twin Airbed for 1 guest will be pumped in the living room.\n\nParking is free but you need to coordinate your arrival/schedule with me since it is a tandem parking. \n\nPlease note that this is a shared space, not a private room. This is an ideal place for travelers who will be out exploring the city during the day.\n\nThe listing is located in the living room, near the kitchen area. \n\nThere is no privacy in this listing, but my roommate, my mom  and I are very respectful, so expect a quiet time after 9 pm. \n\nSince this listing is a shared space, you would expect me and/or my mom to use the kitchen.\n\nGuests have Full access to the kitchen and the fridge.\n\nFeel free to cook your own meal.\n\nI love to interact with guests. I usually provide tips for travelers and having good conversation at all times. I am very open-minded.\n\nMy place is near a bus stop.\nWalmart and other restaurants are also close to my place.\n\nThere is a bus stop nearby. My place is in the Valley area of Los Angeles.\n\nRenting a car or ridesharing is the best way to go around the city of LA.\n\nYou can use the following codes for ride credits:\n\nUber free ride - $15 use this code: v79p5 \nLyft free ride - $50 use this code: JOSEPH847061\n\nThe guest is required to take off his/her shoes when inside the apartment. There is a closet in the entrance that can be used to place the shoes.\n\nAirconditioner is set at 70° Fahrenheit. If this is too warm, extra fan is available. If too cold, extra blankets is also available to use. Please do not hesitate to request.",
                    "description_locale": "en",
                    "summary": "A Full Airbed for 2 guests or a Twin Airbed for 1 guest will be pumped in the living room.\n\nParking is free but you need to coordinate your arrival/schedule with me since it is a tandem parking. \n\nPlease note that this is a shared space, not a private room. This is an ideal place for travelers who will be out exploring the city during the day.",
                    "space": "The listing is located in the living room, near the kitchen area. \n\nThere is no privacy in this listing, but my roommate, my mom  and I are very respectful, so expect a quiet time after 9 pm. \n\nSince this listing is a shared space, you would expect me and/or my mom to use the kitchen.",
                    "access": "Guests have Full access to the kitchen and the fridge.\n\nFeel free to cook your own meal.",
                    "interaction": "I love to interact with guests. I usually provide tips for travelers and having good conversation at all times. I am very open-minded.",
                    "neighborhood_overview": "My place is near a bus stop.\nWalmart and other restaurants are also close to my place.",
                    "transit": "There is a bus stop nearby. My place is in the Valley area of Los Angeles.\n\nRenting a car or ridesharing is the best way to go around the city of LA.\n\nYou can use the following codes for ride credits:\n\nUber free ride - $15 use this code: v79p5 \nLyft free ride - $50 use this code: JOSEPH847061",
                    "amenities": [
                        "TV",
                        "Internet",
                        "Wifi",
                        "Air conditioning",
                        "Kitchen",
                        "Free parking on premises",
                        "Heating",
                        "Family/kid friendly",
                        "Smoke detector",
                        "Carbon monoxide detector",
                        "Essentials",
                        "Shampoo",
                        "24-hour check-in",
                        "Iron",
                        "Hot water",
                        "Bed linens",
                        "Extra pillows and blankets",
                        "Microwave",
                        "Coffee maker",
                        "Refrigerator",
                        "Cooking basics",
                        "Oven",
                        "Stove",
                        "Other",
                        "Air purifier"
                    ],
                    "is_location_exact": false,
                    "cancel_policy_short_str": "Strict",
                    "star_rating": 5,
                    "price_for_extra_person_native": 10,
                    "weekly_price_native": null,
                    "monthly_price_native": null,
                    "time_zone_name": "America/Los_Angeles",
                    "loc": {
                        "type": "Point",
                        "coordinates": [
                            -118.45276089852146,
                            34.235966829380835
                        ]
                    },
                    "exists": false,
                    "created_at": "2016-08-22T09:07:19.497Z",
                    "updated_at": "2018-04-02T03:58:13.711Z",
                    "host_id": 9140511,
                    "airbnb_id": 13577446
                },
                {
                    "id": 23843196,
                    "city": "Los Angeles",
                    "picture_url": "https://a0.muscache.com/im/pictures/fac6c2d9-f9c3-48a7-aa3d-369a047c3503.jpg?aki_policy=large",
                    "thumbnail_url": "https://a0.muscache.com/im/pictures/fac6c2d9-f9c3-48a7-aa3d-369a047c3503.jpg?aki_policy=small",
                    "medium_url": "https://a0.muscache.com/im/pictures/fac6c2d9-f9c3-48a7-aa3d-369a047c3503.jpg?aki_policy=medium",
                    "xl_picture_url": "https://a0.muscache.com/im/pictures/fac6c2d9-f9c3-48a7-aa3d-369a047c3503.jpg?aki_policy=x_large",
                    "user_id": 179050983,
                    "price": 70,
                    "native_currency": "USD",
                    "price_native": 70,
                    "price_formatted": "$70",
                    "lat": 34.22445,
                    "lng": -118.44581,
                    "country": "United States",
                    "name": "Garage converted to Guesthouse in the Valley",
                    "smart_location": "Los Angeles, CA",
                    "has_double_blind_reviews": false,
                    "instant_bookable": true,
                    "bedrooms": 1,
                    "beds": 1,
                    "bathrooms": 1,
                    "market": "Los Angeles",
                    "min_nights": 2,
                    "neighborhood": "Panorama City",
                    "person_capacity": 3,
                    "state": "CA",
                    "zipcode": "91402",
                    "address": "Los Angeles, CA, United States",
                    "country_code": "US",
                    "cancellation_policy": "flexible",
                    "property_type": "Guest suite",
                    "reviews_count": 57,
                    "room_type": "Entire home/apt",
                    "room_type_category": "entire_home",
                    "picture_count": 23,
                    "currency_symbol_left": "$",
                    "currency_symbol_right": null,
                    "bed_type": "Real Bed",
                    "bed_type_category": "real_bed",
                    "require_guest_profile_picture": false,
                    "require_guest_phone_verification": false,
                    "force_mobile_legal_modal": false,
                    "cancel_policy": 3,
                    "check_in_time": 15,
                    "check_out_time": 10,
                    "guests_included": 1,
                    "license": null,
                    "max_nights": 30,
                    "square_feet": null,
                    "locale": "en",
                    "has_viewed_terms": null,
                    "has_viewed_cleaning": null,
                    "has_agreed_to_legal_terms": true,
                    "has_viewed_ib_perf_dashboard_panel": null,
                    "language": "en",
                    "public_address": "Los Angeles, CA, United States",
                    "map_image_url": "https://maps.googleapis.com/maps/api/staticmap?maptype=roadmap&markers=34.22445%2C-118.44581&size=480x320&zoom=15&client=gme-airbnbinc&channel=monorail-prod&signature=L3Qj5-ZWhbPbx3wZw8xXfPSEdks%3D",
                    "experiences_offered": "none",
                    "max_nights_input_value": 30,
                    "min_nights_input_value": 2,
                    "requires_license": false,
                    "property_type_id": 53,
                    "house_rules": "1. Be aware that utilities are not included in my rent, so please be considerate and turn off lights when not being used / short shower times / make sure TV is off when not in use / always turn off air conditioner when not in use or not in the residence.\n\n2. Clean up is not mandatory but appreciated\n\n3. Lock the door when not in residence",
                    "security_deposit_native": 100,
                    "security_price_native": 100,
                    "security_deposit_formatted": "$100",
                    "description": "Newly remodeled Cozy guest house in a quiet neighborhood. Parking available on the driveway, walking distance to mall, restaurants, bank, shops, and much more.\n\nGuest House has one bedroom with TV equip with Amazon fire stick( Netflix, Amazon video, etc..) Fast speed wireless internet with access to one Ethernet port (100mbps). Queen size bed in bedroom and twin size futon in living room area. \n\nWill have access to the whole kitchen with appliances, cookware, flatware and dishware (Supermarket is walking distance).\n\nIt is small but you will have your privacy without nobody bothering you. Will be next door if you need anything,\n\nHouse is just 15 minutes from Universal Studios, 20 from Hollywood, and 25 minutes from Downtown LA. (driving distance)\n\nSanta Monica and Venice Beach are 30 minuted away. (driving distance)\n\nThere is much more things to do so feel free to ask us for any suggestions.\n\nPlease be mindful in regards of the electricity, if you are not home please turn off the AC and lights.",
                    "description_locale": "en",
                    "summary": "Newly remodeled Cozy guest house in a quiet neighborhood. Parking available on the driveway, walking distance to mall, restaurants, bank, shops, and much more.",
                    "space": "Guest House has one bedroom with TV equip with Amazon fire stick( Netflix, Amazon video, etc..) Fast speed wireless internet with access to one Ethernet port (100mbps). Queen size bed in bedroom and twin size futon in living room area. \n\nWill have access to the whole kitchen with appliances, cookware, flatware and dishware (Supermarket is walking distance).\n\nIt is small but you will have your privacy without nobody bothering you. Will be next door if you need anything,",
                    "access": "",
                    "interaction": "",
                    "neighborhood_overview": "",
                    "transit": "House is just 15 minutes from Universal Studios, 20 from Hollywood, and 25 minutes from Downtown LA. (driving distance)\n\nSanta Monica and Venice Beach are 30 minuted away. (driving distance)\n\nThere is much more things to do so feel free to ask us for any suggestions.",
                    "amenities": [
                        "TV",
                        "Wifi",
                        "Air conditioning",
                        "Kitchen",
                        "Free parking on premises",
                        "Free street parking",
                        "Heating",
                        "Family/kid friendly",
                        "Smoke detector",
                        "Carbon monoxide detector",
                        "First aid kit",
                        "Essentials",
                        "Shampoo",
                        "Lock on bedroom door",
                        "Hangers",
                        "Hair dryer",
                        "Iron",
                        "Laptop friendly workspace",
                        "Self check-in",
                        "Smart lock",
                        "Private entrance",
                        "Hot water",
                        "Microwave",
                        "Coffee maker",
                        "Refrigerator",
                        "Dishes and silverware",
                        "Cooking basics",
                        "Oven",
                        "Stove"
                    ],
                    "is_location_exact": true,
                    "cancel_policy_short_str": "Flexible",
                    "star_rating": 5,
                    "price_for_extra_person_native": 0,
                    "weekly_price_native": null,
                    "monthly_price_native": null,
                    "time_zone_name": "America/Los_Angeles",
                    "loc": {
                        "type": "Point",
                        "coordinates": [
                            -118.44581,
                            34.22445
                        ]
                    },
                    "exists": false,
                    "created_at": "2018-04-02T03:50:06.933Z",
                    "updated_at": "2019-03-10T18:43:17.227Z",
                    "host_id": 179050983,
                    "airbnb_id": 23843196
                },
                {
                    "id": 24141681,
                    "city": "Los Angeles",
                    "picture_url": "https://a0.muscache.com/im/pictures/acfb37cb-f737-47e2-af4f-305cac651b6f.jpg?aki_policy=large",
                    "thumbnail_url": "https://a0.muscache.com/im/pictures/acfb37cb-f737-47e2-af4f-305cac651b6f.jpg?aki_policy=small",
                    "medium_url": "https://a0.muscache.com/im/pictures/acfb37cb-f737-47e2-af4f-305cac651b6f.jpg?aki_policy=medium",
                    "xl_picture_url": "https://a0.muscache.com/im/pictures/acfb37cb-f737-47e2-af4f-305cac651b6f.jpg?aki_policy=x_large",
                    "user_id": 83397726,
                    "price": 169,
                    "native_currency": "USD",
                    "price_native": 169,
                    "price_formatted": "$169",
                    "lat": 34.22173,
                    "lng": -118.46776,
                    "country": "United States",
                    "name": "Garden Oasis near Universal Studios- Sleeps 6",
                    "smart_location": "Los Angeles, CA",
                    "has_double_blind_reviews": false,
                    "instant_bookable": true,
                    "bedrooms": 3,
                    "beds": 3,
                    "bathrooms": 2,
                    "market": "Los Angeles",
                    "min_nights": 3,
                    "neighborhood": "North Hills East",
                    "person_capacity": 6,
                    "state": "CA",
                    "zipcode": "91402",
                    "address": "Los Angeles, CA, United States",
                    "country_code": "US",
                    "cancellation_policy": "strict_14_with_grace_period",
                    "property_type": "Townhouse",
                    "reviews_count": 33,
                    "room_type": "Entire home/apt",
                    "room_type_category": "entire_home",
                    "picture_count": 22,
                    "currency_symbol_left": "$",
                    "currency_symbol_right": null,
                    "bed_type": "Real Bed",
                    "bed_type_category": "real_bed",
                    "require_guest_profile_picture": false,
                    "require_guest_phone_verification": false,
                    "force_mobile_legal_modal": false,
                    "cancel_policy": 44,
                    "check_in_time": 16,
                    "check_out_time": 10,
                    "guests_included": 6,
                    "license": null,
                    "max_nights": 1125,
                    "square_feet": null,
                    "locale": "en",
                    "has_viewed_terms": null,
                    "has_viewed_cleaning": null,
                    "has_agreed_to_legal_terms": true,
                    "has_viewed_ib_perf_dashboard_panel": null,
                    "language": "en",
                    "public_address": "Los Angeles, CA, United States",
                    "map_image_url": "https://maps.googleapis.com/maps/api/staticmap?maptype=roadmap&markers=34.22173%2C-118.46776&size=480x320&zoom=15&client=gme-airbnbinc&channel=monorail-prod&signature=JcDSRJZJ753zLLpH1Po0AdpzARA%3D",
                    "experiences_offered": "none",
                    "max_nights_input_value": 1125,
                    "min_nights_input_value": 3,
                    "requires_license": true,
                    "property_type_id": 36,
                    "house_rules": "- - QUIET HOURS 10pm to 9am!  - No loud music or boomboxes at any time!  - Guests are responsible for any fines or penalties for disturbances. Any report from the neighbors of disturbing the peace will be cause for immediate termination of guest privileges and cause for immediate eviction without refund (Website hidden by Airbnb) Guests must inform host of their purpose of travel and the number of people in their group. Guests must provide full name and copy of government issued ID to the host directly so that there is no doubt as to who is booking. Thank you. - - Rates are subject to changed until reservation is confirmed.    SAFETY CONCERNS We will not be responsible for any injuries on the property, regardless of extent by use, or misuse. As a guest you agree to hold the property owners, and or management harmless from any legal action associated with your stay, by all occupants. In staying with us, you agree to use and stay in the home at your own risk.  Upon requesting a reservation you agree to all the rules and terms set forth and agree to pay for any damages, and or excessive cleaning discovered. You agree to notify me of anything that needs attention, or any problems you encounter right away. You agree to be financially responsible if any of these rules are broken, keys are lost, or utilities are abused. You certify that you are at least 23 years of age.   YOUR BELONGINGS Everything you bring into this home is your responsibility to manage, track, and store. This includes luggage, clothes, toiletries, towels, and food. Please keep track of your personal effects. Always double check before you depart, in order to ensure you have taken all of your belongings with you.\n- This property is intended for Family or Corporate type rentals. No large parties or large events are allowed. Loud noise and loud music are not allowed outside. Outside quite hours are between 10pm-9am when nothing louder than speaking voice is allowed. Please respect the neighbors.  \n- Absolutely no smoking inside. Smoking is allowed in the back yard only when all doors and windows are closed. Breaking this rule may result in up to a $1000 cleaning fee.",
                    "security_deposit_native": 300,
                    "security_price_native": 300,
                    "security_deposit_formatted": "$300",
                    "description": "Beautiful private 3 bedroom in the heart of LA! Entertain your loved ones in comfort and splendor while enjoying all the wonders LA has to offer. From a wonderful kitchen and living area to a gorgeous backyard grill and outdoor dining to the pool table room, this home has it all! Not to mention it is close to many LA attractions including Universal Studios! Come make this your new home away from home in the City of Angels!\n\nLovely gardens with seating areas in front and back. TVs in two of the bedrooms. Armenian grill as well as a regular gas grill.\n\nEntire house except locked den area and the separate guest house on property. Tenant lives in the guests house that has its own private entrance separate from the main house entrance. Do not block the side entrance for our tenant with cars or trash cans!\n\nWe value our guests privacy while always being available.",
                    "description_locale": "en",
                    "summary": "Beautiful private 3 bedroom in the heart of LA! Entertain your loved ones in comfort and splendor while enjoying all the wonders LA has to offer. From a wonderful kitchen and living area to a gorgeous backyard grill and outdoor dining to the pool table room, this home has it all! Not to mention it is close to many LA attractions including Universal Studios! Come make this your new home away from home in the City of Angels!",
                    "space": "Lovely gardens with seating areas in front and back. TVs in two of the bedrooms. Armenian grill as well as a regular gas grill.",
                    "access": "Entire house except locked den area and the separate guest house on property. Tenant lives in the guests house that has its own private entrance separate from the main house entrance. Do not block the side entrance for our tenant with cars or trash cans!",
                    "interaction": "We value our guests privacy while always being available.",
                    "neighborhood_overview": "",
                    "transit": "",
                    "amenities": [
                        "TV",
                        "Internet",
                        "Wifi",
                        "Air conditioning",
                        "Kitchen",
                        "Free parking on premises",
                        "Heating",
                        "Family/kid friendly",
                        "Washer",
                        "Dryer",
                        "Smoke detector",
                        "Carbon monoxide detector",
                        "First aid kit",
                        "Safety card",
                        "Fire extinguisher",
                        "Essentials",
                        "Shampoo",
                        "Lock on bedroom door",
                        "Hangers",
                        "Hair dryer",
                        "Iron",
                        "Laptop friendly workspace",
                        "Self check-in",
                        "Lockbox",
                        "Private entrance",
                        "Hot water"
                    ],
                    "is_location_exact": true,
                    "cancel_policy_short_str": "Strict (grace period)",
                    "star_rating": 5,
                    "price_for_extra_person_native": 10,
                    "weekly_price_native": null,
                    "monthly_price_native": null,
                    "time_zone_name": "America/Los_Angeles",
                    "loc": {
                        "type": "Point",
                        "coordinates": [
                            -118.46776,
                            34.22173
                        ]
                    },
                    "exists": true,
                    "created_at": "2018-04-06T06:11:14.464Z",
                    "updated_at": "2019-09-16T17:21:38.207Z",
                    "host_id": 83397726,
                    "airbnb_id": 24141681
                }
            ]
        }
    }
    

    List all short term rentals of top reviewed and most counts of reviews for a specific location: city, or a zip code.

    HTTP Request

    GET https://api.mashvisor.com/v1.1/client/airbnb-property/top-reviewed

    Request Headers

    Parameter Value
    x-api-key User Authentication Header

    Query Parameters

    Parameter Value Default Description
    state* String The state should be provided to the api or api will throw error 404.
    city String A specific city you're looking for.
    zip_code Integer Any postal zip code.
    reviews_count Integer 30 Any valid integer to fetch listings counts more than the number.
    page Integer 1 page number.

    Get Newly Listed Homes

    Sample Request

    OkHttpClient client = new OkHttpClient();
    
    Request request = new Request.Builder()
      .url("https://api.mashvisor.com/v1.1/client/airbnb-property/newly-listed?state=CA&city=San%20Francisco")
      .get()
      .addHeader("x-api-key", "YOUR_API_KEY")
      .build();
    
    Response response = client.newCall(request).execute();
    
    require 'uri'
    require 'net/http'
    
    url = URI("https://api.mashvisor.com/v1.1/client/airbnb-property/newly-listed?state=CA&city=San%20Francisco")
    
    http = Net::HTTP.new(url.host, url.port)
    
    request = Net::HTTP::Get.new(url)
    request["x-api-key"] = 'YOUR_API_KEY'
    
    response = http.request(request)
    puts response.read_body
    
    <?php
    
    $request = new HttpRequest();
    $request->setUrl('https://api.mashvisor.com/v1.1/client/airbnb-property/newly-listed');
    $request->setMethod(HTTP_METH_GET);
    
    $request->setQueryData(array(
      'state' => 'CA',
      'city' => 'San%20Francisco'
    ));
    
    try {
      $response = $request->send();
    
      echo json_decode($response->getBody());
    } catch (HttpException $ex) {
      echo $ex;
    }
    
    package main
    
    import (
        "fmt"
        "net/http"
        "io/ioutil"
    )
    
    func main() {
    
        url := "https://api.mashvisor.com/v1.1/client/airbnb-property/newly-listed?state=CA&city=San%20Francisco"
    
      req, _ := http.NewRequest("GET", url, nil)
    
      req.Header.Add("x-api-key", "YOUR_API_KEY")
    
        res, _ := http.DefaultClient.Do(req)
    
        defer res.Body.Close()
        body, _ := ioutil.ReadAll(res.Body)
    
        fmt.Println(res)
        fmt.Println(string(body))
    
    }
    

    The above command returns JSON structured like this:

    {
        "status": "success",
        "content": {
            "items_per_page": 10,
            "page": 1,
            "total_pages": 1,
            "total_items": 3,
            "list": [
                {
                    "id": 39674791,
                    "city": "Los Angeles",
                    "picture_url": "https://a0.muscache.com/im/pictures/f8e527f7-2424-43fe-ab1d-1cab4c0b304d.jpg?aki_policy=large",
                    "thumbnail_url": "https://a0.muscache.com/im/pictures/f8e527f7-2424-43fe-ab1d-1cab4c0b304d.jpg?aki_policy=small",
                    "medium_url": "https://a0.muscache.com/im/pictures/f8e527f7-2424-43fe-ab1d-1cab4c0b304d.jpg?aki_policy=medium",
                    "xl_picture_url": "https://a0.muscache.com/im/pictures/f8e527f7-2424-43fe-ab1d-1cab4c0b304d.jpg?aki_policy=x_large",
                    "user_id": 151399790,
                    "price": 50,
                    "native_currency": "USD",
                    "price_native": 50,
                    "price_formatted": "$50",
                    "lat": 34.24245,
                    "lng": -118.44668,
                    "country": "United States",
                    "name": "Private Bedroom in a Beautiful Town House",
                    "smart_location": "Los Angeles, CA",
                    "has_double_blind_reviews": false,
                    "instant_bookable": false,
                    "bedrooms": 1,
                    "beds": 1,
                    "bathrooms": 1,
                    "market": "Los Angeles",
                    "min_nights": 1,
                    "neighborhood": "Panorama City",
                    "person_capacity": 2,
                    "state": "CA",
                    "zipcode": "91402",
                    "address": "Los Angeles, CA, United States",
                    "country_code": "US",
                    "cancellation_policy": "flexible",
                    "property_type": "Townhouse",
                    "reviews_count": 0,
                    "room_type": "Private room",
                    "room_type_category": "private_room",
                    "picture_count": 12,
                    "currency_symbol_left": "$",
                    "currency_symbol_right": null,
                    "bed_type": "Real Bed",
                    "bed_type_category": "real_bed",
                    "require_guest_profile_picture": false,
                    "require_guest_phone_verification": false,
                    "force_mobile_legal_modal": false,
                    "cancel_policy": 3,
                    "check_in_time": null,
                    "check_out_time": null,
                    "guests_included": 1,
                    "license": null,
                    "max_nights": 7,
                    "square_feet": null,
                    "locale": "en",
                    "has_viewed_terms": null,
                    "has_viewed_cleaning": null,
                    "has_agreed_to_legal_terms": true,
                    "has_viewed_ib_perf_dashboard_panel": null,
                    "language": "en",
                    "public_address": "Los Angeles, CA, United States",
                    "map_image_url": "https://maps.googleapis.com/maps/api/staticmap?maptype=roadmap&markers=34.24245%2C-118.44668&size=480x320&zoom=15&client=gme-airbnbinc&channel=monorail-prod&signature=N0j-sBKpTaw4TroBPWs0EPuyhT0%3D",
                    "experiences_offered": "none",
                    "max_nights_input_value": 7,
                    "min_nights_input_value": 1,
                    "requires_license": true,
                    "property_type_id": 36,
                    "house_rules": "No shoes in the house",
                    "security_deposit_native": 0,
                    "security_price_native": 0,
                    "security_deposit_formatted": "$0",
                    "description": "One private bedroom available with a shared bathroom and one extra restroom downstairs in a big, beautifully designed two-story house.  \n\nParking is available in a safe, gated community.",
                    "description_locale": "en",