Build with the AviSeek API

Free, keyless JSON for searching public VRChat avatars. Use it in a website, a Discord bot, a VRChat world or a script.

Base URL https://aviseek.vrchatlegends.com/api

Quickstart

No sign-up and no key. Send a GET request and read JSON back.

Search for Quest-compatible protogens
curl "https://aviseek.vrchatlegends.com/api/avatars/search?q=protogen&platform=quest&limit=5"

Endpoints

The most used public endpoints. Everything else, including account endpoints, is in the full reference.

MethodPathWhat it returns
GET/avatars/searchSearch with the syntax above. sort=relevance|popular|recent|oldest|name, facets=1 for counts.
GET/avatars/suggestTypeahead: avatars, creators and tags for a prefix.
GET/avatars/{id}One listed avatar.
GET/avatars/trendingMost viewed recently.
GET/avatars/tagsMost common tags with counts.
GET/avatars/allBulk catalog, 1000 per page. For mirrors and offline tools.
POST/avatars/submitQueue avatars: avatarId, avatarIds (up to 100) or text (every avtr_ id in it). Returns queue position and ETA.
GET/avatars/submit/status?ids=Live status for up to 50 submitted ids: queued, checking, indexed, hidden, gone. CORS open.
GET/avatars/creatorsCreator directory with avatar counts.
GET/avatars/creators/{usr_id}One creator and their public avatars.
GET/avatars/tags/{tag}Avatars with a tag.
GET/avatars/platforms/{pc|quest|ios|cross}Avatars by platform build.
GET/badges/avatar/{id}.svgREADME and profile badges (also /badges/creator/{id}.svg, /badges/avatars.svg). See Badges and embeds.
GET/oembed?url=oEmbed JSON for avatar and creator pages.
GET/world/searchCompact JSON for VRChat worlds, no key, CORS open.
GET/statsCatalog totals.
GET/healthLiveness, running commit and uptime.

Rate limits

Limits are per IP. Every response carries RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset. A 429 also has Retry-After: wait that many seconds. Cache responses where you can; search results are cacheable for 30 seconds.

Search and reads
600 / min
Typeahead
900 / min
Bulk catalog
30 / min
Submissions
100 / min
World endpoints
240 / min
Reports
5 / min

Every response also has an X-Request-Id. Include it when you report a problem.

VRChat worlds

The /world/* endpoints return small, flat JSON that Udon can parse, with open CORS and no key. The world page has a prefab and setup notes.

Load search results in Udon
// VRCStringDownloader needs a pre-baked VRCUrl
public VRCUrl searchUrl; // https://aviseek.vrchatlegends.com/api/world/search?q=fox&limit=50

void Start() => VRCStringDownloader.LoadUrl(searchUrl, (IUdonEventReceiver)this);

public override void OnStringLoadSuccess(IVRCStringDownload result)
{
    if (VRCJson.TryDeserializeFromJson(result.Result, out DataToken json))
    {
        // json["avatars"] is a list of { id, name, author, platforms, thumb }
    }
}

Embeds and links

Avatar pages have Open Graph and Twitter cards, so pasting a link into Discord, Bluesky or X shows the thumbnail, name and creator. /embed returns ready-made Discord components for bots.

Share an avatar
https://aviseek.vrchatlegends.com/avatar/avtr_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Sitemaps and feeds

The sitemap index at /sitemap.xml lists every public avatar with its images (Google image sitemap format). /llms.txt summarises the site for AI tools.

Usage rules

  • Personal and non-commercial projects are welcome. Reselling the API needs written permission (Terms).
  • Credit “Data from AviSeek” with a link where people can see it.
  • Respect creator removals: if an avatar disappears from the API, remove it from your copy.
  • Keep to the rate limits and back off on 429.