{"openapi":"3.1.0","info":{"title":"VRCScore Data API","version":"1.0.0","description":"Read-only access to public VRCScore reviews, cached VRChat/VRCX profile data, announcements, and community statistics."},"servers":[{"url":"https://vrcscore.com"}],"components":{"securitySchemes":{"bearerApiKey":{"type":"http","scheme":"bearer","bearerFormat":"VRCScore API key"},"headerApiKey":{"type":"apiKey","in":"header","name":"X-API-Key"}}},"security":[{"bearerApiKey":[]},{"headerApiKey":[]}],"paths":{"/api/v1":{"get":{"summary":"API index and key details","responses":{"200":{"description":"A paginated result set."},"401":{"description":"Missing, invalid, revoked, or expired API key."},"403":{"description":"The API key is missing the required scope."},"429":{"description":"The API key reached its per-minute limit."}}}},"/api/v1/profiles":{"get":{"summary":"List or search cached VRChat profiles","parameters":[{"name":"q","in":"query","schema":{"type":"string"}},{"name":"after","in":"query","schema":{"type":"integer"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}}],"responses":{"200":{"description":"A paginated result set."},"401":{"description":"Missing, invalid, revoked, or expired API key."},"403":{"description":"The API key is missing the required scope."},"429":{"description":"The API key reached its per-minute limit."}}}},"/api/v1/profiles/{vrchatUserId}":{"get":{"summary":"Get one profile, public cached metadata, and score summary","parameters":[{"name":"vrchatUserId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"A paginated result set."},"401":{"description":"Missing, invalid, revoked, or expired API key."},"403":{"description":"The API key is missing the required scope."},"404":{"description":"Profile not found."},"429":{"description":"The API key reached its per-minute limit."}}}},"/api/v1/profiles/{vrchatUserId}/reviews":{"get":{"summary":"List public reviews received by one profile","parameters":[{"name":"vrchatUserId","in":"path","required":true,"schema":{"type":"string"}},{"name":"before","in":"query","schema":{"type":"integer"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}}],"responses":{"200":{"description":"A paginated result set."},"401":{"description":"Missing, invalid, revoked, or expired API key."},"403":{"description":"The API key is missing the required scope."},"429":{"description":"The API key reached its per-minute limit."}}}},"/api/v1/reviews":{"get":{"summary":"List public reviews","parameters":[{"name":"target","in":"query","description":"VRChat usr_ id","schema":{"type":"string"}},{"name":"reviewer","in":"query","description":"Verified reviewer VRChat usr_ id","schema":{"type":"string"}},{"name":"before","in":"query","schema":{"type":"integer"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}}],"responses":{"200":{"description":"A paginated result set."},"401":{"description":"Missing, invalid, revoked, or expired API key."},"403":{"description":"The API key is missing the required scope."},"429":{"description":"The API key reached its per-minute limit."}}}},"/api/v1/reviews/{reviewId}":{"get":{"summary":"Get one public review","parameters":[{"name":"reviewId","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"A paginated result set."},"401":{"description":"Missing, invalid, revoked, or expired API key."},"403":{"description":"The API key is missing the required scope."},"404":{"description":"Review not found."},"429":{"description":"The API key reached its per-minute limit."}}}},"/api/v1/stats/overview":{"get":{"summary":"Get community totals","responses":{"200":{"description":"A paginated result set."},"401":{"description":"Missing, invalid, revoked, or expired API key."},"403":{"description":"The API key is missing the required scope."},"429":{"description":"The API key reached its per-minute limit."}}}},"/api/v1/stats/leaderboards":{"get":{"summary":"Get all four homepage leaderboards","responses":{"200":{"description":"A paginated result set."},"401":{"description":"Missing, invalid, revoked, or expired API key."},"403":{"description":"The API key is missing the required scope."},"429":{"description":"The API key reached its per-minute limit."}}}},"/api/v1/announcements":{"get":{"summary":"List active VRCScore announcements","responses":{"200":{"description":"A paginated result set."},"401":{"description":"Missing, invalid, revoked, or expired API key."},"403":{"description":"The API key is missing the required scope."},"429":{"description":"The API key reached its per-minute limit."}}}}}}