All Projects β†’ vrchatapi β†’ vrchatapi-csharp

vrchatapi / vrchatapi-csharp

Licence: MIT license
🟣VRChat API Library for C#

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to vrchatapi-csharp

vrchatapi-javascript
🟑 VRChat API Library for JavaScript and TypeScript
Stars: ✭ 32 (+18.52%)
Mutual labels:  vrchat, vrchatapi
DynamicBonesStudio
A useful tool for quickly setting up and manipulating dynamic bones for Unity characters
Stars: ✭ 60 (+122.22%)
Mutual labels:  vrchat
UNet
Network system for VRChat UDON
Stars: ✭ 19 (-29.63%)
Mutual labels:  vrchat
KorikasAvatarPlugin
🐈 Manage your VRChat avatars with ease!
Stars: ✭ 27 (+0%)
Mutual labels:  vrchat
ml mods
MelonLoader mods for VRChat
Stars: ✭ 40 (+48.15%)
Mutual labels:  vrchat
home-space
Startpage and WebXR home
Stars: ✭ 43 (+59.26%)
Mutual labels:  vrchat
YOLOv4-Tiny-in-UnityCG-HLSL
A modern object detector inside fragment shaders
Stars: ✭ 38 (+40.74%)
Mutual labels:  vrchat
Unity-MSDF-Fonts
Basic tool to convert Unity fonts to use Multichannel Signed Distance Field fonts
Stars: ✭ 54 (+100%)
Mutual labels:  vrchat
SlimeVR-Server
Server app for SlimeVR ecosystem
Stars: ✭ 361 (+1237.04%)
Mutual labels:  vrchat
VRChatRejoinTool
This software helps rejoin to the VRChat instance.
Stars: ✭ 51 (+88.89%)
Mutual labels:  vrchat
ACLS-Shader
Unity HLSL VR ready "Toony/PBR hybrid" avatar shader for VRCHAT and similar platforms. Built with game industry standard toony appearances and adaptive to vrchat render constraints and reactive to common incorrect user generated map lighting.
Stars: ✭ 20 (-25.93%)
Mutual labels:  vrchat
BloodborneSDK
VRChat's latest modded/modified SDK, support for SDK2, SDK3 - Avatar, and SDK3 - World.
Stars: ✭ 15 (-44.44%)
Mutual labels:  vrchat
material-combiner-addon
Blender addon for material combining, uv bounds fixing
Stars: ✭ 309 (+1044.44%)
Mutual labels:  vrchat
Reflex-Shader-2
Reflex Shader 2
Stars: ✭ 35 (+29.63%)
Mutual labels:  vrchat
100Avatars
100Avatars - 200 open-source Avatars
Stars: ✭ 82 (+203.7%)
Mutual labels:  vrchat
rvc
A 32-bit RISC-V emulator in a shader (and C)
Stars: ✭ 491 (+1718.52%)
Mutual labels:  vrchat
EasyEventEditor
Drop in replacement for the default Unity event editor drawer that allows listener reordering
Stars: ✭ 103 (+281.48%)
Mutual labels:  vrchat
VRCMods
A collection of various VRChat mods aimed at improving user experience or fixing issues
Stars: ✭ 235 (+770.37%)
Mutual labels:  vrchat
WorldCreatorAssistant
Unity Editor extension for automating VRChat world project package management
Stars: ✭ 133 (+392.59%)
Mutual labels:  vrchat
VRCMods
βš™οΈ New features & quality of life improvements for VRChat
Stars: ✭ 21 (-22.22%)
Mutual labels:  vrchat

VRChat API Library for C#

A C# client to interact with the unofficial VRChat API. Supports all REST calls specified in https://github.com/vrchatapi/specification.

Disclaimer

This is the official response of the VRChat Team (from Tupper more specifically) on the usage of the VRChat API.

Use of the API using applications other than the approved methods (website, VRChat application) are not officially supported. You may use the API for your own application, but keep these guidelines in mind:

  • We do not provide documentation or support for the API.
  • Do not make queries to the API more than once per 60 seconds.
  • Abuse of the API may result in account termination.
  • Access to API endpoints may break at any given time, with no warning.

As stated, this documentation was not created with the help of the official VRChat team. Therefore this documentation is not an official documentation of the VRChat API and may not be always up to date with the latest versions. If you find that a page or endpoint is not longer valid please create an issue and tell us so we can fix it.

Installation

Install with NuGet:

# With .NET CLI
dotnet add package VRChat.API --version <LATEST_VERSION>

# Or with Package Manager
Install-Package VRChat.API -Version <LATEST_VERSION>

Getting Started

The following example code authenticates you with the API, fetches your join-date, and prints the name of a world.

using System;
using VRChat.API.Api;
using VRChat.API.Client;
using VRChat.API.Model;


// Authentication credentials
Configuration Config = new Configuration();
Config.Username = "username";
Config.Password = "password";

// Create instances of API's we'll need
AuthenticationApi AuthApi = new AuthenticationApi(Config);
UsersApi UserApi = new UsersApi(Config);
WorldsApi WorldApi = new WorldsApi(Config);

try
{
    // Calling "GetCurrentUser(Async)" logs you in if you are not already logged in.
    CurrentUser CurrentUser = await AuthApi.GetCurrentUserAsync();
    Console.WriteLine("Logged in as {0}, Current Avatar {1}", CurrentUser.DisplayName, CurrentUser.CurrentAvatar);

    User OtherUser = await UserApi.GetUserAsync("usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469");
    Console.WriteLine("Found user {0}, joined {1}", OtherUser.DisplayName, OtherUser.DateJoined);

    World World = await WorldApi.GetWorldAsync("wrld_ba913a96-fac4-4048-a062-9aa5db092812");
    Console.WriteLine("Found world {0}, visits: {1}", World.Name, World.Visits);
}
catch (ApiException e)
{
    Console.WriteLine("Exception when calling API: {0}", e.Message);
    Console.WriteLine("Status Code: {0}", e.ErrorCode);
    Console.WriteLine(e.ToString());
}

Documentation for API Endpoints

All URIs are relative to https://api.vrchat.cloud/api/1

Class Method HTTP request Description
AuthenticationApi CheckUserExists GET /auth/exists Check User Exists
AuthenticationApi DeleteUser PUT /user/{userId}/delete Delete User
AuthenticationApi GetCurrentUser GET /auth/user Login and/or Get Current User Info
AuthenticationApi Logout PUT /logout Logout
AuthenticationApi Verify2FA POST /auth/twofactorauth/totp/verify Verify 2FA code
AuthenticationApi VerifyAuthToken GET /auth Verify Auth Token
AuthenticationApi VerifyRecoveryCode POST /auth/twofactorauth/otp/verify Verify 2FA code with Recovery code
AvatarsApi CreateAvatar POST /avatars Create Avatar
AvatarsApi DeleteAvatar DELETE /avatars/{avatarId} Delete Avatar
AvatarsApi GetAvatar GET /avatars/{avatarId} Get Avatar
AvatarsApi GetFavoritedAvatars GET /avatars/favorites List Favorited Avatars
AvatarsApi SearchAvatars GET /avatars Search Avatars
AvatarsApi SelectAvatar PUT /avatars/{avatarId}/select Select Avatar
AvatarsApi SelectFallbackAvatar PUT /avatars/{avatarId}/selectFallback Select Fallback Avatar
AvatarsApi UpdateAvatar PUT /avatars/{avatarId} Update Avatar
EconomyApi GetCurrentSubscriptions GET /auth/user/subscription Get Current Subscriptions
EconomyApi GetLicenseGroup GET /licenseGroups/{licenseGroupId} Get License Group
EconomyApi GetSteamTransaction GET /Steam/transactions/{transactionId} Get Steam Transaction
EconomyApi GetSteamTransactions GET /Steam/transactions List Steam Transactions
EconomyApi GetSubscriptions GET /subscriptions List Subscriptions
FavoritesApi AddFavorite POST /favorites Add Favorite
FavoritesApi ClearFavoriteGroup DELETE /favorite/group/{favoriteGroupType}/{favoriteGroupName}/{userId} Clear Favorite Group
FavoritesApi GetFavorite GET /favorites/{favoriteId} Show Favorite
FavoritesApi GetFavoriteGroup GET /favorite/group/{favoriteGroupType}/{favoriteGroupName}/{userId} Show Favorite Group
FavoritesApi GetFavoriteGroups GET /favorite/groups List Favorite Groups
FavoritesApi GetFavorites GET /favorites List Favorites
FavoritesApi RemoveFavorite DELETE /favorites/{favoriteId} Remove Favorite
FavoritesApi UpdateFavoriteGroup PUT /favorite/group/{favoriteGroupType}/{favoriteGroupName}/{userId} Update Favorite Group
FilesApi CreateFile POST /file Create File
FilesApi CreateFileVersion POST /file/{fileId} Create File Version
FilesApi DeleteFile DELETE /file/{fileId} Delete File
FilesApi DeleteFileVersion DELETE /file/{fileId}/{versionId} Delete File Version
FilesApi DownloadFileVersion GET /file/{fileId}/{versionId} Download File Version
FilesApi FinishFileDataUpload PUT /file/{fileId}/{versionId}/{fileType}/finish Finish FileData Upload
FilesApi GetFile GET /file/{fileId} Show File
FilesApi GetFileDataUploadStatus GET /file/{fileId}/{versionId}/{fileType}/status Check FileData Upload Status
FilesApi GetFiles GET /files List Files
FilesApi StartFileDataUpload PUT /file/{fileId}/{versionId}/{fileType}/start Start FileData Upload
FriendsApi DeleteFriendRequest DELETE /user/{userId}/friendRequest Delete Friend Request
FriendsApi Friend POST /user/{userId}/friendRequest Send Friend Request
FriendsApi GetFriendStatus GET /user/{userId}/friendStatus Check Friend Status
FriendsApi GetFriends GET /auth/user/friends List Friends
FriendsApi Unfriend DELETE /auth/user/friends/{userId} Unfriend
InstancesApi GetInstance GET /instances/{worldId}:{instanceId} Get Instance
InstancesApi GetInstanceByShortName GET /instances/s/{shortName} Get Instance By Short Name
InstancesApi GetShortName GET /instances/{worldId}:{instanceId}/shortName Get Instance Short Name
InstancesApi SendSelfInvite POST /instances/{worldId}:{instanceId}/invite Send Self Invite
InviteApi GetInviteMessage GET /message/{userId}/{messageType}/{slot} Get Invite Message
InviteApi GetInviteMessages GET /message/{userId}/{messageType} List Invite Messages
InviteApi InviteMyselfTo POST /invite/myself/to/{worldId}:{instanceId} Invite Myself To Instance
InviteApi InviteUser POST /invite/{userId} Invite User
InviteApi RequestInvite POST /requestInvite/{userId} Request Invite
InviteApi ResetInviteMessage DELETE /message/{userId}/{messageType}/{slot} Reset Invite Message
InviteApi RespondInvite POST /invite/{notificationId}/response Respond Invite
InviteApi UpdateInviteMessage PUT /message/{userId}/{messageType}/{slot} Update Invite Message
NotificationsApi AcceptFriendRequest PUT /auth/user/notifications/{notificationId}/accept Accept Friend Request
NotificationsApi ClearNotifications PUT /auth/user/notifications/clear Clear All Notifications
NotificationsApi DeleteNotification PUT /auth/user/notifications/{notificationId}/hide Delete Notification
NotificationsApi GetNotifications GET /auth/user/notifications List Notifications
NotificationsApi MarkNotificationAsRead PUT /auth/user/notifications/{notificationId}/see Mark Notification As Read
PermissionsApi GetAssignedPermissions GET /auth/permissions Get Assigned Permissions
PermissionsApi GetPermission GET /permissions/{permissionId} Get Permission
PlayermoderationApi ClearAllPlayerModerations DELETE /auth/user/playermoderations Clear All Player Moderations
PlayermoderationApi DeletePlayerModeration DELETE /auth/user/playermoderations/{playerModerationId} Delete Player Moderation
PlayermoderationApi GetPlayerModeration GET /auth/user/playermoderations/{playerModerationId} Get Player Moderation
PlayermoderationApi GetPlayerModerations GET /auth/user/playermoderations Search Player Moderations
PlayermoderationApi ModerateUser POST /auth/user/playermoderations Moderate User
PlayermoderationApi UnmoderateUser PUT /auth/user/unplayermoderate Unmoderate User
SystemApi GetCSS GET /css/app.css Download CSS
SystemApi GetConfig GET /config Fetch API Config
SystemApi GetCurrentOnlineUsers GET /visits Current Online Users
SystemApi GetHealth GET /health Check API Health
SystemApi GetInfoPush GET /infoPush Show Information Notices
SystemApi GetJavaScript GET /js/app.js Download JavaScript
SystemApi GetSystemTime GET /time Current System Time
UsersApi GetUser GET /users/{userId} Get User by ID
UsersApi GetUserByName GET /users/{username}/name Get User by Username
UsersApi SearchUsers GET /users Search All Users
UsersApi UpdateUser PUT /users/{userId} Update User Info
WorldsApi CreateWorld POST /worlds Create World
WorldsApi DeleteWorld DELETE /worlds/{worldId} Delete World
WorldsApi GetActiveWorlds GET /worlds/active List Active Worlds
WorldsApi GetFavoritedWorlds GET /worlds/favorites List Favorited Worlds
WorldsApi GetRecentWorlds GET /worlds/recent List Recent Worlds
WorldsApi GetWorld GET /worlds/{worldId} Get World by ID
WorldsApi GetWorldInstance GET /worlds/{worldId}/{instanceId} Get World Instance
WorldsApi GetWorldMetadata GET /worlds/{worldId}/metadata Get World Metadata
WorldsApi GetWorldPublishStatus GET /worlds/{worldId}/publish Get World Publish Status
WorldsApi PublishWorld PUT /worlds/{worldId}/publish Publish World
WorldsApi SearchWorlds GET /worlds Search All Worlds
WorldsApi UnpublishWorld DELETE /worlds/{worldId}/publish Unpublish World
WorldsApi UpdateWorld PUT /worlds/{worldId} Update World

Documentation for Models

Contributing

Contributions are welcome, but do not add features that should be handled by the OpenAPI specification.

Join the Discord server to get in touch with us.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].