An unofficial C# wrapper for Aminos REST API to make Amino Bots and Tools
Amino.Net has a lot of functionality that allow you to develop Amino tools and bots for multiple types of C# / dotNet projects
null
, this is because the library pulls its data straight from the Amino REST API, if values in the API return null
there's nothing i can do!By using this library you agree that you are aware of the fact that you are breaking the App services Terms of Service - as Team Amino strictly forbids the use of any sort of third party software / scripting to gain an advantage over other members, any activity by third party tools found by Team Amino may result in your account getting banned from their services!
You can get Amino.Net straight from NuGet.org or any NuGet Package manager!
Quick Links
The Amino.Client() Object is a crucial object to make Bots or tools, as there need to be an instance of it to make the library work
Note that some values might be null
if you don't login
into an Amino account
You need to create an Object instance of the Amino.Client object to use the Clients functions, it accepts 1 value
Amino.Client client = new Amino.Client(); // This client will be used as an Example Client for the rest of the Amino.Client() docuemntations, whenever "client" is being used, its just an instance of Amino.Client()
You can request an Amino verification code using this function.
try
{
client.request_verify_code("myEmail@domain.com", true);
Console.WriteLine("Requested Verification code!");
} catch
{
Console.WriteLine("Could not send email");
}
You can log into an existing Amino account using this function.
try
{
client.login("myEmail@Domain.com", "myEpicPassword");
Console.WriteLine("Logged in!");
} catch
{
Console.WriteLine("Could not log into the account!");
}
You can log out of an Amino account using this function, make sure you are logged into an account to use this function!
try
{
client.logout();
Console.WriteLine("Logged out!");
} catch
{
Console.WriteLine("Could not log out!");
}
This function allows you to register an Amino account
request_verify_code()
try
{
client.register("epicName", "myEmail@Domain.com", "myNicePassword", "ABCDEF");
Console.WriteLine("Account registered!");
} catch
{
Console.Writeline("Could not register account!");
}
This function allows you to restore a deleted Amino account
try
{
client.restore_account("myEmail@Domain.com", "myEpicPassword", "someDeviceId");
Console.WriteLine("Restored account successfully!");
} catch
{
Console.WriteLine("Could not restore account!");
}
This function allows you to delete the current Amino account in use.
try
{
client.delete_account("myEpicPassword");
Console.WriteLine("Account has been deleted Successfully!");
} catch
{
Console.WriteLine("Account could not be deleted!");
}
This function allows you to activate an Amino account using a verification Code
request_verify_code()
)try
{
client.activate_account("myEmail@Domain.com", "ABCDEF");
Console.WriteLine("The account has been activated!")
} catch
{
Console.WriteLine("Could not activate the account!");
}
This function allows you to configure an Amino accounts age and gender
try
{
client.configure_account(Amino.Types.account_gender.Non_Binary, 18);
Console.WriteLine("Configured account successfully!");
} catch
{
Console.WriteLine("Could not configure account!");
}
This function allows you to change the password of the current Amino account.
request_verify_code()
)
try
{
client.change_password("myEmail@Domain.com", "myNewPassword", "ABCDEF");
Console.WriteLine("Account password has been changed successfully!");
} catch
{
Console.WriteLine("Could not reset password!");
}
This function allows you to get information about a global Amino Profile
try
{
var userProfile = client.get_user_info("anyUserId");
Console.WriteLine("Account username: " + userProfile.nickname);
} catch
{
Console.WriteLine("Could not get user information");
}
This function allows you to check if a device ID is valid or not
try
{
if(client.check_device("someDeviceId"))
{
Console.WriteLine("This device ID is valid!");
} else
{
Console.WriteLine("This device ID is invalid!");
}
} catch
{
Console.WriteLine("Could not check device ID");
}
This function allows you to get information about the current accounts event log!
try
{
var eventLog = client.get_event_log();
Console.WriteLine("EventLog JSON: " + eventLog.json);
} catch
{
Console.WriteLine("Could not get eventLog!");
}
This function allows you to get information about all the Communities where the current Amino account is in
start
and size
cannot be larger than 100
start
and whatever number this is set to
try
{
List<Amino.Objects.Community> communityList = client.get_subClient_communities();
Console.WriteLine("First community Name: " + communityList[0].communityName);
} catch
{
Console.WriteLine("Could not get subClient communities.");
}
This function allows you to get information about all the community profiles where the current Amino account is in
start
and size
cannot be larger than 100
start
and whatever this is set to
try
{
List<Amino.Objects.CommunityProfile> profileList = client.get_subClient_profiles();
Console.WriteLine("Profile name in first community: " + profileList[0].nickname);
} catch
{
Console.WriteLine("Could not get subClient profiles");
}
This function allows you to get information about the current Amino account
try
{
var accountInfo = client.get_account_info();
Console.WriteLine("Account was created on " + accountInfo.createdTime);
} catch
{
Console.WriteLine("Could not get user information");
}
This function allows you to get all chat threads where the current Amino account is in
start
and size
cannot be larger than 100
start
and whatever this is set to
try
{
List<Amino.Objects.Chat> chatList = client.get_chat_threads();
Console.WriteLine("Nickname of the owner of the first chat: " + chatList[0].Author.nickname);
} catch
{
Console.WriteLine("Could not get chats!");
}
This function allows you to get information about a specific chat thread where the current Amino account is in
try
{
var Chat = client.get_chat_thread("myChatId");
Console.WriteLine("Chat Member Count: " + Chat.membersCount);
} catch
{
Console.WriteLine("Could not get chat Thread");
}
This function allows you to get chat member information about a specific chat thread
start
and size
cannot be larger than 100
start
and whatever this is set to
try
{
List<Amino.Objects.ChatMember> chatMemberList = client.get_chat_users("myChatId");
Console.WriteLine("Name of the first chat member: " + chatMemberList[0].nickname);
} catch
{
Console.WriteLine("Could not get chat users");
}
This function allows you to join a chat thread using the current Amino account.
try
{
client.join_chat("myChatId");
Console.WriteLine("Joined chat");
} catch
{
Console.WriteLine("Could not join chat!");
}
This function allows you to leave a chat thread using the current Amino account.
try
{
client.leave_chat("myChatId");
Console.WriteLine("Left chat");
} catch
{
Console.WriteLine("Could not leave chat!");
}
This function allows you to invite one or more members to a chat thread with the current Amino account
try
{
string[] users = new string[] { "userId_1", "userId_2" };
client.invite_to_chat(users, "chatId");
Console.WriteLine("Invited users!");
} catch
{
Console.WriteLine("Could not invite members to chat");
}
This function allows you to kick a user from a chat thread
try
{
client.kick_from_chat("userId", "chatId", false);
Console.WriteLine("User has been kicked from chat!");
} catch
{
Console.WriteLine("Could not kick member from chat!");
}
This function allows you to get a collection of messages in a specific chat thread the current Amino account is in
try
{
List<Amino.Obejcts.MessageCollection> messageList = client.get_chat_messages("someChatId", 50);
Console.WriteLine("Nickname of the author of the first message: " + messageList[0].Author.nickname);
} catch
{
Console.WriteLine("Could not get chat messages!");
}
This function allows you to search for a Community by its aminoId (not and ObjectId) and retrieve information about it
try
{
List<Amino.Objects.CommunityInfo> communityInfo = client.search_community("myLookupTerm");
Console.WriteLine("Name of the first community result: " + communityInfo[0].name);
} catch
{
Console.WriteLine("Could not search for community");
}
This function allows you to get the users a target is following
start
and whatever this is set to
try
{
List<Amino.Objects.UserFollowings> userFollowings = client.get_user_followings("someUserId");
Console.WriteLine("Name of the first user following: " + userFollowings[0].nickname);
} catch
{
Console.WriteLine("Could not get user followings");
}
This function allows you to get a list of users that follow a user
start
and whatever this is set to
try
{
List<Amino.Objects.UserFollowings> userFollowers = client.get_user_followers("someUserId");
Console.WriteLine("Name of the first follower: " + userFollowers[0].nickname);
} catch
{
Console.WriteLine("Could not get user followers");
}
This function allows you to get a list of users that have visited a target profile
start
and whatever this is set to
try
{
List<Amino.Objects.UserVisitor> userVisitors = client.get_user_visitors("someUserId");
Console.WriteLine("Name list of all visitors:");
foreach(Amino.Objects.UserVisitor visitor in userVisitors)
{
Console.WriteLine(visitor.Profile.nickname);
}
} catch { Console.WriteLine("Could not get user visitors!"); }
### get_blocked_users(int start, int size) : List<Amino.Objects.BlockedUser>
This function allows you to get a list of users that the current Amino account has blocked
- Success: Gets the blocked users and returns them as an Object List (List<Amino.Objects.BlockedUser>)
- Error: Throws an Exception
### Values:
- start : int (default: 0) : Sets the Start index for getting blocked users
- size : int (default: 25) : Sets the range between `start` and whatever this is set to
### Example:
```CSharp
try
{
List<Amino.Objects.BlockedUser> blockedUsers = client.get_blocked_users();
Console.WriteLine("List of blocked users (user IDs)");
foreach(Amino.Obejcts.BlockedUser user in blockedUsers)
{
Console.WriteLine(user.userId);
}
} catch
{
Console.WriteLine("Could not get blocked users");
}
This function allows you to get a list of user IDs of the users who have currenty blocked the current Amino account
start
and whatever this is set to
try
{
List<string> blockerUsers = client.get_blocker_users();
if(blockerUsers.Count > 0)
{
Console.WriteLine("First blocker user: " + blockerUsers[0]);
}
} catch
{
Console.WriteLine("Could not get blocker users");
}
This function allows you to get a list of comments that have been left on a users wall
start
and whatever this is set to
try
{
List<Amino.Obejcts.Comment> wallComments = client.get_wall_comments("someUserId", Types.Sorting_Types.Newest);
Console.WriteLine("First wall comment content: " + wallComments[0].content);
} catch
{
Console.WriteLine("Could not get wall comments");
}
This function allows you to flag a post / profile on Amino
try
{
client.flag("spamming posts", Amino.Types.Flag_Types.Spam, Amino.Types.Flag_Targets.User, false);
Console.WriteLine("Flagged content!");
} catch
{
Console.WriteLine("Could not flag content");
}
This function allows you to delete a specific chat message using the current Amino account
try
{
client.delete_message("someChatId", "someMessageId", true, "spam content");
Console.WriteLine("Message deleted!");
} catch
{
Console.WriteLine("Could not delete message!");
}
This function allows you to mark a message as read
try
{
client.mark_as_read("someChatId", "someMessageId");
Console.WriteLine("Marked message as read");
} catch
{
Console.WriteLine("Could not mark message as read");
}
This function allows you to visit a users Amino profile
try
{
client.visit("someUserId");
Console.WriteLine("Visited profile");
} catch
{
Console.WriteLine("Could not visit user!");
}
This function allows you to follow a user using the current Amino account
try
{
client.follow("someUserId");
Console.WriteLine("Followed user");
} catch
{
Console.WriteLine("Could not follow user");
}
This function allows you to unfollow a user using the current Amino account
try
{
client.unfollow_user("someUserId");
Console.WriteLine("Unfollowed user");
} catch
{
Console.WriteLine("Could not unfollow user");
}
This function allows you to block a user using the current Amino account
try
{
client.block_user("someUserId");
Console.WriteLine("Blocked user");
} catch
{
Console.WriteLine("Could not block user");
}
This function allows you to unblock a user using the current Amino account
try
{
client.unblock_user("someUserId");
Console.WriteLine("Unblocked user");
} catch
{
Console.WriteLine("Could not unblock user");
}
This function allows you to join a community using the current Amino account
try
{
client.join_community("123456");
Console.WriteLine("Joined community");
} catch
{
Console.WriteLine("Could not join community");
}
This function allows you to make a join request to a community
try
{
client.join_community_request("123456", "I like foxes.");
Console.WriteLine("Requested to join community");
} catch
{
Console.WriteLine("Could not request to join the community");
}
This function allows you to leave a comunity using the current Amino account
try
{
client.leave_community("123456");
Console.WriteLine("Left community");
} catch
{
Console.WriteLine("Could not leave community");
}
This function allows you to flag a community
try
{
client.flag_community("123456", "No foxes", Amino.Types.Flag_Types.Trolling, true);
Console.WriteLine("Flagged community");
} catch
{
Console.WriteLine("Could not flag community");
}
This function allows you to upload media directly to the Amino servers, it will return the resulting media URL.
type : Amino.Types.Upload_File_Types : The type of media that you want to upload
try
{
//Uploading media using the file bytes
byte[] fileBytes = File.ReadAllBytes("Path_To_File");
string uploaded_with_bytes = client.upload_media(fileBytes, Types.upload_File_Types.Image);
//Uploading media using file path
string uploaded_with_path = client.upload_media("Path_To_File", Types.upload_File_Types.Image);
} catch { Console.WriteLine("Could not upload media"); }
### edit_profile(string nickname, string content, byte[] icon, string backgroundColor, string backgroundMediaUrl, string defaultChatbubbleId) : Task
This function allows you to edit your global Amino profile
- Success: Edits the profile and completes the task successfully
- Error: Throws an Exception
### Values:
- nickname : string (default: null) : The nickname you want the account to have
- content : string (default: null) : The content of the accounts description you want the account to have
- icon : byte[] (default: null) : The icon you want the account to have as profile picture
- backgroundColor : string (default: null) : The background color of the account as HEX format
- backgroundMediaUrl : string (default: null) : The backkground media you want the account to have
- defaultChatbubbleId : string (default: null) : The default chat bubble ID you want the account to have
### Example:
```CSharp
try
{
client.edit_profile("I hated making this one.", "it sucked and probably doesn't even work.", backgroundColor: "#FFFFFF");
Console.WriteLine("Edited profile");
} catch
{
Console.WriteLine("Could not edit profile");
}
This function allows you to set the privacy status of the current Amino account
try
{
client.set_privacy_status(true, false);
Console.WriteLine("Set privacy status");
} catch
{
Console.WriteLine("Could not set privacy status");
}
This function allows you to change your Amino ID, note that you can't do this an unlimited amount of times
try
{
client.set_amino_id("someAminoID");
Console.WriteLine("Set Amino ID");
} catch
{
Console.WriteLine("Could not set Amino ID");
}
This function allows you to add a linked community to the profile of the current Amino account
try
{
client.add_linked_community(123456);
Console.WriteLine("Added linked community");
} catch
{
Console.WriteLine("Could not add linked community");
}
This function allows you to remove a linked community from the profile of the current Amino account
try
{
client.remove_linked_community(123456);
Console.WriteLine("Removed linked community");
} catch
{
Console.WriteLine("Could not remove linked community");
}
This function allows you to comment below a post, a wall or reply to a comment using the current Amino account
try
{
client.comment("Nice post. Sadly it's not about Foxes.", Amino.Types.Comment_Types.Blog, "somePostId");
Console.WriteLine("Comment posted");
} catch
{
Console.WriteLine("Could not comment");
}
This function allows you to delete a comment from a post, a users wall or a reply using the current Amino account
try
{
client.delete_comment("someCommentId", Amino.Types.Comment_Types.Blog, "someBlogPostId");
Console.WriteLine("Deleted comment");
} catch
{
Console.WriteLine("Could not delete comment");
}
This function allows you to like a post using the current Amino account
try
{
client.like_post("somePostID", Amino.Types.Post_Types.Blog);
Console.WriteLine("Liked post");
} catch
{
Console.WriteLiine("Could not like post");
}
This function allows you to unlike a post using the current Amino account
try
{
client.unlike_post("somePostId", Amino.Types.Post_Types.Blog);
Console.WriteLine("Unlikes post");
} catch
{
Console.WriteLine("Could not unlike post");
}
This function allows you to get information about the current Amino accounts Amino+ membership
try
{
var membershipInfo = client.get_membership_info();
Console.WriteLine("The membership will expire on: " + membershipInfo.Membership.expiredTime);
} catch
{
Console.WriteLine("Could not get membership info");
}
This function allows you to get a list of Team Amino announcements
start
and whatever this is set to
try
{
List<Amino.Objects.Post> announcementList = client.get_ta_announcements();
Console.WriteLine("Title of the first post: " + announcementList[0].title);
} catch
{
Console.WriteLine("Could not get Team Amino announcement posts!");
}
This function allows you to get the wallet info of the current Amino account
try
{
var walletInfo = client.get_wallet_info();
Console.WriteLine("This account has " + walletInfo.totalCoins + " Amino coins");
} catch
{
Console.WriteLine("Could not get wallet info");
}
This function allows you to get the wallet history of the current Amino account
start
and whatever this is set to
try
{
List<Amino.Objects.CoinHistoryEntry> coinHistory = client.get_wallet_history();
Console.WriteLine("Latest transaction amount: " + coinHistory[0].changedCoins + " paid by " + coinHistory[0].userId);
} catch
{
Console.WriteLine("Could not get wallet history.");
}
This function allows you to get a user ID thats linked to a deviceId
try
{
Console.WriteLine("Some stuff: " + client.get_from_deviceId("someDeviceId"));
} catch
{
Console.WriteLine("Could not get data from userId");
}
This function allows you to get information about a specific Amino URL (code)
try
{
var objectInfo = client.get_from_code("someUrl");
Console.WriteLine("Target Code: " + objectInfo.targetCode);
} catch
{
Console.WriteLine("Could not get object information");
}
This function allows you to get informations abou tan object using the object ID
try
{
var objectInfo = client.get_from_id("somePostId", Amino.Types.Object_Types.Blog, "123456");
Console.WriteLine("Path of the object: " + objectInfo.path);
} catch
{
Console.WriteLine("Could not get object informations");
}
This function allows you to get the language codes for each supported language as a strin array
try
{
string[] supportedLanguages = client.get_supported_languages();
Conmsole.WriteLine("List of supported languages:");
foreach(string language in supportedLanguages)
{
Console.WriteLine(language);
}
} catch
{
Console.WriteLine("Could not get supported languages");
}
This function allows you to claim the new user coupon for the current Amino account
try
{
client.claim_new_user_coupon();
Console.WriteLine("Claimed new user coupon");
} catch
{
Console.WriteLine("Could not claim new user coupon");
}
This function allows you to get a list of all global Amino users
start
and whatever this is set to
try
{
List<Amino.Obejcts.UserProfile> users = client.get_all_users();
Console.WriteLine("List of user info:")
foreach(Amino.Objects.UserProfile user in users)
{
Console.WriteLine("Name: " + user.nickname.PadRight(16) + " userId: " + user.userId);
}
} catch
{
Console.WriteLine("Could not get users!");
}
This function allows you to accept host / organizer of a chat room using the current Amino account
try
{
client.accept_host("someChatId", "someRequestId");
Console.WriteLine("Chat host has been accepted");
} catch
{
Console.WriteLine("Could not accept chat host");
}
accept_host
.This function allows you to get information about an Amino invite code and its community
try
{
var inviteInformation = client.link_identify("ABCDEF")M;
Console.WriteLine("InviteId: " + inviteInformation.invitationId + " for community: " + inviteInformation.Community.name);
} catch
{
Console.WriteLine("Could not get invite information!");
}
This function allows you to set the coin wallet configuration using the current Amino account
try
{
client.wallet_config(Amino.Types.Wallet_Config_Levels.lvl_2);
Console.WriteLine("Set wallet level successfully");
} catch
{
Console.WriteLine("Could not set wallet level");
}
This function allows you to get a list of Avatar Frames that the current Amino account has unlocked
start
and whatever this is set to
try
{
List<Amino.Objects.AvatarFrame> frames = client.get_avatar_frames();
if(frames.Count > 0)
{
Console.WriteLine("All Frame IDs and Names in current list:");
foreach(Amino.Obejcts.AvatarFrame frame in frames)
{
Console.WriteLine("FrameID: " + frame.frameId + " FrameName: " + frame.name);
}
} else
{
Console.WriteLine("This account does not have any Avatar Frames!");
}
} catch
{
Console.WriteLine("Could not get Avatar Frames");
}
This event fires each time the Client receives a Text message
static void onMessageEvent(Amino.Objects.Message message)
{
Console.WriteLine($"User {message.Author.userName} has sent a message: {message.content} in chat: {message.chatId}");
}
[...]
static void main(string[] args) { [...] client.onMessage += onMessageEvent; }
### onImageMessage : Amino.Objects.ImageMessage
This event fires each time the Client receives an Image message
### Event:
- This event returns an Amino.Objects.ImageMessage Object
### Example:
```CSharp
static void onImageMessageEvent(Amino.Objects.ImageMessage imageMessage)
{
Console.WriteLine($"User {imageMessage.Author.nickname} has sent an image: {imageMessage.mediaUrl}");
}
[...]
static void main(string[] args)
{
[...]
client.onImageMessage += onImageMessageEvent;
}
This event fires each time a websocket message has been recevied by the Client
static void onWebSocketMessageEvent(string socketMessage)
{
Console.WriteLine("Recevied websocket message: " + socketMessage);
}
[...]
static void main(string[] args) { [...] client.onWebSocketMessage += onWebSocketMessageEvent; }
## helpers
- The helpers class is an important part of Amino.Net and any other Amino library, as it allows you to get around the Amino API more easily
### Values:
- BaseURL : string : This string represents the base URL to Aminos REST API
## Methods / Functions
### generate_device_id() : string
This function allows you to generate an Amino ready device ID
### Values:
- None
### Example:
```CSharp
Console.WriteLine("Amino device ID: " + Amino.helpers.generate_device_id());
This function allows you to generate an Amino valid request signiture
Console.WriteLine("Amino Signiture: " + Amino.helpers.generate_signiture("{ some JSON data }"));
This function allows you to generate an Amino valid request signiture out of file data
Console.WriteLine("Some file signiture: " + Amino.helpers.generate_file_signiture(File.ReadAllBytes("Some_File_Path")));
This function allows you to get the current UNIX timestamp, it is not Amino ready!
Console.WriteLine("Current UNIX Timestamp: " + Amino.helpers.GetTimestamp());
Console.WriteLine("Current UNIX Timestamp (Amino ready): " + Amino.helpers.GetTimestamp() * 1000);
This function allows you to convert a Type into the fitting Amino object ID
Console.WriteLine("The Amino ID for Blog posts is: " + Amino.helpers.get_ObjectTypeID(Types.Object_Types.Blog));