# parcel_info_update

Updates parcel details, including name, description, and selling options.

```csharp
// See "LSL Helper Functions" page for this function
smartbotsAPI("parcel_info_update", [
  "x", 30,
  "y", 60,
  "name", "The new name of the parcel",
  "sale", "on",
  "saleprice", 1500,
  "sellto", "cd93067e-7c4e-41c0-ba91-be01f4bafe35"
]);
```

# Variables

The following table shows input values (you send them with the API call) and returned output values.

## Input basic parameters

| Variable | Required | Description |
|----------|----------|-------------|
| action   | yes      | = parcel_info_update |
| apikey   | yes      | Your personal [developer's API key](/doc/developers-api-key-tw8bQj4LSJ) |
| botname  | yes      | Your bot's SL login |
| secret   | yes      | [Bot access code](https://www.mysmartbots.com/docs/Bot_access_code) of your bot |
| dataType | optional | Set to "json" to get JSON reply instead of URL-encoded string |
| custom   | optional | The custom data (string) to be passed back to caller script. This value will be returned back to the caller in HTTP response |

## Input

| Variable | Required | Description |
|----------|----------|-------------|
| x        | optional | The X coordinate of the parcel (default - at bot's position) |
| y        | optional | The Y coordinate of the parcel (default - at bot's position) |
| name     | optional | The parcel name |
| description | optional | The parcel description |
| musicurl | optional | The parcel music URL |
| sale     | optional | Set to "on" to set land for sale, "off" to stop selling |
| saleprice | optional | The selling price |
| sellto   | optional | The person UUID allowed to purchase this parcel |
| sellobjects | optional | Set to "on" to allow selling objects with the parcel ("off" to disallow) |
| snapshot | optional | The UUID of the picture to be set as a parcel image |
| landingpoint | optional | The parcel landing point, format: "X/Y/Z" |
| landingrouting | optional | The landing restrictions on the parcel:<br>Direct - land anywhere<br>LandingPoint - teleport to landing point only<br>None - teleport is blocked |

## Output

*(To be received in* `*http_response*` *LSL event, see* [*docs*](/doc/doing-http-api-calls-c6FSEMF7bP) *for details)*

| Variable | Description |
|----------|-------------|
| result   | OK - command completed successfully<br>FAIL - command failed |
| resulttext | Detailed reason for the failure |
| custom   | The value from input "custom" parameter. See above |

# Permissions

Your bot has to own the parcel, or have some of the following permissions:

* Parcel identity > “Change parcel name, description, and 'Moderate Content' setting”
* Parcel settings > “Change music & media settings”
* Parcel Management > “Set land for sale info”

**Important:** Second Life requires you to re-log the avatar when you change the parcel group abilities. Relog the bot after changing them.

# Selling parcel

This function can be used to set the sale price of a parcel:

```csharp
// See "LSL Helper Functions" page for this function
smartbotsAPI("parcel_info_update", [
  // No x and y given, this sells parcel under the bot
  "sale", "on",
  "saleprice", 1500,
  // Optional parameter
  "sellto", "cd93067e-7c4e-41c0-ba91-be01f4bafe35"
]);
```

# Checking parcel update results

Second Life does not notify the bot if the parcel update was successful.  
To ensure accuracy, the bot:


1. Updates the parcel.
2. Re-reads parcel details from SL.
3. Compares them with expected values.


:::info
If your bot lacks necessary permissions (e.g., "Set landing point and set teleport routing"), the expected parcel data may not match the actual parcel details, resulting in an API error.

:::

# Return values

Use the API testing suite to test this API function.

The command returns:

```
result = OK
```

if the parcel update succeeded.