# login

Initiates the bot login sequence.

```csharp
// See "LSL Helper Functions" page for this function
smartbotsAPI("login", [
  "location", "DuoLife/206/36/94"
]);
```

```snippet http-api-variables-OmJyUigTgO
```

```snippet http-api-input-basic-parameters-5FcVlaJbq0 action="login"
```

```snippet http-api-input-q5yvAagqsZ
location | optional | The initial location to log in. Leave blank for previous location.<br><br>Format (one of):<br>• Region name/X/Y/Z<br>•`HOME`— to log in to the bot’s Second Life home location<br><br>This value replaces the bot base location ("Bot base location" in Bot Control Panel). Setting this also sets "login to: base location".
siton    | optional | The UUID of the object the bot will try to sit on once logged in (same as "Object to sit" in Bot Control Panel).
```

```snippet http-api-output-JAwUcmg7i7
```

# Comments

This command tells the bot to start logging in.  
It is always successful:

* You won’t get an error if the bot is already logged in.
* You won’t get an error if the bot’s password is incorrect.

You can use the [set_http_callback](/doc/402de21d-d431-45b8-91bd-9068ae34ba0c) command to receive HTTP notifications when the bot logs in or out.

# Example

Log in your bot immediately (the command is ignored if the bot is already logged in).  
This example logs the bot into the **DuoLife** region:

```csharp
string recipient = "Tester Resident";

string params = llDumpList2String([
  "action="  + "login",
  "apikey="  + llEscapeURL(sbApiKey),
  "botname=" + llEscapeURL(sbBotName),
  "secret="  + llEscapeURL(sbBotApiToken),
  "location="  + llEscapeURL("DuoLife/206/36/94")
], "&");
 
llHTTPRequest("https://api.mysmartbots.com/api/bot.html",
  [HTTP_METHOD, "POST"], params);
```