Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
a01dcfe
Files, Groups, Props, Users, NotificationV2
VinyarionHyarmendacil Dec 10, 2025
552ef18
lint 1
VinyarionHyarmendacil Dec 10, 2025
4384986
Update groups.yaml
ariesclark Dec 10, 2025
f077356
Apply suggestions from code review
VinyarionHyarmendacil Dec 10, 2025
34759f1
lint 2
VinyarionHyarmendacil Dec 10, 2025
628f031
Common search parameter, Avatar property, Config properties
VinyarionHyarmendacil Dec 10, 2025
7a1e23d
Fix path
jellejurre Dec 10, 2025
be8e277
Describe prop spawnType and worldPlacementMask based on known examples
VinyarionHyarmendacil Dec 11, 2025
90632d9
duh
VinyarionHyarmendacil Dec 11, 2025
28bb2ec
Add playerPersistenceEnabled property to CreateInstanceRequest
VinyarionHyarmendacil Dec 11, 2025
55f4a76
Fix NotificationV2 data vs. details, data for badge.earned
VinyarionHyarmendacil Dec 14, 2025
554bc46
Update NotificationV2ResponseType.yaml
VinyarionHyarmendacil Dec 14, 2025
f0e277c
Add groupIds parameter to getUserAllGroupPermissions
VinyarionHyarmendacil Dec 16, 2025
af37f34
Update users.yaml
VinyarionHyarmendacil Dec 16, 2025
f8067af
Add calendarEntryId property to CreateInstanceRequest
VinyarionHyarmendacil Dec 16, 2025
86fc8fb
NotificationV2 data x-if, SentNotification details x-if, uploadImage …
VinyarionHyarmendacil Dec 17, 2025
7ea6235
fix NotificationV2 details property schema reference, enumize uploadF…
VinyarionHyarmendacil Dec 17, 2025
4437da9
ah yes, renaming a file deletes the old one and creates a new one, ve…
VinyarionHyarmendacil Dec 17, 2025
1b11ff8
Ctrl+X Crtl+V
VinyarionHyarmendacil Dec 18, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions openapi/components/parameters.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,20 @@
schema:
type: string
example: aab_e159e72c-ce54-4fbe-8c37-96af02f6d18d
assetReviewId:
name: assetReviewId
description: Must be an valid asset review ID.
required: true
in: path
schema:
type: string
authorId:
name: authorId
description: Must be a valid user ID.
required: true
in: query
schema:
$ref: ./schemas/UserID.yaml
avatarId:
name: avatarId
description: Must be a valid avatar ID.
Expand Down Expand Up @@ -271,12 +285,12 @@
- file
- signature
example: file
fuzzy:
name: fuzzy
required: false
in: query
schema:
type: boolean

Check warning on line 293 in openapi/components/parameters.yaml

View workflow job for this annotation

GitHub Actions / lint

oas3-parameter-description

Parameter objects must have "description".
groupGalleryId:
name: groupGalleryId
description: Must be a valid group gallery ID.
Expand Down Expand Up @@ -439,7 +453,7 @@
$ref: ./schemas/InventoryItemType.yaml
inventoryPedestalDuration:
name: duration
description: The duration before the sharing pedestal despawns.

Check notice on line 456 in openapi/components/parameters.yaml

View workflow job for this annotation

GitHub Actions / lint

vrc-typos

Unknown word: despawns, did you mean despairs, deans, or dedans?
required: true
in: query
schema:
Expand Down Expand Up @@ -481,6 +495,14 @@
schema:
type: string
example: invt_00000000-0000-0000-0000-000000000000
isInternalVariant:
name: isInternalVariant
description: Not quite sure what this actually does (exists on the website but doesn't seem to be used)
required: false
in: query
schema:
type: boolean
example: false
jamId:
name: jamId
description: Must be a valid query ID.
Expand Down Expand Up @@ -561,12 +583,12 @@
schema:
type: string
format: date-time
mostRecentFlag:
name: mostRecent
required: false
in: query
schema:
type: boolean

Check warning on line 591 in openapi/components/parameters.yaml

View workflow job for this annotation

GitHub Actions / lint

oas3-parameter-description

Parameter objects must have "description".
noplatform:
name: noplatform
description: The platform the asset does not support.
Expand Down Expand Up @@ -724,18 +746,18 @@
schema:
type: string
example: game night
storeId:
name: storeId
required: true
in: query
schema:
$ref: ./schemas/StoreID.yaml

Check warning on line 754 in openapi/components/parameters.yaml

View workflow job for this annotation

GitHub Actions / lint

oas3-parameter-description

Parameter objects must have "description".
storeView:
name: fetch
required: false
in: query
schema:
$ref: ./schemas/StoreView.yaml

Check warning on line 760 in openapi/components/parameters.yaml

View workflow job for this annotation

GitHub Actions / lint

oas3-parameter-description

Parameter objects must have "description".
subscriptionId:
name: subscriptionId
required: true
Expand Down
26 changes: 26 additions & 0 deletions openapi/components/paths.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,16 @@
$ref: "./paths/economy.yaml#/paths/~1Steam~1transactions~1{transactionId}"
"/adminassetbundles/{adminAssetBundleId}":
$ref: "./paths/files.yaml#/paths/~1adminassetbundles~1{adminAssetBundleId}"
/agreement:
$ref: "./paths/files.yaml#/paths/~1agreement"
"/analysis/{fileId}/{versionId}":
$ref: "./paths/files.yaml#/paths/~1analysis~1{fileId}~1{versionId}"
"/analysis/{fileId}/{versionId}/security":
$ref: "./paths/files.yaml#/paths/~1analysis~1{fileId}~1{versionId}~1security"
"/analysis/{fileId}/{versionId}/standard":
$ref: "./paths/files.yaml#/paths/~1analysis~1{fileId}~1{versionId}~1standard"
"/assetReview/{assetReviewId}/notes":
$ref: "./paths/files.yaml#/paths/~1assetReview~1{assetReviewId}~1notes"
/auth:
$ref: "./paths/authentication.yaml#/paths/~1auth"
/auth/confirmEmail:
Expand Down Expand Up @@ -152,6 +156,8 @@
$ref: "./paths/files.yaml#/paths/~1file~1{fileId}~1{versionId}~1{fileType}~1status"
/files:
$ref: "./paths/files.yaml#/paths/~1files"
/files/order:
$ref: "./paths/files.yaml#/paths/~1files~1order"
/gallery:
$ref: "./paths/files.yaml#/paths/~1gallery"
/groups:
Expand All @@ -162,12 +168,16 @@
$ref: "./paths/groups.yaml#/paths/~1groups~1{groupId}"
"/groups/{groupId}/announcement":
$ref: "./paths/groups.yaml#/paths/~1groups~1{groupId}~1announcement"
"/groups/{groupId}/auditLogTypes":
$ref: "./paths/groups.yaml#/paths/~1groups~1{groupId}~1auditLogTypes"
"/groups/{groupId}/auditLogs":
$ref: "./paths/groups.yaml#/paths/~1groups~1{groupId}~1auditLogs"
"/groups/{groupId}/bans":
$ref: "./paths/groups.yaml#/paths/~1groups~1{groupId}~1bans"
"/groups/{groupId}/bans/{userId}":
$ref: "./paths/groups.yaml#/paths/~1groups~1{groupId}~1bans~1{userId}"
"/groups/{groupId}/block":
$ref: "./paths/groups.yaml#/paths/~1groups~1{groupId}~1block"
"/groups/{groupId}/galleries":
$ref: "./paths/groups.yaml#/paths/~1groups~1{groupId}~1galleries"
"/groups/{groupId}/galleries/{groupGalleryId}":
Expand All @@ -188,6 +198,8 @@
$ref: "./paths/groups.yaml#/paths/~1groups~1{groupId}~1leave"
"/groups/{groupId}/members":
$ref: "./paths/groups.yaml#/paths/~1groups~1{groupId}~1members"
"/groups/{groupId}/members/search":
$ref: "./paths/groups.yaml#/paths/~1groups~1{groupId}~1members~1search"
"/groups/{groupId}/members/{userId}":
$ref: "./paths/groups.yaml#/paths/~1groups~1{groupId}~1members~1{userId}"
"/groups/{groupId}/members/{userId}/roles/{groupRoleId}":
Expand All @@ -208,6 +220,8 @@
$ref: "./paths/groups.yaml#/paths/~1groups~1{groupId}~1roles"
"/groups/{groupId}/roles/{groupRoleId}":
$ref: "./paths/groups.yaml#/paths/~1groups~1{groupId}~1roles~1{groupRoleId}"
"/groups/{groupId}/transfer":
$ref: "./paths/groups.yaml#/paths/~1groups~1{groupId}~1transfer"
/health:
$ref: "./paths/miscellaneous.yaml#/paths/~1health"
/icon:
Expand Down Expand Up @@ -298,8 +312,12 @@
$ref: "./paths/prints.yaml#/paths/~1prints~1{printId}"
"/products/{productId}":
$ref: "./paths/economy.yaml#/paths/~1products~1{productId}"
/props:
$ref: "./paths/props.yaml#/paths/~1props"
"/props/{propId}":
$ref: "./paths/props.yaml#/paths/~1props~1{propId}"
"/props/{propId}/publish":
$ref: "./paths/props.yaml#/paths/~1props~1{propId}~1publish"
"/requestInvite/{userId}":
$ref: "./paths/invite.yaml#/paths/~1requestInvite~1{userId}"
"/requestInvite/{userId}/photo":
Expand Down Expand Up @@ -358,10 +376,16 @@
$ref: "./paths/users.yaml#/paths/~1users~1{userId}~1feedback"
"/users/{userId}/groups":
$ref: "./paths/users.yaml#/paths/~1users~1{userId}~1groups"
"/users/{userId}/groups/invited":
$ref: "./paths/users.yaml#/paths/~1users~1{userId}~1groups~1invited"
"/users/{userId}/groups/permissions":
$ref: "./paths/users.yaml#/paths/~1users~1{userId}~1groups~1permissions"
"/users/{userId}/groups/represented":
$ref: "./paths/users.yaml#/paths/~1users~1{userId}~1groups~1represented"
"/users/{userId}/groups/requested":
$ref: "./paths/users.yaml#/paths/~1users~1{userId}~1groups~1requested"
"/users/{userId}/groups/userblocked":
$ref: "./paths/users.yaml#/paths/~1users~1{userId}~1groups~1userblocked"
"/users/{userId}/instances/groups":
$ref: "./paths/users.yaml#/paths/~1users~1{userId}~1instances~1groups"
"/users/{userId}/instances/groups/{groupId}":
Expand All @@ -372,6 +396,8 @@
$ref: "./paths/users.yaml#/paths/~1users~1{userId}~1mutuals~1friends"
"/users/{userId}/mutuals/groups":
$ref: "./paths/users.yaml#/paths/~1users~1{userId}~1mutuals~1groups"
"/users/{userId}/persist":
$ref: "./paths/users.yaml#/paths/~1users~1{userId}~1persist"
"/users/{userId}/removeTags":
$ref: "./paths/users.yaml#/paths/~1users~1{userId}~1removeTags"
"/users/{userId}/subscription/eligible":
Expand Down
1 change: 1 addition & 0 deletions openapi/components/paths/avatars.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
paths:
/avatarStyles:
get:
operationId: getAvatarStyles

Check notice on line 9 in openapi/components/paths/avatars.yaml

View workflow job for this annotation

GitHub Actions / lint

vrc-operation-id

Operation returns an array, consider renaming to listAvatarStyles.
summary: Get Avatar Styles
description: List avatar styles.
tags:
Expand All @@ -16,7 +16,7 @@
$ref: ../responses/avatars/AvatarStyleListResponse.yaml
/avatars:
get:
operationId: searchAvatars

Check notice on line 19 in openapi/components/paths/avatars.yaml

View workflow job for this annotation

GitHub Actions / lint

vrc-operation-id

Operation returns an array, consider renaming to listAvatars.
summary: Search Avatars
description: Search and list avatars by query filters. You can only search your own or featured avatars. It is not possible as a normal user to search other peoples avatars.
tags:
Expand All @@ -42,6 +42,7 @@
- $ref: ../parameters.yaml#/maxUnityVersion
- $ref: ../parameters.yaml#/minUnityVersion
- $ref: ../parameters.yaml#/platform
- $ref: ../parameters.yaml#/isInternalVariant
security:
- authCookie: []
responses:
Expand Down Expand Up @@ -71,7 +72,7 @@
$ref: ../responses/FeaturedSetNotAdminError.yaml
/avatars/favorites:
get:
operationId: getFavoritedAvatars

Check notice on line 75 in openapi/components/paths/avatars.yaml

View workflow job for this annotation

GitHub Actions / lint

vrc-operation-id

Operation returns an array, consider renaming to listFavoritedAvatars.
summary: List Favorited Avatars
description: Search and list favorited avatars by query filters.
tags:
Expand Down Expand Up @@ -115,7 +116,7 @@
$ref: ../responses/MissingCredentialsError.yaml
/avatars/licensed:
get:
operationId: getLicensedAvatars

Check notice on line 119 in openapi/components/paths/avatars.yaml

View workflow job for this annotation

GitHub Actions / lint

vrc-operation-id

Operation returns an array, consider renaming to listLicensedAvatars.
summary: List Licensed Avatars
description: List licensed avatars.
tags:
Expand All @@ -142,8 +143,8 @@
security:
- authCookie: []
responses:
"200":
$ref: ../responses/avatars/AvatarResponse.yaml

Check notice on line 147 in openapi/components/paths/avatars.yaml

View workflow job for this annotation

GitHub Actions / lint

vrc-typos

Unknown word: unknownplatform.

Check notice on line 147 in openapi/components/paths/avatars.yaml

View workflow job for this annotation

GitHub Actions / lint

vrc-typos

Unknown word: standalonewindows.

Check warning on line 147 in openapi/components/paths/avatars.yaml

View workflow job for this annotation

GitHub Actions / lint

vrc-title

Schema must have a non-empty title.

Check warning on line 147 in openapi/components/paths/avatars.yaml

View workflow job for this annotation

GitHub Actions / lint

vrc-description

Cannot be empty.
"401":
$ref: ../responses/MissingCredentialsError.yaml
"404":
Expand All @@ -157,13 +158,13 @@
requestBody:
content:
application/json:
schema:
$ref: ../requests/UpdateAvatarRequest.yaml

Check warning on line 162 in openapi/components/paths/avatars.yaml

View workflow job for this annotation

GitHub Actions / lint

vrc-description

Cannot be empty.
security:
- authCookie: []
responses:
"200":
$ref: ../responses/avatars/AvatarResponse.yaml

Check notice on line 167 in openapi/components/paths/avatars.yaml

View workflow job for this annotation

GitHub Actions / lint

vrc-typos

Unknown word: unknownplatform.

Check notice on line 167 in openapi/components/paths/avatars.yaml

View workflow job for this annotation

GitHub Actions / lint

vrc-typos

Unknown word: standalonewindows.

Check warning on line 167 in openapi/components/paths/avatars.yaml

View workflow job for this annotation

GitHub Actions / lint

vrc-title

Schema must have a non-empty title.

Check warning on line 167 in openapi/components/paths/avatars.yaml

View workflow job for this annotation

GitHub Actions / lint

vrc-description

Cannot be empty.
"401":
$ref: ../responses/MissingCredentialsError.yaml
"404":
Expand All @@ -177,8 +178,8 @@
security:
- authCookie: []
responses:
"200":
$ref: ../responses/avatars/AvatarResponse.yaml

Check notice on line 182 in openapi/components/paths/avatars.yaml

View workflow job for this annotation

GitHub Actions / lint

vrc-typos

Unknown word: standalonewindows.

Check warning on line 182 in openapi/components/paths/avatars.yaml

View workflow job for this annotation

GitHub Actions / lint

vrc-description

Cannot be empty.
"401":
$ref: ../responses/MissingCredentialsError.yaml
"404":
Expand Down
1 change: 1 addition & 0 deletions openapi/components/paths/calendar.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ paths:
- $ref: ../parameters.yaml#/utcOffset
- $ref: ../parameters.yaml#/number
- $ref: ../parameters.yaml#/offset
- $ref: ../parameters.yaml#/isInternalVariant
security:
- authCookie: []
responses:
Expand Down
114 changes: 104 additions & 10 deletions openapi/components/paths/files.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,59 @@ paths:
responses:
"200":
$ref: ../responses/files/AdminAssetBundleResponse.yaml
/agreement:
get:
operationId: getContentAgreementStatus
summary: Get Content Agreement Status
description: Returns the agreement status of the currently authenticated user for the given agreementCode, contentId, and version.
tags:
- files
parameters:
- name: agreementCode
description: The type of agreement (currently content.copyright.owned)
required: true
in: query
schema:
$ref: ../schemas/AgreementCode.yaml
- name: contentId
description: The id of the content being uploaded, such as a WorldID, AvatarID, or PropID
required: true
in: query
schema:
type: string
example: avtr_c38a1615-5bf5-42b4-84eb-a8b6c37cbd11
- name: version
description: The version of the agreement (currently 1)
required: true
in: query
schema:
type: integer
example: 1
security:
- authCookie: []
responses:
"200":
$ref: ../responses/files/AgreementStatusResponse.yaml
"401":
$ref: ../responses/MissingCredentialsError.yaml
post:
operationId: submitContentAgreement
summary: Submit Content Agreement
description: Returns the agreement of the currently authenticated user for the given agreementCode, contentId, and version.
tags:
- files
requestBody:
content:
application/json:
schema:
$ref: ../requests/AgreementRequest.yaml
security:
- authCookie: []
responses:
"200":
$ref: ../responses/files/AgreementResponse.yaml
"401":
$ref: ../responses/MissingCredentialsError.yaml
"/analysis/{fileId}/{versionId}":
parameters:
- $ref: ../parameters.yaml#/fileId
Expand Down Expand Up @@ -75,6 +128,27 @@ paths:
$ref: ../responses/files/AnalysisNotYetAvailableError.yaml
"404":
$ref: ../responses/files/FileNotFoundError.yaml
"/assetReview/{assetReviewId}/notes":
parameters:
- $ref: ../parameters.yaml#/assetReviewId
put:
operationId: submitAssetReviewNotes
summary: Submit Asset Review Notes
description: Submit notes regarding an asset review.
tags:
- files
requestBody:
content:
application/json:
schema:
$ref: ../requests/SubmitAssetReviewNotesRequest.yaml
security:
- authCookie: []
responses:
"200":
description: The asset review notes are submitted.
"401":
$ref: ../responses/MissingCredentialsError.yaml
/file:
post:
operationId: createFile
Expand Down Expand Up @@ -106,26 +180,27 @@ paths:
type: object
properties:
animationStyle:
type: string
description: Animation style for sticker, required for emoji.
example: bats
$ref: ../schemas/ImageAnimationStyle.yaml
file:
type: string
description: The binary blob of the png file.
format: binary
frames:
type: integer
description: Required for emojianimated. Total number of frames to be animated (2-64)
description: Required for animated images. Total number of frames of the spritesheet to be animated.
maximum: 64
minimum: 2
framesOverTime:
type: integer
description: Required for emojianimated. Animation frames per second (1-64)
description: Required for animated images. Animation frames per second.
maximum: 64
minimum: 1
loopStyle:
$ref: ../schemas/ImageLoopStyle.yaml
maskTag:
type: string
description: Mask of the sticker, optional for emoji.
example: square
$ref: ../schemas/ImageMask.yaml
tag:
type: string
description: Needs to be either icon, gallery, sticker, emoji, or emojianimated
$ref: ../schemas/ImagePurpose.yaml
required:
- file
- tag
Expand Down Expand Up @@ -324,6 +399,25 @@ paths:
responses:
"200":
$ref: ../responses/files/FileListResponse.yaml
/files/order:
put:
operationId: setGalleryFileOrder
summary: Set Gallery File Order
description: Set the order of the files in a gallery
tags:
- files
requestBody:
content:
application/json:
schema:
$ref: ../requests/GalleryFileOrderRequest.yaml
security:
- authCookie: []
responses:
"200":
$ref: ../responses/files/GalleryFileOrderResponse.yaml
"404":
$ref: ../responses/files/FileNotFoundError.yaml
/gallery:
post:
operationId: uploadGalleryImage
Expand Down
Loading