Control your Second Life bots from LSL scripts, PHP, Python, or any language that speaks HTTP.
uuid parameter also accepts slname (avatar name or username). The API will automatically resolve names to UUIDs. Example: slname=Yaueger Resident or uuid=7d32f86c-4b44-...
| Parameter | Description | |
|---|---|---|
| action | = status | Required |
| apikey | Your API key | Required |
| botname | Bot SL name "Firstname Lastname" | Required |
| secret | Bot access code | Required |
| dataType | Set to "json" for JSON reply instead of URL-encoded | Optional |
| custom | Custom string passed back in response | Optional |
| Variable | Description |
|---|---|
| result | OK or FAIL |
| resulttext | Detailed failure reason (on FAIL) |
| custom | Echoed back from input |
| status | Current status: ONLINE, PRE-CONNECTING, CONNECTING, LOGGED_OUT, OFFLINE |
| online | "1" if online, "0" otherwise |
| slname | Full SL name of the bot |
| uuid | Bot avatar UUID |
| location | Current region and coordinates (Region/X/Y/Z) |
moonbotsAPI("status", [
"secret", "YOUR_VALUE"
]);
moonbots_api('status', [
'secret' => 'YOUR_VALUE',
]);
moonbots_api("status", secret="YOUR_VALUE")
await moonbotsAPI("status", { secret: "YOUR_VALUE" });
moonbotsAPI("login", []);
moonbots_api('login');
moonbots_api("login")
await moonbotsAPI("login");
moonbotsAPI("logout", []);
moonbots_api('logout');
moonbots_api("logout")
await moonbotsAPI("logout");
| Parameter | Description | |
|---|---|---|
| slname | Avatar name OR username (e.g. "Yaueger Resident") | Required* |
| uuid | Avatar UUID — alternative to slname | Optional |
| message | Message text | Required |
moonbotsAPI("im", [
"slname", "Yaueger Resident",
"message", "Hello from my bot!"
]);
moonbots_api('im', [
'slname' => 'Yaueger Resident',
'message' => 'Hello from my bot!',
]);
moonbots_api("im", slname="Yaueger Resident", message="Hello from my bot!")
await moonbotsAPI("im", {
slname: "Yaueger Resident",
message: "Hello from my bot!",
});
| Parameter | Description | |
|---|---|---|
| message | Message text | Required |
| chat_type | Normal / Whisper / Shout | Optional (Normal) |
moonbotsAPI("say_chat_channel", [
"message", "Hello from my bot!"
]);
moonbots_api('say_chat_channel', [
'message' => 'Hello from my bot!',
]);
moonbots_api("say_chat_channel", message="Hello from my bot!")
await moonbotsAPI("say_chat_channel", { message: "Hello from my bot!" });
| Parameter | Description | |
|---|---|---|
| group_uuid | Target group UUID | Required |
| message | Message text | Required |
moonbotsAPI("send_group_im", [
"group_uuid", "2666017d-7a44-78eb-fbe9-4b46df67296a",
"message", "Hello from my bot!"
]);
moonbots_api('send_group_im', [
'group_uuid' => '2666017d-7a44-78eb-fbe9-4b46df67296a',
'message' => 'Hello from my bot!',
]);
moonbots_api(
"send_group_im",
group_uuid="2666017d-7a44-78eb-fbe9-4b46df67296a",
message="Hello from my bot!",
)
await moonbotsAPI("send_group_im", {
group_uuid: "2666017d-7a44-78eb-fbe9-4b46df67296a",
message: "Hello from my bot!",
});
| Parameter | Description | |
|---|---|---|
| channel | Dialog channel number | Required |
| button | Button label to press | Required |
| object_uuid | UUID of dialog source object | Required |
moonbotsAPI("reply_dialog", [
"channel", "12345",
"button", "Accept",
"object_uuid", "abcdef12-3456-7890-abcd-ef1234567890"
]);
moonbots_api('reply_dialog', [
'channel' => '12345',
'button' => 'Accept',
'object_uuid' => 'abcdef12-3456-7890-abcd-ef1234567890',
]);
moonbots_api(
"reply_dialog",
channel="12345",
button="Accept",
object_uuid="abcdef12-3456-7890-abcd-ef1234567890",
)
await moonbotsAPI("reply_dialog", {
channel: "12345",
button: "Accept",
object_uuid: "abcdef12-3456-7890-abcd-ef1234567890",
});
| Parameter | Description | |
|---|---|---|
| slname | Avatar name or username | Required* |
| uuid | Avatar UUID — alternative | Optional |
| message | Default - Would you like to be my friend? | Optional |
moonbotsAPI("offer_friendship", [
"slname", "Yaueger Resident"
]);
moonbots_api('offer_friendship', [
'slname' => 'Yaueger Resident',
]);
moonbots_api("offer_friendship", slname="Yaueger Resident")
await moonbotsAPI("offer_friendship", { slname: "Yaueger Resident" });
| Parameter | Description | |
|---|---|---|
| uuid | Avatar UUID | Required |
moonbotsAPI("cancel_friendship", [
"uuid", "9fa3334a-bc0d-4c3d-829f-c72ed3b24843"
]);
moonbots_api('cancel_friendship', [
'uuid' => '9fa3334a-bc0d-4c3d-829f-c72ed3b24843',
]);
moonbots_api("cancel_friendship", uuid="9fa3334a-bc0d-4c3d-829f-c72ed3b24843")
await moonbotsAPI("cancel_friendship", { uuid: "9fa3334a-bc0d-4c3d-829f-c72ed3b24843" });
| Parameter | Description | |
|---|---|---|
| slname | Recipient name or username | Required* |
| uuid | Recipient UUID — alternative | Optional |
| item | Inventory item UUID to give | Required |
moonbotsAPI("inventory_give", [
"slname", "Yaueger Resident",
"item", "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
]);
moonbots_api('inventory_give', [
'slname' => 'Yaueger Resident',
'item' => 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
]);
moonbots_api(
"inventory_give",
slname="Yaueger Resident",
item="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
)
await moonbotsAPI("inventory_give", {
slname: "Yaueger Resident",
item: "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
});
| Parameter | Description | |
|---|---|---|
| item | Inventory item UUID | Required |
| replace | true/false — replace existing of same type | Optional (false) |
moonbotsAPI("wear", [
"item", "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
]);
moonbots_api('wear', [
'item' => 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
]);
moonbots_api("wear", item="a1b2c3d4-e5f6-7890-abcd-ef1234567890")
await moonbotsAPI("wear", { item: "a1b2c3d4-e5f6-7890-abcd-ef1234567890" });
| Parameter | Description | |
|---|---|---|
| item | Inventory item UUID | Required |
moonbotsAPI("takeoff", [
"item", "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
]);
moonbots_api('takeoff', [
'item' => 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
]);
moonbots_api("takeoff", item="a1b2c3d4-e5f6-7890-abcd-ef1234567890")
await moonbotsAPI("takeoff", { item: "a1b2c3d4-e5f6-7890-abcd-ef1234567890" });
moonbotsAPI("rebake", []);
moonbots_api('rebake');
moonbots_api("rebake")
await moonbotsAPI("rebake");
| Parameter | Description | |
|---|---|---|
| path | Folder path to list (e.g. "/Objects" or "/My Inventory/Clothing"). Defaults to root. | Optional |
| Variable | Description |
|---|---|
| result | OK or FAIL |
| data | Structured list of item names, UUIDs, and types |
moonbotsAPI("inventory_list", []);
moonbots_api('inventory_list');
moonbots_api("inventory_list")
await moonbotsAPI("inventory_list");
| Parameter | Description | |
|---|---|---|
| item | Inventory item UUID to delete | Required |
| Variable | Description |
|---|---|
| result | OK or FAIL |
moonbotsAPI("inventory_delete", [
"item", "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
]);
moonbots_api('inventory_delete', [
'item' => 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
]);
moonbots_api("inventory_delete", item="a1b2c3d4-e5f6-7890-abcd-ef1234567890")
await moonbotsAPI("inventory_delete", { item: "a1b2c3d4-e5f6-7890-abcd-ef1234567890" });
| Parameter | Description | |
|---|---|---|
| item | Notecard inventory UUID | Required |
| Variable | Description |
|---|---|
| result | OK or FAIL |
| data | Full text contents of the notecard |
moonbotsAPI("notecard_read", [
"item", "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
]);
moonbots_api('notecard_read', [
'item' => 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
]);
moonbots_api("notecard_read", item="a1b2c3d4-e5f6-7890-abcd-ef1234567890")
await moonbotsAPI("notecard_read", { item: "a1b2c3d4-e5f6-7890-abcd-ef1234567890" });
| Parameter | Description | |
|---|---|---|
| data | Base64-encoded image data (JPEG, PNG, BMP, GIF, WEBP, J2C) | Required* |
| url | URL to an image file — alternative to data (server will fetch and encode it) | Optional |
| name | Inventory name for the texture | Optional (Uploaded Texture) |
| permissions | Permission string (Corrade format) | Optional |
| Variable | Description |
|---|---|
| result | OK or FAIL |
| item_uuid | Inventory UUID of the new texture item |
| asset_uuid | Asset UUID of the uploaded texture |
data, or a publicly accessible URL via url (the server will fetch and encode it). The image is automatically converted to JPEG2000 and resized to power-of-two dimensions. Standard L$ upload fee applies.moonbotsAPI("texture_upload", [
"data", "JPEG, PNG, BMP, GIF, WEBP, J2C"
]);
moonbots_api('texture_upload', [
'data' => 'JPEG, PNG, BMP, GIF, WEBP, J2C',
]);
moonbots_api("texture_upload", data="JPEG, PNG, BMP, GIF, WEBP, J2C")
await moonbotsAPI("texture_upload", { data: "JPEG, PNG, BMP, GIF, WEBP, J2C" });
| Parameter | Description | |
|---|---|---|
| location | Region/x/y/z (e.g. "MoonBots/128/128/20") | Required |
moonbotsAPI("teleport", [
"location", "MoonBots/128/128/20"
]);
moonbots_api('teleport', [
'location' => 'MoonBots/128/128/20',
]);
moonbots_api("teleport", location="MoonBots/128/128/20")
await moonbotsAPI("teleport", { location: "MoonBots/128/128/20" });
| Parameter | Description | |
|---|---|---|
| slname | Avatar name or username | Required* |
| uuid | Avatar UUID — alternative | Optional |
| message | Lure message | Optional |
moonbotsAPI("offer_teleport", [
"slname", "Yaueger Resident"
]);
moonbots_api('offer_teleport', [
'slname' => 'Yaueger Resident',
]);
moonbots_api("offer_teleport", slname="Yaueger Resident")
await moonbotsAPI("offer_teleport", { slname: "Yaueger Resident" });
| Parameter | Description | |
|---|---|---|
| uuid | Prim UUID to sit on | Required |
moonbotsAPI("sit", [
"uuid", "9fa3334a-bc0d-4c3d-829f-c72ed3b24843"
]);
moonbots_api('sit', [
'uuid' => '9fa3334a-bc0d-4c3d-829f-c72ed3b24843',
]);
moonbots_api("sit", uuid="9fa3334a-bc0d-4c3d-829f-c72ed3b24843")
await moonbotsAPI("sit", { uuid: "9fa3334a-bc0d-4c3d-829f-c72ed3b24843" });
moonbotsAPI("stand", []);
moonbots_api('stand');
moonbots_api("stand")
await moonbotsAPI("stand");
moonbotsAPI("fly", []);
moonbots_api('fly');
moonbots_api("fly")
await moonbotsAPI("fly");
| Parameter | Description | |
|---|---|---|
| direction | forward / backward | Required |
| duration | Milliseconds to walk | Optional (800) |
moonbotsAPI("move", [
"direction", "forward"
]);
moonbots_api('move', [
'direction' => 'forward',
]);
moonbots_api("move", direction="forward")
await moonbotsAPI("move", { direction: "forward" });
| Parameter | Description | |
|---|---|---|
| uuid | Object prim UUID | Required |
moonbotsAPI("walkto", [
"uuid", "9fa3334a-bc0d-4c3d-829f-c72ed3b24843"
]);
moonbots_api('walkto', [
'uuid' => '9fa3334a-bc0d-4c3d-829f-c72ed3b24843',
]);
moonbots_api("walkto", uuid="9fa3334a-bc0d-4c3d-829f-c72ed3b24843")
await moonbotsAPI("walkto", { uuid: "9fa3334a-bc0d-4c3d-829f-c72ed3b24843" });
moonbotsAPI("tp_home", []);
moonbots_api('tp_home');
moonbots_api("tp_home")
await moonbotsAPI("tp_home");
| Parameter | Description | |
|---|---|---|
| slname | Avatar name or username | Required* |
| uuid | Avatar UUID — alternative | Optional |
| group_uuid | Target group UUID | Required |
moonbotsAPI("group_invite", [
"slname", "Yaueger Resident",
"group_uuid", "2666017d-7a44-78eb-fbe9-4b46df67296a"
]);
moonbots_api('group_invite', [
'slname' => 'Yaueger Resident',
'group_uuid' => '2666017d-7a44-78eb-fbe9-4b46df67296a',
]);
moonbots_api(
"group_invite",
slname="Yaueger Resident",
group_uuid="2666017d-7a44-78eb-fbe9-4b46df67296a",
)
await moonbotsAPI("group_invite", {
slname: "Yaueger Resident",
group_uuid: "2666017d-7a44-78eb-fbe9-4b46df67296a",
});
| Parameter | Description | |
|---|---|---|
| uuid | Avatar UUID | Required |
| group_uuid | Group UUID | Required |
moonbotsAPI("group_eject", [
"uuid", "9fa3334a-bc0d-4c3d-829f-c72ed3b24843",
"group_uuid", "2666017d-7a44-78eb-fbe9-4b46df67296a"
]);
moonbots_api('group_eject', [
'uuid' => '9fa3334a-bc0d-4c3d-829f-c72ed3b24843',
'group_uuid' => '2666017d-7a44-78eb-fbe9-4b46df67296a',
]);
moonbots_api(
"group_eject",
uuid="9fa3334a-bc0d-4c3d-829f-c72ed3b24843",
group_uuid="2666017d-7a44-78eb-fbe9-4b46df67296a",
)
await moonbotsAPI("group_eject", {
uuid: "9fa3334a-bc0d-4c3d-829f-c72ed3b24843",
group_uuid: "2666017d-7a44-78eb-fbe9-4b46df67296a",
});
| Parameter | Description | |
|---|---|---|
| group_uuid | Group UUID | Required |
| subject | Notice subject line | Required |
| message | Notice body text | Optional |
| item | Attachment inventory UUID | Optional |
moonbotsAPI("send_notice", [
"group_uuid", "2666017d-7a44-78eb-fbe9-4b46df67296a",
"subject", "Notice Subject"
]);
moonbots_api('send_notice', [
'group_uuid' => '2666017d-7a44-78eb-fbe9-4b46df67296a',
'subject' => 'Notice Subject',
]);
moonbots_api(
"send_notice",
group_uuid="2666017d-7a44-78eb-fbe9-4b46df67296a",
subject="Notice Subject",
)
await moonbotsAPI("send_notice", {
group_uuid: "2666017d-7a44-78eb-fbe9-4b46df67296a",
subject: "Notice Subject",
});
| Parameter | Description | |
|---|---|---|
| group_uuid | Group UUID | Required |
| message | Message text | Required |
moonbotsAPI("send_group_im", [
"group_uuid", "2666017d-7a44-78eb-fbe9-4b46df67296a",
"message", "Hello from my bot!"
]);
moonbots_api('send_group_im', [
'group_uuid' => '2666017d-7a44-78eb-fbe9-4b46df67296a',
'message' => 'Hello from my bot!',
]);
moonbots_api(
"send_group_im",
group_uuid="2666017d-7a44-78eb-fbe9-4b46df67296a",
message="Hello from my bot!",
)
await moonbotsAPI("send_group_im", {
group_uuid: "2666017d-7a44-78eb-fbe9-4b46df67296a",
message: "Hello from my bot!",
});
| Parameter | Description | |
|---|---|---|
| group_uuid | Group UUID (use zeros for none) | Required |
moonbotsAPI("group_activate", [
"group_uuid", "use zeros for none"
]);
moonbots_api('group_activate', [
'group_uuid' => 'use zeros for none',
]);
moonbots_api("group_activate", group_uuid="use zeros for none")
await moonbotsAPI("group_activate", { group_uuid: "use zeros for none" });
moonbotsAPI("get_balance", []);
moonbots_api('get_balance');
moonbots_api("get_balance")
await moonbotsAPI("get_balance");
| Parameter | Description | |
|---|---|---|
| slname | Recipient name or username | Required* |
| uuid | Recipient UUID — alternative | Optional |
| amount | L$ amount to send | Required |
moonbotsAPI("give_money", [
"slname", "Yaueger Resident",
"amount", "100"
]);
moonbots_api('give_money', [
'slname' => 'Yaueger Resident',
'amount' => '100',
]);
moonbots_api("give_money", slname="Yaueger Resident", amount="100")
await moonbotsAPI("give_money", {
slname: "Yaueger Resident",
amount: "100",
});
| Parameter | Description | |
|---|---|---|
| object_uuid | UUID of the prim/object to pay | Required |
| amount | L$ amount to pay | Required |
| Variable | Description |
|---|---|
| result | OK or FAIL |
moonbotsAPI("give_money_object", [
"object_uuid", "abcdef12-3456-7890-abcd-ef1234567890",
"amount", "100"
]);
moonbots_api('give_money_object', [
'object_uuid' => 'abcdef12-3456-7890-abcd-ef1234567890',
'amount' => '100',
]);
moonbots_api(
"give_money_object",
object_uuid="abcdef12-3456-7890-abcd-ef1234567890",
amount="100",
)
await moonbotsAPI("give_money_object", {
object_uuid: "abcdef12-3456-7890-abcd-ef1234567890",
amount: "100",
});
| Parameter | Description | |
|---|---|---|
| slname | Avatar name (e.g. "Yaueger Resident" or "Upsies Resident") | Required |
moonbotsAPI("name2key", [
"slname", "Yaueger Resident"
]);
moonbots_api('name2key', [
'slname' => 'Yaueger Resident',
]);
moonbots_api("name2key", slname="Yaueger Resident")
await moonbotsAPI("name2key", { slname: "Yaueger Resident" });
| Parameter | Description | |
|---|---|---|
| uuid | Avatar UUID | Required |
moonbotsAPI("key2name", [
"uuid", "9fa3334a-bc0d-4c3d-829f-c72ed3b24843"
]);
moonbots_api('key2name', [
'uuid' => '9fa3334a-bc0d-4c3d-829f-c72ed3b24843',
]);
moonbots_api("key2name", uuid="9fa3334a-bc0d-4c3d-829f-c72ed3b24843")
await moonbotsAPI("key2name", { uuid: "9fa3334a-bc0d-4c3d-829f-c72ed3b24843" });
| Parameter | Description | |
|---|---|---|
| uuid | Avatar UUID | Required |
moonbotsAPI("avatar_info", [
"uuid", "9fa3334a-bc0d-4c3d-829f-c72ed3b24843"
]);
moonbots_api('avatar_info', [
'uuid' => '9fa3334a-bc0d-4c3d-829f-c72ed3b24843',
]);
moonbots_api("avatar_info", uuid="9fa3334a-bc0d-4c3d-829f-c72ed3b24843")
await moonbotsAPI("avatar_info", { uuid: "9fa3334a-bc0d-4c3d-829f-c72ed3b24843" });
moonbotsAPI("bot_location", []);
moonbots_api('bot_location');
moonbots_api("bot_location")
await moonbotsAPI("bot_location");
moonbotsAPI("nearbyavatars_scan", []);
moonbots_api('nearbyavatars_scan');
moonbots_api("nearbyavatars_scan")
await moonbotsAPI("nearbyavatars_scan");
| Parameter | Description | |
|---|---|---|
| uuid | Avatar UUID (omit for bot's own groups) | Optional |
| slname | Avatar name — alternative to uuid | Optional |
| Variable | Description |
|---|---|
| result | OK or FAIL |
| count | Number of groups returned |
| data | Pipe-separated list of GroupName,GroupUUID pairs |
| groups | (JSON mode) Array of group objects with uuid, name, image, members, permissions |
dataType=json for a richer response with full group details.moonbotsAPI("avatar_groups", []);
moonbots_api('avatar_groups');
moonbots_api("avatar_groups")
await moonbotsAPI("avatar_groups");
| Parameter | Description | |
|---|---|---|
| uuid | Prim UUID to touch | Required |
moonbotsAPI("touch_prim", [
"uuid", "9fa3334a-bc0d-4c3d-829f-c72ed3b24843"
]);
moonbots_api('touch_prim', [
'uuid' => '9fa3334a-bc0d-4c3d-829f-c72ed3b24843',
]);
moonbots_api("touch_prim", uuid="9fa3334a-bc0d-4c3d-829f-c72ed3b24843")
await moonbotsAPI("touch_prim", { uuid: "9fa3334a-bc0d-4c3d-829f-c72ed3b24843" });
moonbotsAPI("find_objects", []);
moonbots_api('find_objects');
moonbots_api("find_objects")
await moonbotsAPI("find_objects");
Drop this into your LSL script. All command examples above use this function.
// ── MoonBots API Helper for LSL ──
string mbApiKey = "YOUR_API_KEY";
string mbBotName = "Firstname Lastname";
moonbotsAPI(string command, list params) {
list query = [
"action=" + command,
"apikey=" + llEscapeURL(mbApiKey),
"botname=" + llEscapeURL(mbBotName)
];
integer i;
for(i = 0; i < llGetListLength(params); i += 2) {
query += [llList2String(params, i) + "="
+ llEscapeURL(llList2String(params, i+1))];
}
llHTTPRequest("https://moonbots.co/api/bot.php",
[HTTP_METHOD, "POST",
HTTP_MIMETYPE, "application/x-www-form-urlencoded"],
llDumpList2String(query, "&"));
}
default {
touch_start(integer n) {
moonbotsAPI("im", ["slname", "Yaueger Resident", "message", "Hello!"]);
}
http_response(key id, integer s, list m, string body) {
llOwnerSay("API: " + body);
}
}
define('API_KEY', 'YOUR_API_KEY');
define('BOT_NAME', 'Firstname Lastname');
function moonbots_api($action, $params = []) {
$ch = curl_init();
$params = array_merge([
'action' => $action,
'apikey' => API_KEY,
'botname' => BOT_NAME,
], $params);
curl_setopt_array($ch, [
CURLOPT_URL => "https://moonbots.co/api/bot.php",
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query($params),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 30,
]);
$response = curl_exec($ch);
curl_close($ch);
return $response;
}
// Usage:
echo moonbots_api('status');
echo moonbots_api('im', ['slname' => 'Yaueger Resident', 'message' => 'Hi!']);
import requests
API_KEY = "YOUR_API_KEY"
BOT_NAME = "Firstname Lastname"
API_URL = "https://moonbots.co/api/bot.php"
def moonbots_api(action, **kwargs):
payload = {
"action": action,
"apikey": API_KEY,
"botname": BOT_NAME,
**kwargs,
}
r = requests.post(API_URL, data=payload, timeout=30)
r.raise_for_status()
return r.text
# Usage:
print(moonbots_api("status"))
print(moonbots_api("im", slname="Yaueger Resident", message="Hello!"))
print(moonbots_api("teleport", location="MoonBots/128/128/20"))
const API_KEY = "YOUR_API_KEY";
const BOT_NAME = "Firstname Lastname";
const API_URL = "https://moonbots.co/api/bot.php";
async function moonbotsAPI(action, params = {}) {
const body = new URLSearchParams({
action, apikey: API_KEY,
botname: BOT_NAME, ...params,
});
const res = await fetch(API_URL, {
method: "POST",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
body,
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
return res.text();
}
// Usage:
console.log(await moonbotsAPI("status"));
console.log(await moonbotsAPI("im", { slname: "Yaueger Resident", message: "Hello!" }));
Join our Discord for API support, feature requests, and updates.
Join MoonBots Discord