Skip to main content

Site data, analytics and string loaders

Base URL: https://api.vrchatlegends.com/api. Cache public data and avoid rapid polling. For counters, start with a 30–60 second refresh interval and back off on 429.

Site and community data​

GET pathResult
/site/contextPublic site overview; extended data with site:read
/groupsCommunity VRChat groups
/worldsFeatured worlds
/eventsGroup events
/teamTeam members
/statsGroup and community statistics
/discord/patreon-membersPublic supporter listing
/configPublic site configuration
/healthAPI health

Analytics​

GET pathResult
/analytics/legend-viewsProfile view counts and leaderboard
/analytics/legend-views/:playerIdOne profile's view count
/analytics/legend-likesProfile like counts
/analytics/legend-likes/:playerIdOne profile's like count
/analytics/historyDaily snapshots
/analytics/onlineCurrent visitor count

POST /analytics/legend-view and POST /analytics/ping are website instrumentation endpoints, not mechanisms for increasing counters from an integration. Read existing counts instead.

const base = 'https://api.vrchatlegends.com/api';
const id = encodeURIComponent(profileId);
const readJson = async (path) => {
const response = await fetch(base + path);
if (!response.ok) throw new Error(`HTTP ${response.status}`);
return response.json();
};
const [views, likes] = await Promise.all([
readJson(`/analytics/legend-views/${id}`),
readJson(`/analytics/legend-likes/${id}`),
]);
console.log({ views: views.count ?? 0, likes: likes.count ?? 0 });

VRChat string loaders​

Append ?format=plain or send Accept: text/plain for plain-text output. No key should be included in a public VRChat world.

GET pathPlain-text result
/loadersLoader endpoint index
/loaders/legendsPublic Legend names and IDs, tab-separated
/loaders/legends/:playerIdName and biography snippet
/loaders/legends/:playerId/viewsView count
/loaders/legends/:playerId/likesLike count
/loaders/statsSite counts and URL
/loaders/siteSite name, tagline and URL
curl --fail 'https://api.vrchatlegends.com/api/loaders/legends/PROFILE_ID/views?format=plain'

Sharing and AI-readable references​

Use each profile's canonical URL and the post's shareUrl; social crawlers obtain title, description and images from that page. See embeds for HTML cards and counters.

The website publishes llms.txt, plain-text context, and a sitemap. These are discovery aids, not a guarantee of search placement. Cite the actual public profile or documentation page, respect privacy, and distinguish community-authored character lore from facts about real people.