All URIs are relative to https://api.vrchat.cloud/api/1
| Method | HTTP request | Description |
|---|---|---|
| checkUserExists | GET /auth/exists | Check User Exists |
| deleteUser | PUT /users/{userId}/delete | Delete User |
| getCurrentUser | GET /auth/user | Login and/or Get Current User Info |
| logout | PUT /logout | Logout |
| verify2FA | POST /auth/twofactorauth/totp/verify | Verify 2FA code |
| verify2FAEmailCode | POST /auth/twofactorauth/emailotp/verify | Verify 2FA email code |
| verifyAuthToken | GET /auth | Verify Auth Token |
| verifyRecoveryCode | POST /auth/twofactorauth/otp/verify | Verify 2FA code with Recovery code |
UserExists checkUserExists(email, displayName, userId, excludeUserId)
Check User Exists
Checks if a user by a given `username`, `displayName` or `email` exist. This is used during registration to check if a username has already been taken, during change of displayName to check if a displayName is available, and during change of email to check if the email is already used. In the later two cases the `excludeUserId` is used to exclude oneself, otherwise the result would always be true. It is REQUIRED to include AT LEAST `username`, `displayName` or `email` query parameter. Although they can be combined - in addition with `excludeUserId` (generally to exclude yourself) - to further fine-tune the search.
// Import classes:
import io.github.vrchatapi.ApiClient;
import io.github.vrchatapi.ApiException;
import io.github.vrchatapi.Configuration;
import io.github.vrchatapi.models.*;
import io.github.vrchatapi.api.AuthenticationApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://api.vrchat.cloud/api/1");
AuthenticationApi apiInstance = new AuthenticationApi(defaultClient);
String email = "email_example"; // String | Filter by email.
String displayName = "displayName_example"; // String | Filter by displayName.
String userId = "userId_example"; // String | Filter by UserID.
String excludeUserId = "excludeUserId_example"; // String | Exclude by UserID.
try {
UserExists result = apiInstance.checkUserExists(email, displayName, userId, excludeUserId);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling AuthenticationApi#checkUserExists");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| String | Filter by email. | [optional] | |
| displayName | String | Filter by displayName. | [optional] |
| userId | String | Filter by UserID. | [optional] |
| excludeUserId | String | Exclude by UserID. | [optional] |
No authorization required
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Returns a response if a user exists or not. | - |
| 400 | Error response when missing at least 1 of the required parameters. | - |
CurrentUser deleteUser(userId)
Delete User
Deletes the account with given ID. Normal users only have permission to delete their own account. Account deletion is 14 days from this request, and will be cancelled if you do an authenticated request with the account afterwards. VRC+ NOTE: Despite the 14-days cooldown, any VRC+ subscription will be cancelled immediately. METHOD NOTE: Despite this being a Delete action, the method type required is PUT.
// Import classes:
import io.github.vrchatapi.ApiClient;
import io.github.vrchatapi.ApiException;
import io.github.vrchatapi.Configuration;
import io.github.vrchatapi.auth.*;
import io.github.vrchatapi.models.*;
import io.github.vrchatapi.api.AuthenticationApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://api.vrchat.cloud/api/1");
// Configure API key authorization: authCookie
ApiKeyAuth authCookie = (ApiKeyAuth) defaultClient.getAuthentication("authCookie");
authCookie.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//authCookie.setApiKeyPrefix("Token");
AuthenticationApi apiInstance = new AuthenticationApi(defaultClient);
String userId = "userId_example"; // String | Must be a valid user ID.
try {
CurrentUser result = apiInstance.deleteUser(userId);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling AuthenticationApi#deleteUser");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| userId | String | Must be a valid user ID. |
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | OK | - |
| 401 | Error response due to missing auth cookie. | - |
CurrentUser getCurrentUser()
Login and/or Get Current User Info
This endpoint does the following two operations: 1) Checks if you are already logged in by looking for a valid `auth` cookie. If you are have a valid auth cookie then no additional auth-related actions are taken. If you are not logged in then it will log you in with the `Authorization` header and set the `auth` cookie. The `auth` cookie will only be sent once. 2) If logged in, this function will also return the CurrentUser object containing detailed information about the currently logged in user. The auth string after `Authorization: Basic {string}` is a base64-encoded string of the username and password, both individually url-encoded, and then joined with a colon. > base64(urlencode(username):urlencode(password)) WARNING: Session Limit: Each authentication with login credentials counts as a separate session, out of which you have a limited amount. Make sure to save and reuse the `auth` cookie if you are often restarting the program. The provided API libraries automatically save cookies during runtime, but does not persist during restart. While it can be fine to use username/password during development, expect in production to very fast run into the rate-limit and be temporarily blocked from making new sessions until older ones expire. The exact number of simultaneous sessions is unknown/undisclosed.
// Import classes:
import io.github.vrchatapi.ApiClient;
import io.github.vrchatapi.ApiException;
import io.github.vrchatapi.Configuration;
import io.github.vrchatapi.auth.*;
import io.github.vrchatapi.models.*;
import io.github.vrchatapi.api.AuthenticationApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://api.vrchat.cloud/api/1");
// Configure API key authorization: authCookie
ApiKeyAuth authCookie = (ApiKeyAuth) defaultClient.getAuthentication("authCookie");
authCookie.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//authCookie.setApiKeyPrefix("Token");
// Configure HTTP basic authorization: authHeader
HttpBasicAuth authHeader = (HttpBasicAuth) defaultClient.getAuthentication("authHeader");
authHeader.setUsername("YOUR USERNAME");
authHeader.setPassword("YOUR PASSWORD");
// Configure API key authorization: twoFactorAuthCookie
ApiKeyAuth twoFactorAuthCookie = (ApiKeyAuth) defaultClient.getAuthentication("twoFactorAuthCookie");
twoFactorAuthCookie.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//twoFactorAuthCookie.setApiKeyPrefix("Token");
AuthenticationApi apiInstance = new AuthenticationApi(defaultClient);
try {
CurrentUser result = apiInstance.getCurrentUser();
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling AuthenticationApi#getCurrentUser");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}This endpoint does not need any parameter.
authCookie, authHeader, twoFactorAuthCookie
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | OK | * Set-Cookie - Successful authentication returns an `auth` cookie. |
| 401 | Error response due to missing auth cookie. | - |
Success logout()
Logout
Invalidates the login session.
// Import classes:
import io.github.vrchatapi.ApiClient;
import io.github.vrchatapi.ApiException;
import io.github.vrchatapi.Configuration;
import io.github.vrchatapi.auth.*;
import io.github.vrchatapi.models.*;
import io.github.vrchatapi.api.AuthenticationApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://api.vrchat.cloud/api/1");
// Configure API key authorization: authCookie
ApiKeyAuth authCookie = (ApiKeyAuth) defaultClient.getAuthentication("authCookie");
authCookie.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//authCookie.setApiKeyPrefix("Token");
AuthenticationApi apiInstance = new AuthenticationApi(defaultClient);
try {
Success result = apiInstance.logout();
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling AuthenticationApi#logout");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}This endpoint does not need any parameter.
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | OK | * Set-Cookie - Clears the `auth` cookie. * \0Set-Cookie - Clears the `age` cookie. * \0\0Set-Cookie - Clears the `tos` cookie. |
| 401 | Error response due to missing auth cookie. | - |
Verify2FAResult verify2FA(twoFactorAuthCode)
Verify 2FA code
Finishes the login sequence with a normal 2FA-generated code for accounts with 2FA-protection enabled.
// Import classes:
import io.github.vrchatapi.ApiClient;
import io.github.vrchatapi.ApiException;
import io.github.vrchatapi.Configuration;
import io.github.vrchatapi.auth.*;
import io.github.vrchatapi.models.*;
import io.github.vrchatapi.api.AuthenticationApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://api.vrchat.cloud/api/1");
// Configure API key authorization: authCookie
ApiKeyAuth authCookie = (ApiKeyAuth) defaultClient.getAuthentication("authCookie");
authCookie.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//authCookie.setApiKeyPrefix("Token");
AuthenticationApi apiInstance = new AuthenticationApi(defaultClient);
TwoFactorAuthCode twoFactorAuthCode = new TwoFactorAuthCode(); // TwoFactorAuthCode |
try {
Verify2FAResult result = apiInstance.verify2FA(twoFactorAuthCode);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling AuthenticationApi#verify2FA");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| twoFactorAuthCode | TwoFactorAuthCode | [optional] |
- Content-Type: application/json
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | OK | * Set-Cookie - Provides a `twoFactorAuth` cookie, which can be used to bypasses the 2FA requirement for future logins on the same device. |
| 401 | Error response due to missing auth cookie. | - |
Verify2FAEmailCodeResult verify2FAEmailCode(twoFactorEmailCode)
Verify 2FA email code
Finishes the login sequence with an 2FA email code.
// Import classes:
import io.github.vrchatapi.ApiClient;
import io.github.vrchatapi.ApiException;
import io.github.vrchatapi.Configuration;
import io.github.vrchatapi.auth.*;
import io.github.vrchatapi.models.*;
import io.github.vrchatapi.api.AuthenticationApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://api.vrchat.cloud/api/1");
// Configure API key authorization: authCookie
ApiKeyAuth authCookie = (ApiKeyAuth) defaultClient.getAuthentication("authCookie");
authCookie.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//authCookie.setApiKeyPrefix("Token");
AuthenticationApi apiInstance = new AuthenticationApi(defaultClient);
TwoFactorEmailCode twoFactorEmailCode = new TwoFactorEmailCode(); // TwoFactorEmailCode |
try {
Verify2FAEmailCodeResult result = apiInstance.verify2FAEmailCode(twoFactorEmailCode);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling AuthenticationApi#verify2FAEmailCode");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| twoFactorEmailCode | TwoFactorEmailCode | [optional] |
- Content-Type: application/json
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | OK | * Set-Cookie - Provides a `twoFactorAuth` cookie, which can be used to bypasses the 2FA requirement for future logins on the same device. |
| 401 | Error response due to missing auth cookie. | - |
VerifyAuthTokenResult verifyAuthToken()
Verify Auth Token
Verify whether the currently provided Auth Token is valid.
// Import classes:
import io.github.vrchatapi.ApiClient;
import io.github.vrchatapi.ApiException;
import io.github.vrchatapi.Configuration;
import io.github.vrchatapi.auth.*;
import io.github.vrchatapi.models.*;
import io.github.vrchatapi.api.AuthenticationApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://api.vrchat.cloud/api/1");
// Configure API key authorization: authCookie
ApiKeyAuth authCookie = (ApiKeyAuth) defaultClient.getAuthentication("authCookie");
authCookie.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//authCookie.setApiKeyPrefix("Token");
AuthenticationApi apiInstance = new AuthenticationApi(defaultClient);
try {
VerifyAuthTokenResult result = apiInstance.verifyAuthToken();
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling AuthenticationApi#verifyAuthToken");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}This endpoint does not need any parameter.
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Returns wether a provided auth token is valid or not. | - |
| 401 | Error response due to missing auth cookie. | - |
Verify2FAResult verifyRecoveryCode(twoFactorAuthCode)
Verify 2FA code with Recovery code
Finishes the login sequence with an OTP (One Time Password) recovery code for accounts with 2FA-protection enabled.
// Import classes:
import io.github.vrchatapi.ApiClient;
import io.github.vrchatapi.ApiException;
import io.github.vrchatapi.Configuration;
import io.github.vrchatapi.auth.*;
import io.github.vrchatapi.models.*;
import io.github.vrchatapi.api.AuthenticationApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://api.vrchat.cloud/api/1");
// Configure API key authorization: authCookie
ApiKeyAuth authCookie = (ApiKeyAuth) defaultClient.getAuthentication("authCookie");
authCookie.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//authCookie.setApiKeyPrefix("Token");
AuthenticationApi apiInstance = new AuthenticationApi(defaultClient);
TwoFactorAuthCode twoFactorAuthCode = new TwoFactorAuthCode(); // TwoFactorAuthCode |
try {
Verify2FAResult result = apiInstance.verifyRecoveryCode(twoFactorAuthCode);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling AuthenticationApi#verifyRecoveryCode");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| twoFactorAuthCode | TwoFactorAuthCode | [optional] |
- Content-Type: application/json
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | OK | * Set-Cookie - Provides a `twoFactorAuth` cookie, which can be used to bypasses the 2FA requirement for future logins on the same device. |
| 401 | Error response due to missing auth cookie. | - |