You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/docs/(guides)/contributing.mdx
+29-39Lines changed: 29 additions & 39 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,12 +4,12 @@ icon: Heart
4
4
description: Help improve the VRChat API documentation through code examples, bug fixes, documentation updates, and community support. Find open issues and join our Discord community.
Thanks for your interest in contributing to the **VRChat API documentation**! The VRChat API serves thousands of developers building applications, tools, and integrations for the VRChat platform.
15
15
@@ -21,23 +21,20 @@ Your contributions help make this documentation more accurate, comprehensive, an
Each programming language has its own repository with generated SDKs based on the OpenAPI specification. These are automatically generated from the OpenAPI specification and provide type-safe API clients for different programming languages.
Fix typos, grammar, or unclear explanations. Add missing information or examples. Improve
73
+
existing guides and tutorials. Update outdated information.
77
74
</Card>
78
-
<Card
79
-
title="Code examples"
80
-
icon={<Code/>}
81
-
>
82
-
Add practical code examples for different programming languages. Improve existing code samples. Create tutorial projects demonstrating API usage.
75
+
<Cardtitle="Code examples"icon={<Code />}>
76
+
Add practical code examples for different programming languages. Improve existing code samples.
77
+
Create tutorial projects demonstrating API usage.
83
78
</Card>
84
-
<Card
85
-
href="https://github.com/vrchatapi/specification"
86
-
title="API reference"
87
-
icon={<GitFork/>}
88
-
>
89
-
Report missing or incorrect API endpoint documentation. Suggest improvements to parameter descriptions. Contribute to the OpenAPI specification directly.
Answer questions on Discord. Help other developers troubleshoot API issues. Share your own
85
+
experiences and best practices.
96
86
</Card>
97
87
</Cards>
98
88
99
89
## Before you start
100
90
101
-
Before jumping in, it's worth doing a quick check to make sure you're not duplicating work or going against the grain. Take a look at the [open issues](https://github.com/vrchatapi/specification/issues) to see if someone's already tackling what you have in mind.
91
+
Before jumping in, it's worth doing a quick check to make sure you're not duplicating work or going against the grain. Take a look at the [open issues](https://github.com/vrchatapi/specification/issues) to see if someone's already tackling what you have in mind.
102
92
103
93
If you're planning something bigger than a small fix, hop into our [Discord](/discord) first - the community is pretty active and can save you time by pointing you in the right direction or letting you know about any quirks you should be aware of.
104
94
@@ -111,4 +101,4 @@ Don't hesitate to reach out if you're unsure about anything:
111
101
-**Discord**: Join our [Discord server](/discord) for real-time help and discussion
112
102
-**GitHub Issues**: Ask questions directly on relevant issues
113
103
114
-
We appreciate all contributions, no matter how small. Every improvement helps make the VRChat API more accessible to developers!
104
+
We appreciate all contributions, no matter how small. Every improvement helps make the VRChat API more accessible to developers!
Copy file name to clipboardExpand all lines: content/docs/(guides)/faq.mdx
+17-12Lines changed: 17 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,15 +5,18 @@ icon: Info
5
5
---
6
6
7
7
## What should I do if I think I've found a bug in any of the libraries? [#bugs]
8
+
8
9
If the issue pertains to an endpoint that has been changed in any way, such as incorrect types or a missing endpoint, please create an issue on the [specification repository](https://github.com/vrchatapi/specification/issues/new).
9
10
10
11
For language-specific issues, kindly create an issue on the relevant SDK repository. However, it's worth noting that libraries are generated from the specification, and therefore **most issues need to be resolved in the specification itself**.
11
12
12
13
<Cardhref="/contributing"title="Get involved in fixing issues">
13
-
Found something that needs fixing? Join the community effort to improve the VRChat API documentation by fixing bugs, adding endpoints, or improving examples.
14
+
Found something that needs fixing? Join the community effort to improve the VRChat API
15
+
documentation by fixing bugs, adding endpoints, or improving examples.
14
16
</Card>
15
17
16
18
## I found an exploit or vulnerability! [#vulnerabilities]
19
+
17
20
If the exploit is in VRChat's scope, and not handled by us, please adhere to their responsible disclosure policy and **do not discuss it in public channels** or forums.
18
21
19
22
Report it on VRChat's [disclosure form](https://help.vrchat.com/hc/en-us/requests/new?ticket_form_id=1500001130621) page.
@@ -23,29 +26,31 @@ It's also recommended to include additional details such as a proof-of-concept,
23
26
24
27
The following is a copy of [VRChat's responsible disclosure policy](https://discord.com/channels/189511567539306508/368935109426020374/1121127082588639483) as of June 14th, 2025, it may change at any time, and you should always refer to the original text for the most up-to-date information.
25
28
26
-
27
29
> Video, screenshots, chat logs, hearsay or gossip, etc alone are not helpful and do not constitute an exploit disclosure.
28
30
>
29
31
> **Bans are not issued for exploit reports and research**, assuming that:
30
-
> * the exploit has not been used by you in a harmful manner
31
-
> * all research was helpful and conducted in good faith
32
-
> * you are respecting our Terms of Service
32
+
>
33
+
> - the exploit has not been used by you in a harmful manner
34
+
> - all research was helpful and conducted in good faith
35
+
> - you are respecting our Terms of Service
33
36
34
-
## I'm getting rate limited, what does this mean? ``429 Too many requests``[#rate-limiting]
37
+
## I'm getting rate limited, what does this mean? `429 Too many requests`[#rate-limiting]
35
38
36
39
Rate limiting happens when you're making requests too quickly to VRChat's API. The `429 Too Many Requests` response is VRChat's way of telling you to slow down and give their servers a breather.
37
40
38
41
<Callouttype="warning">
39
-
Rate limits can happen at any time and must not be treated as consistent or predictable. You should always be prepared to receive a 429 response, regardless of how many requests you think you've made.
42
+
Rate limits can happen at any time and must not be treated as consistent or predictable. You
43
+
should always be prepared to receive a 429 response, regardless of how many requests you think
44
+
you've made.
40
45
</Callout>
41
46
42
47
**The golden rule: Do not submit repeated, un-metered requests.**
43
48
44
49
Here's how to handle this properly:
45
50
46
-
***Always implement exponential backoff** - This is non-negotiable. Start with a small delay (like 1 second), then double it with each retry (2s, 4s, 8s, etc.). Most HTTP libraries have built-in support for this, or you must implement it yourself.
47
-
***Cache aggressively** - Save data that rarely changes (user profiles, world details, etc.) and reuse it rather than making the same API calls over and over. Your app will be faster and more responsive too!
48
-
***Respect HTTP status codes** - When you get a 429, back off immediately. Don't keep hammering the API or you might face longer rate limits or account suspensions.
49
-
***Expect the unexpected** - Design your application to gracefully handle rate limits as a normal part of operation, not an error condition.
51
+
-**Always implement exponential backoff** - This is non-negotiable. Start with a small delay (like 1 second), then double it with each retry (2s, 4s, 8s, etc.). Most HTTP libraries have built-in support for this, or you must implement it yourself.
52
+
-**Cache aggressively** - Save data that rarely changes (user profiles, world details, etc.) and reuse it rather than making the same API calls over and over. Your app will be faster and more responsive too!
53
+
-**Respect HTTP status codes** - When you get a 429, back off immediately. Don't keep hammering the API or you might face longer rate limits or account suspensions.
54
+
-**Expect the unexpected** - Design your application to gracefully handle rate limits as a normal part of operation, not an error condition.
50
55
51
-
Remember, rate limits exist to keep the API stable for everyone. Working with them, not against them, will give you better performance in the long run.
56
+
Remember, rate limits exist to keep the API stable for everyone. Working with them, not against them, will give you better performance in the long run.
Copy file name to clipboardExpand all lines: content/docs/(guides)/instances.mdx
+10-10Lines changed: 10 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,14 +7,14 @@ Instances are parallel "rooms" or "lobbies" of a world.
7
7
Each instance can only hold a limited number of users, but there is no limit on how many instances can exist of a world.
8
8
Instances are uniquely identified by the combined World ID and Instance ID.
9
9
10
-
11
10
<Callout>
12
-
As of 2024-05-02, VRChat indicated in [a Developer Update](https://ask.vrchat.com/t/developer-update-2-may-2024/24284#changes-to-instance-apis-and-auto-creation-13) an eventual intent to replace the current system with a UUID-ish system similar to User IDs.
11
+
As of 2024-05-02, VRChat indicated in [a Developer
an eventual intent to replace the current system with a UUID-ish system similar to User IDs.
13
14
</Callout>
14
15
15
16
## Instance Generator
16
17
17
-
18
18
## Instance ID
19
19
20
20
The instance ID is the combined sum of all the arguments to the instance e.g. name, owner, and privacy setting.
@@ -34,12 +34,12 @@ Nonce is the Cryptographic key used to lock non-public instances to prevent peop
34
34
35
35
Region indicates the geographical location of the Photon servers used for the instance. **Default:**`us`
36
36
37
-
Region | Hosted in | Token
38
-
-------|-----------|------
39
-
USA, West | San José | us
40
-
USA, East | Washington D.C. | use
41
-
Europe | Amsterdam | eu
42
-
Japan | Tokyo | jp
37
+
|Region | Hosted in | Token|
38
+
|--------- |---------------| ----- |
39
+
|USA, West | San José | us|
40
+
|USA, East | Washington D.C. | use|
41
+
|Europe | Amsterdam | eu|
42
+
|Japan | Tokyo | jp|
43
43
44
44
### Special Values
45
45
@@ -48,5 +48,5 @@ The VRChat API has several sentinel values for location strings:
48
48
-`""` Pseudo-null value
49
49
-`"offline"` Implies a user currently is not either running the VRChat client or connected to the Pipeline (e.g., browser tab open)
50
50
-`"traveling"` Indicates a user's client is travelling between instances (e.g., downloading world, synchronizing world state)
51
-
- Also can be `"traveling:traveling`
51
+
- Also can be `"traveling:traveling`
52
52
-`"private"` Indicates a user's location is not visible to the currently logged-in user. (e.g., Ask Me/Do Not Disturb status, Invite/Invite+/Group instance)
Copy file name to clipboardExpand all lines: content/docs/(guides)/shortlinks.mdx
-1Lines changed: 0 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,4 +27,3 @@ Each of the following describes an HTTP `GET` request, where VRChat replies with
27
27
`https://vrchat.com/api/1/groups/redirect/<groupCodeAndDisc>` redirects to `https://vrchat.com/home/group/<groupId>`
28
28
This last one is actually programmatically useful, as it can be used to resolve a group code with discriminator to the group's ID without having to use the 'search groups' API endpoint.
29
29
Ex.: `GET https://vrchat.com/api/1/groups/redirect/VRCHAT.0000` redirects to `https://vrchat.com/home/group/grp_7ccb6ca3-cd36-4dab-9ab1-7bcf08d794e4`
Copy file name to clipboardExpand all lines: content/docs/(guides)/tags/group.mdx
+3-4Lines changed: 3 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,6 @@
2
2
title: Group tags
3
3
---
4
4
5
-
Tag | Description
6
-
----|------------
7
-
`admin_hide_member_count` | Hides both online members and total number of members in the group. Used for the [VRCHAT.0000](https://vrc.group/VRCHAT.0000) staff group.
|`admin_hide_member_count`| Hides both online members and total number of members in the group. Used for the [VRCHAT.0000](https://vrc.group/VRCHAT.0000) staff group. |
0 commit comments