Crates.io | roboat |
lib.rs | roboat |
version | 0.35.0 |
source | src |
created_at | 2023-03-18 03:59:10.283955 |
updated_at | 2024-07-17 02:28:26.589765 |
description | A high performance interface for the Roblox API. |
homepage | |
repository | https://github.com/Chloe-Woahie/roboat |
max_upload_size | |
id | 813501 |
size | 406,748 |
A high performance interface for the Roblox API.
This library is designed to be high-performance capable, meaning that it supports proxies and is capable of making requests in parallel.
Note that this crate is still in early development and updates may be breaking until the first major version is released.
Extensive documentation is used throughout this crate. All public methods in this crate are documented and have at least one corresponding example.
Documentation can be found here.
auth.roblox.com/*
]
Client::force_refresh_xcsrf_token
apis.roblox.com/*
]
Client::non_tradable_limited_details
Client::collectible_product_id
Client::collectible_product_id_bulk
Client::collectible_creator_id
Client::purchase_non_tradable_limited
catalog.roblox.com/*
]
Client::item_details
Client::product_id
Client::product_id_bulk
Client::collectible_item_id
Client::collectible_item_id_bulk
Client::avatar_catalog_search
chat.roblox.com/*
]
Client::unread_conversation_count
economy.roblox.com/*
]
Client::robux
Client::resellers
Client::user_sales
Client::put_limited_on_sale
Client::take_limited_off_sale
Client::purchase_tradable_limited
groups.roblox.com/*
]
Client::group_roles
Client::group_role_members
Client::set_group_member_role
presence.roblox.com/*
]
Client::register_presence
privatemessages.roblox.com/*
]
Client::messages
thumbnails.roblox.com/*
]
Client::thumbnail_url_bulk
Client::thumbnail_url
trades.roblox.com/*
]
Client::accept_trade
Client::decline_trade
Client::send_trade
Client::trades
Client::trade_details
Client::trade_count
users.roblox.com/*
]
Client::user_id
Client::username
Client::display_name
Client::user_search
Client::username_user_search
Client::user_details
friends.roblox.com/*
]
Client::pending_friend_requests
Client::friend_requests
Client::friends_list
Client::accept_friend_request
Client::decline_friend_request
Client::send_friend_request
Client::unfriend
Client::upload_classic_clothing_to_group
You can add the latest version of roboat to your project by running:
cargo add roboat
This code snippet allows you to purchase a free ugc limited.
It can be modified to purchase a non-free ugc limited by changing the price.
// Replace this value with your own roblosecurity token.
const ROBLOSECURITY: &str = "your-roblosecurity-token";
// Replace this value with the item id of the item you want to purchase.
const ITEM_ID: u64 = 13119979433;
// Replace this value if you want to purchase a non-free item.
const PRICE: u64 = 0;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = roboat::ClientBuilder::new()
.roblosecurity(ROBLOSECURITY.to_string())
.build();
let collectible_item_id = client.collectible_item_id(ITEM_ID).await?;
let collectible_product_id = client
.collectible_product_id(collectible_item_id.clone())
.await?;
let collectible_creator_id = client
.collectible_creator_id(collectible_item_id.clone())
.await?;
client
.purchase_non_tradable_limited(
collectible_item_id,
collectible_product_id,
collectible_creator_id,
PRICE,
)
.await?;
println!("Purchased item {} for {} robux!", ITEM_ID, PRICE);
Ok(())
}
This code snippet allows you to get your current robux, id, username, and display name.
// Replace this value with your own roblosecurity token.
const ROBLOSECURITY: &str = "your-roblosecurity-token";
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = roboat::ClientBuilder::new()
.roblosecurity(ROBLOSECURITY.to_string())
.build();
let robux = client.robux().await?;
let user_id = client.user_id().await?;
let username = client.username().await?;
let display_name = client.display_name().await?;
println!("Robux: {}", robux);
println!("User ID: {}", user_id);
println!("Username: {}", username);
println!("Display Name: {}", display_name);
Ok(())
}
This code snippet allows you to view the lowest price of a tradable limited item by fetching a list of reseller listings.
// Replace this value with your own roblosecurity token.
const ROBLOSECURITY: &str = "your-roblosecurity-token";
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = roboat::ClientBuilder::new()
.roblosecurity(ROBLOSECURITY.to_string())
.build();
let item_id = 1365767;
let limit = roboat::Limit::Ten;
let cursor = None;
let (resellers, _) = client.resellers(item_id, limit, cursor).await?;
println!("Lowest Price for Valkyrie Helm: {}", resellers[0].price);
Ok(())
}
This code snippet allows you to get the details of an item.
use roboat::catalog::avatar_catalog::{ItemArgs, ItemType};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = roboat::ClientBuilder::new().build();
let item = ItemArgs {
item_type: ItemType::Asset,
id: 1365767,
};
let details = &client.item_details(vec![item]).await?[0];
let name = &details.name;
let description = &details.description;
let creator_name = &details.creator_name;
let price = details.price.unwrap_or(0);
println!("Name: {}", name);
println!("Description: {}", description);
println!("Creator Name: {}", creator_name);
println!("Price: {}", price);
Ok(())
}
More examples can be found in the examples directory.
This crate is a sister crate of roli, an API wrapper for Rolimons.com.
Don't see an endpoint you need covered? Request it in an issue or join the Discord Server and mention it to us in the #api-coverage-requests channel! Since Roblox has a lot of endpoints, we find it easier to add endpoints as they are needed/requested.
Pull requests and issues are welcome!
Please refer to CONVENTIONS.md for information on conventions used in this crate.
Additional resources used to help make this crate are available in RESOURCES.md.
MIT License