Skip to main content

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.


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.
info

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​

ParameterTypeRequiredDescription
discordUserIdStringβœ… YesThe 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!