Skip to content

Test/spec updates checks - #595

Open
ariesclark wants to merge 11 commits into
mainfrom
test/spec-updates-checks
Open

Test/spec updates checks#595
ariesclark wants to merge 11 commits into
mainfrom
test/spec-updates-checks

Conversation

@ariesclark

Copy link
Copy Markdown
Member

No description provided.

CopilotAI lite review requested due to automatic review settings August 9, 2026 11:31
@ariesclark
ariesclarkforce-pushed the test/spec-updates-checks branch from 7b8a829 to 62bb0b8CompareAugust 9, 2026 11:33
@pkg-pr-new

pkg-pr-newBot commented Aug 9, 2026

Copy link
Copy Markdown
pnpm add https://pkg.pr.new/vrchatapi/specification/vrchat@62bb0b8

commit: 62bb0b8

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the OpenAPI specification to better match observed VRChat API behavior, including new/updated schemas, new endpoints, and a consolidation of many “not found / not implemented / validation” error responses into shared response components.

Changes:

  • Add and refine schemas across users, worlds, groups, economy, notifications, inventory, and InfoPush payloads.
  • Add new authentication endpoints (/oauth/redirectCode, /sso/{provider}) and broaden/clarify several existing path responses (400/403/404 behavior, deprecations).
  • Replace many bespoke per-route 404 response files with shared ResourceNotFoundError, plus introduce RouteNotImplementedError and RequestValidationError.

Reviewed changes

Copilot reviewed 118 out of 118 changed files in this pull request and generated 2 comments.

Show a summary per file
FileDescription
openapi/components/tags.yamlAdds a deprecated tag to categorize no-longer-served routes.
openapi/components/schemas/World.yamlAdds/adjusts world fields and instance tuple sizing.
openapi/components/schemas/User.yamlAdds user fields, updates friendRequestStatus typing, removes deprecated username.
openapi/components/schemas/Transaction.yamlAllows agreement to be string or object under jsonschema generation.
openapi/components/schemas/Subscription.yamlAdds gifted-bundle related fields and periodAmount.
openapi/components/schemas/StoreShelf.yamlAdds shelf image FileID references.
openapi/components/schemas/SsoToken.yamlNew schema for third-party SSO token responses.
openapi/components/schemas/SsoProvider.yamlNew enum schema for supported SSO providers.
openapi/components/schemas/SentNotification.yamlUses NotificationEmpty and updates senderUsername docs.
openapi/components/schemas/RouteNotImplemented.yamlNew schema for “not implemented” 404 body shape.
openapi/components/schemas/RepresentedGroup.yamlAdds nameplate fields.
openapi/components/schemas/ReportReason.yamlAdds policy field and updates required fields.
openapi/components/schemas/ReportCategory.yamlAdds ipsArticle/order and re-formats schema.
openapi/components/schemas/PublicProfile.yamlSimplifies representedGroup to direct $ref + nullable.
openapi/components/schemas/ProductListingAttributionCreator.yamlNew schema for listing attribution creator/publisher.
openapi/components/schemas/ProductListingAttribution.yamlNew schema to group attribution fields.
openapi/components/schemas/ProductListing.yamlAdds attribution/collab fields, refines products/storeIds typing.
openapi/components/schemas/PrivateProfile.yamlAdds friendRequestStatus and makes note nullable.
openapi/components/schemas/OAuthRedirectCode.yamlNew schema for OAuth redirect code responses.
openapi/components/schemas/NotificationV2DataEmpty.yamlRemoves old “empty payload” schema (replaced by NotificationEmpty).
openapi/components/schemas/NotificationV2.yamlSwitches empty union branch to NotificationEmpty and adds fields/nullability.
openapi/components/schemas/NotificationEmpty.yamlNew constrained empty-object schema for union branches.
openapi/components/schemas/NotificationDetailEmpty.yamlRemoves old “empty details” schema (replaced by NotificationEmpty).
openapi/components/schemas/Notification.yamlUpdates senderUsername docs and nullability.
openapi/components/schemas/MutualFriend.yamlAdds banner/icon/effect-related fields.
openapi/components/schemas/LocalizedString.yamlNew schema for localized key + fallback text.
openapi/components/schemas/LimitedWorld.yamlAdds disabledPropAbilities.
openapi/components/schemas/LimitedUserGroups.yamlAdds nameplate fields.
openapi/components/schemas/LimitedUserFriend.yamlAdds banner/icon/effect fields and discordId.
openapi/components/schemas/LimitedGroup.yamlAdds nameplate fields.
openapi/components/schemas/JamSubmission.yamlRenames/adds ratingsScore field.
openapi/components/schemas/Jam.yamlAdds created_at and type fields.
openapi/components/schemas/InventoryTemplate.yamlAdds attribution/dropStatus and adjusts required fields.
openapi/components/schemas/InventoryMetadata.yamlAdds propKind.
openapi/components/schemas/InventoryItem.yamlAdds acquisition/attribution/last_equipped.
openapi/components/schemas/InventoryDrop.yamlReplaces status with dropStatus and adjusts required fields.
openapi/components/schemas/Instance.yamlAdds language/prop ability fields and more nullability.
openapi/components/schemas/InfoPushIpsQuery.yamlNew schema for InfoPush query parameters.
openapi/components/schemas/InfoPushExperiment.yamlNew schema for InfoPush experiment payload.
openapi/components/schemas/InfoPushEmbeddedLink.yamlNew schema for embedded link data.
openapi/components/schemas/InfoPushDataSearch.yamlNew schema for InfoPush search data.
openapi/components/schemas/InfoPushDataClickable.yamlExpands supported clickable action enums.
openapi/components/schemas/InfoPushDataCategory.yamlNew/expanded category payload, supports LocalizedString name.
openapi/components/schemas/InfoPushDataArticleContent.yamlAdds article content fields (id/title/videoUrl).
openapi/components/schemas/InfoPushDataArticle.yamlExpands article structure to arrays and link lists.
openapi/components/schemas/InfoPushData.yamlMajor expansion of InfoPush data fields + LocalizedString support.
openapi/components/schemas/InfoPush.yamlAdds clientMinVersion, experiment, regions, requireClientTags, nullable dates.
openapi/components/schemas/GroupRoleTemplateValues.yamlRefactors role template roles to dedicated schema items.
openapi/components/schemas/GroupRoleTemplateRole.yamlNew schema for role template role entries.
openapi/components/schemas/GroupRole.yamlAdds defaultRole and isAddedOnJoin.
openapi/components/schemas/GroupPost.yamlRenames roleId to roleIds.
openapi/components/schemas/GroupPermission.yamlAdds dependsOn field.
openapi/components/schemas/GroupAnnouncement.yamlAdds clarifying description and additional fields (editorId/roleIds/visibility).
openapi/components/schemas/Group.yamlReformats schema and adds nameplate fields.
openapi/components/schemas/FriendRequestStatus.yamlNew schema for friendRequestStatus semantics.
openapi/components/schemas/FileAnalysisAvatarStats.yamlAdds raycastCount.
openapi/components/schemas/FavoritedWorld.yamlAdds disabledPropAbilities.
openapi/components/schemas/EconomyBalances.yamlAdjusts required fields.
openapi/components/schemas/DynamicContentRow.yamlMajor expansion of row filtering/sorting fields; updates tag vs tags behavior.
openapi/components/schemas/CurrentUserPresence.yamlAdds avatarImageUrl/banner/icon/effect fields.
openapi/components/schemas/CurrentUser.yamlAdds many fields and clarifies username semantics; adds worldId.
openapi/components/schemas/CalendarEventDiscovery.yamlAdjusts required fields.
openapi/components/schemas/CalendarEvent.yamlAdds occurrenceModified.
openapi/components/schemas/BareError.yamlNew schema for “message-only” error bodies.
openapi/components/schemas/Avatar.yamlAdds attribution and reflows long descriptions.
openapi/components/schemas/APIConfigProfileDefaults.yamlNew schema for default theme colors.
openapi/components/schemas/APIConfigLoadingScreenWeights.yamlNew schema for loading-screen category weights.
openapi/components/schemas/APIConfigEventShelfCampaign.yamlNew schema for event shelf campaigns.
openapi/components/schemas/APIConfigEvents.yamlAdds useSparseRotationForPlayerSerialization.
openapi/components/schemas/APIConfigAudioConfig.yamlAdds new audio config fields.
openapi/components/schemas/APIConfig.yamlAdds many config fields, enables additionalProperties, refines docs and required list.
openapi/components/responses/worlds/WorldNotFoundError.yamlRemoves route-specific 404 response (migrated to shared response).
openapi/components/responses/users/UserResponse.yamlAllows UserResponse to be User or CurrentUser under jsonschema generation.
openapi/components/responses/users/UpdateOtherUserForbiddenError.yamlNew 403 response for updating other users.
openapi/components/responses/users/PersistenceOwnershipError.yamlNew bare-error response for persistence ownership checks.
openapi/components/responses/RouteNotImplementedError.yamlNew shared response for “route not implemented” 404 behavior.
openapi/components/responses/ResourceNotFoundError.yamlNew shared 404 response replacing many bespoke files.
openapi/components/responses/RequestValidationError.yamlNew shared 400 response for validation failures.
openapi/components/responses/props/NoSuchPropError.yamlRemoves route-specific 404 response (migrated to shared response).
openapi/components/responses/notifications/NotificationNotFoundError.yamlRemoves route-specific 404 response (migrated to shared response).
openapi/components/responses/notifications/HideNotificationSuccess.yamlAdds schema for hide-notification success response.
openapi/components/responses/jams/JamNotFoundError.yamlRemoves route-specific 404 response (migrated to shared response).
openapi/components/responses/instances/InstanceNotFoundError.yamlRemoves route-specific 404 response (migrated to shared response).
openapi/components/responses/groups/GroupPostsResponse.yamlAdds total to group posts response.
openapi/components/responses/groups/GroupNotFoundError.yamlRemoves route-specific 404 response (migrated to shared response).
openapi/components/responses/friends/UserDoesntExistError.yamlRemoves route-specific 404 response (migrated to shared response).
openapi/components/responses/files/FileNotFoundError.yamlRemoves route-specific 404 response (migrated to shared response).
openapi/components/responses/files/FileDeletedError.yamlRemoves route-specific 404 response (migrated to shared response).
openapi/components/responses/favorites/FavoriteNotFoundError.yamlRemoves route-specific 404 response (migrated to shared response).
openapi/components/responses/economy/StoresUnavailableError.yamlAdds 403 response for unavailable stores.
openapi/components/responses/economy/ProductListingsForbiddenError.yamlAdds 403 response for product listings access denial.
openapi/components/responses/economy/AccountStateError.yamlAdds 400 response for invalid account state.
openapi/components/responses/calendar/CalendarEventNotFoundError.yamlRemoves route-specific 404 response (migrated to shared response).
openapi/components/responses/avatars/AvatarNotFoundError.yamlRemoves route-specific 404 response (migrated to shared response).
openapi/components/responses/authentication/SsoTokenResponse.yamlAdds response wrapper for SSO token.
openapi/components/responses/authentication/SsoProviderUnsupportedError.yamlAdds 400 for unsupported SSO provider.
openapi/components/responses/authentication/OAuthRedirectCodeResponse.yamlAdds response wrapper for OAuth redirect code.
openapi/components/requests/UpdateWorldRequest.yamlAdds new updatable world fields.
openapi/components/requests/CreateInstanceRequest.yamlAdjusts displayName nullability.
openapi/components/requests/CreateGroupAnnouncementRequest.yamlFixes required fields for group announcement creation.
openapi/components/paths/worlds.yamlConsolidates error responses and adds /worlds/{worldId}/deleteTags.
openapi/components/paths/users.yamlAdds shared 404/403 responses, tags deprecated admin endpoint, clarifies docs.
openapi/components/paths/props.yamlConsolidates errors and marks publish status endpoints deprecated/route-not-implemented.
openapi/components/paths/notifications.yamlConsolidates 404s and corrects hide response schema.
openapi/components/paths/miscellaneous.yamlAdds 401 to health check and 400 to infoPush.
openapi/components/paths/jams.yamlConsolidates errors and adds 400 validation response.
openapi/components/paths/invite.yamlConsolidates 404s and adds explicit 403 responses.
openapi/components/paths/instances.yamlAdds 400 validation response, consolidates 404s, allows optional auth on some gets.
openapi/components/paths/groups.yamlLarge refactor to shared errors and expanded 400/403/404 coverage.
openapi/components/paths/friends.yamlConsolidates 404s.
openapi/components/paths/files.yamlConsolidates 404s.
openapi/components/paths/favorites.yamlAdds favoriteGroupTypeQuery param and consolidates errors.
openapi/components/paths/economy.yamlAdds new query params, shared errors, and deprecates some no-longer-served routes.
openapi/components/paths/calendar.yamlConsolidates 404s and allows optional auth for discovery endpoints.
openapi/components/paths/avatars.yamlConsolidates errors and adds shared 400 validation response.
openapi/components/paths/authentication.yamlAdds new /oauth/redirectCode and /sso/{provider} endpoints.
openapi/components/paths.yamlWires new auth/world paths into the root paths index.
openapi/components/parameters.yamlAdds favoriteGroupTypeQuery and ssoProvider parameters; refines sellerId docs.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +47 to +48
example: "event:grp_00000000-0000-0000-0000-000000000000,cal_00000000-0000-0000\
-0000-000000000000"
Comment on lines +1121 to +1124
"403":
$ref: ../responses/groups/GroupNotMemberError.yaml
"404":
$ref: ../responses/groups/GroupNotMemberError.yaml
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@ariesclark