Integrating GSLink
GSLink connects Discord accounts with VRChat user profiles, streamlining community management and enhancing user experience. This page provides guidance on using our API for role synchronization and other features.
Why Use GSLink?β
GSLink simplifies community management by:
- Providing a secure way to authenticate users, making it harder for scammers to slip by.
- Reducing manual processes for membership management.
Rate Limitingβ
To ensure fair usage:
- Free Users: 100 requests per second.
- Patreon Subscribers: 200 requests per second.
- Power Users / big discord Guilds: can request temporarily unrestricted access via discord.
The public endpoint has stricter rate limits to ensure optimal performance. Patreon subscribers get a higher ratelimit because they help paying for the hardware! Use the following response headers to manage requests efficiently:
x-ratelimit-limit
x-ratelimit-remaining
x-ratelimit-reset
retry-after
Important: Make sure your application does not hit our limits regularly. If it does, we may automatically blacklist your IP. We recommend implementing task queues and asynchronous requests, especially as a free user!
TL;DR: Verify Discord Users via APIβ
If you need to verify if a Discord user is linked to a VRChat account, GSLink offers a public API endpoint designed for this:
π Endpoint:
POST https://api.groupsync.live/v1/discord/user-verify-public
This endpoint returns whether a user is linked and provides their Discord + VRChat identity data (if age-verified).
Click to expand API reference
π Endpointβ
POST /discord/user-verify-public
π₯ Request Bodyβ
Parameter | Type | Required | Description |
---|---|---|---|
discordUserId | String | β Yes | The Discord userβs unique ID |
Example:
{
"discordUserId": "119131134322802689"
}
π€ Success Responseβ
{
"success": true,
"data": {
"exists": true,
"user": {
"discordName": "vesturo",
"vrchatName": "Vesturo",
"discordId": "119131134322802689",
"vrchatId": "usr_06aebe4f-e50c-46ef-a5d9-9dc6eb62d6d9",
"vrchatAgeVerified": true
}
}
}
β Error Responsesβ
Missing discordUserId
β
{
"error": "Missing discordId"
}
User Not Authenticatedβ
{
"error": "User not authenticated"
}
Internal Server Errorβ
{
"error": "Internal Server Error"
}
π Notesβ
- Always use HTTPS for requests.
- Handle sensitive data carefully.
- Enable debug logging during development only β never log user info in production.
π‘ Example curl
Requestβ
curl -X POST https://api.groupsync.live/v1/discord/user-verify-public \
-H "Content-Type: application/json" \
-d '{
"discordUserId": "119131134322802689"
}'
Patreon supporter informationβ
As a Patreon supporter you gain many Perks. One of them is an increased Rate-limit! While free users can make up to 100 requests per second, you can go wild with 200, enough to handle even the busiest days!
an example on how to authorize with our endpoint as a patreon supporter:
const GROUPSYNC_USER_EMAIL = "The email your patreon account uses";
const GROUPSYNC_AUTH_KEY = "You can find your auth key in the settings section of our GroupSync dashboard";
const credentials = `${GROUPSYNC_USER_EMAIL}:${GROUPSYNC_AUTH_KEY}`;
return `Basic ${Buffer.from(credentials).toString('base64')}`;
const response = await axios.post('https://api.groupsync.live/v1/discord/user-verify-public', {
"discordUserId": discordUserId,
}, {
headers: {
'Authorization': createAuthHeader(),
},
});
Big Discord guild?β
Do you have a very big Discord guild and are planning on implementing GSLink? Reach out to us via Discord to temporarily get increased rate-limits / unrestricted API access to make sure your community can transition to GSLink as easy as possible!
Need Help?β
If you encounter any issues, join our Discord. Our team is happy to help!