> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.propexo.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.propexo.com/_mcp/server.

# Update Unit: Rent Manager

PUT https://api.propexo.com/v1/units/rentmanager/{unit_id}
Content-Type: application/json

Update a unit in Rent Manager. This endpoint supports updating basic unit information, addresses, market rent, floor plan details, marketing data, and building information. Some fields require specific embeds to be enabled in Rent Manager.

| Method |
|---|
| POST /Units |

Reference: https://docs.propexo.com/api-reference/rent-manager/units/update-unit-rent-manager

## Authentication

- `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer <token>`, where token is your auth token.

## Servers

- `https://api.propexo.com` (Production, default)
- `https://api.sandbox.propexo.com` (Sandbox)

## Request

### Path parameters

- `unit_id` (string, required) — The Propexo unique identifier for the unit

### Body (application/json)

This endpoint expects a _v1_units_rentmanager_{unit_id}_put_input.

- `number` (string, optional) — The unit number
- `notes` (string, optional) — Notes associated with the unit
- `square_feet` (integer, optional) — The square footage of the unit
- `bathrooms` (double, optional) — The number of bathrooms associated with the unit. This value is sent directly to Rent Manager as-is. Use decimals for half bathrooms.
- `bedrooms` (integer, optional) — The number of bedrooms associated with the unit
- `is_vacant` (boolean, optional) — Whether the unit is vacant
- `address_1` (string, optional) — The first address line associated with the unit
- `city` (string, optional) — The city associated with the unit
- `state` (string, optional) — The state associated with the unit
- `zip` (string, optional) — The zip code associated with the unit
- `rent_amount_market_in_cents` (integer, optional) — The market rent amount in cents for the unit

## Response

### 200

Successful response

- `meta` (V1UnitsRentmanagerUnitIdPutOutputMeta, required)
- `result` (V1UnitsRentmanagerUnitIdPutOutputResult, required)

## Errors

### 400 Bad Request Error

Bad Request

- `error` (ErrorResponseError, required)

## Types

### V1UnitsRentmanagerUnitIdPutOutputMeta

- `job_id` (string, required)

### V1UnitsRentmanagerUnitIdPutOutputResult

- `unit_id` (string, required) — The Propexo unique identifier for the unit
- `number` (string, optional) — The unit number
- `notes` (string, optional) — Notes associated with the unit
- `square_feet` (integer, optional) — The square footage of the unit
- `bathrooms` (double, optional) — The number of bathrooms associated with the unit. This value is sent directly to Rent Manager as-is. Use decimals for half bathrooms.
- `bedrooms` (integer, optional) — The number of bedrooms associated with the unit
- `is_vacant` (boolean, optional) — Whether the unit is vacant
- `address_1` (string, optional) — The first address line associated with the unit
- `city` (string, optional) — The city associated with the unit
- `state` (string, optional) — The state associated with the unit
- `zip` (string, optional) — The zip code associated with the unit
- `rent_amount_market_in_cents` (integer, optional) — The market rent amount in cents for the unit

### ErrorResponseError

- `code` (string, required)
- `message` (string, required)
- `details` (map from string to any, optional)

## Examples

**Request**

```json
{}
```

**Response**

```json
{
  "meta": {
    "job_id": "a3f47b9e-8c2d-4f1a-9b7e-2d5f6c8e9a12"
  },
  "result": {
    "unit_id": "unit-987654321",
    "number": "12B",
    "notes": "Recently renovated kitchen and bathroom with new appliances.",
    "square_feet": 850,
    "bathrooms": 1.5,
    "bedrooms": 2,
    "is_vacant": false,
    "address_1": "123 Maple Street, Apt 12B",
    "city": "Springfield",
    "state": "IL",
    "zip": "62704",
    "rent_amount_market_in_cents": 125000
  }
}
```

**SDK Code**

```python
import requests

url = "https://api.propexo.com/v1/units/rentmanager/unit_id"

payload = {}
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.put(url, json=payload, headers=headers)

print(response.json())
```

```javascript
const url = 'https://api.propexo.com/v1/units/rentmanager/unit_id';
const options = {
  method: 'PUT',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: '{}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.propexo.com/v1/units/rentmanager/unit_id"

	payload := strings.NewReader("{}")

	req, _ := http.NewRequest("PUT", url, payload)

	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.propexo.com/v1/units/rentmanager/unit_id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{}"

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.put("https://api.propexo.com/v1/units/rentmanager/unit_id")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{}")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('PUT', 'https://api.propexo.com/v1/units/rentmanager/unit_id', [
  'body' => '{}',
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Content-Type' => 'application/json',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.propexo.com/v1/units/rentmanager/unit_id");
var request = new RestRequest(Method.PUT);
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = [
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = [] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.propexo.com/v1/units/rentmanager/unit_id")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "PUT"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```