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.

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

pkg-pr-new Bot commented Aug 9, 2026

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

commit: 62bb0b8

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