Files
VRChatBackendDocs/Apis/FilesApi.md
ExilProductions aa707d1deb add subdir
2026-02-15 17:39:26 +01:00

20 KiB

FilesApi

All URIs are relative to https://api.vrchat.cloud/api/1

Method HTTP request Description
createFile POST /file Create File
createFileVersion POST /file/{fileId} Create File Version
deleteFile DELETE /file/{fileId} Delete File
deleteFileVersion DELETE /file/{fileId}/{versionId} Delete File Version
downloadFileVersion GET /file/{fileId}/{versionId} Download File Version
finishFileDataUpload PUT /file/{fileId}/{versionId}/{fileType}/finish Finish FileData Upload
getAdminAssetBundle GET /adminassetbundles/{adminAssetBundleId} Get AdminAssetBundle
getContentAgreementStatus GET /agreement Get Content Agreement Status
getFile GET /file/{fileId} Show File
getFileAnalysis GET /analysis/{fileId}/{versionId} Get File Version Analysis
getFileAnalysisSecurity GET /analysis/{fileId}/{versionId}/security Get File Version Analysis Security
getFileAnalysisStandard GET /analysis/{fileId}/{versionId}/standard Get File Version Analysis Standard
getFileDataUploadStatus GET /file/{fileId}/{versionId}/{fileType}/status Check FileData Upload Status
getFiles GET /files List Files
setGroupGalleryFileOrder PUT /files/order Set Group Gallery File Order
startFileDataUpload PUT /file/{fileId}/{versionId}/{fileType}/start Start FileData Upload
submitContentAgreement POST /agreement Submit Content Agreement
updateAssetReviewNotes PUT /assetReview/{assetReviewId}/notes Update Asset Review Notes
uploadGalleryImage POST /gallery Upload gallery image
uploadIcon POST /icon Upload icon
uploadImage POST /file/image Upload gallery image, icon, emoji or sticker

createFile

File createFile(CreateFileRequest)

Create File

Creates a new File object

Parameters

Name Type Description Notes
CreateFileRequest CreateFileRequest [optional]

Return type

File

Authorization

authCookie

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

createFileVersion

File createFileVersion(fileId, CreateFileVersionRequest)

Create File Version

Creates a new FileVersion. Once a Version has been created, proceed to the `/file/{fileId}/{versionId}/file/start` endpoint to start a file upload.

Parameters

Name Type Description Notes
fileId String Must be a valid file ID. [default to null]
CreateFileVersionRequest CreateFileVersionRequest [optional]

Return type

File

Authorization

authCookie

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

deleteFile

File deleteFile(fileId)

Delete File

Deletes a File object.

Parameters

Name Type Description Notes
fileId String Must be a valid file ID. [default to null]

Return type

File

Authorization

authCookie

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

deleteFileVersion

File deleteFileVersion(fileId, versionId)

Delete File Version

Delete a specific version of a file. You can only delete the latest version.

Parameters

Name Type Description Notes
fileId String Must be a valid file ID. [default to null]
versionId Integer Version ID of the asset. [default to null]

Return type

File

Authorization

authCookie

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

downloadFileVersion

File downloadFileVersion(fileId, versionId)

Download File Version

Downloads the file with the provided version number.  **Version Note:** Version 0 is always when the file was created. The real data is usually always located in version 1 and up.  **Extension Note:** Files are not guaranteed to have a file extensions. UnityPackage files tends to have it, images through this endpoint do not. You are responsible for appending file extension from the `extension` field when neccesary.

Parameters

Name Type Description Notes
fileId String Must be a valid file ID. [default to null]
versionId Integer Version ID of the asset. [default to null]

Return type

File

Authorization

authCookie

HTTP request headers

  • Content-Type: Not defined
  • Accept: image/*, application/json

finishFileDataUpload

File finishFileDataUpload(fileId, versionId, fileType, FinishFileDataUploadRequest)

Finish FileData Upload

Finish an upload of a FileData. This will mark it as \"complete\". After uploading the `file` for Avatars and Worlds you then have to upload a `signature` file.

Parameters

Name Type Description Notes
fileId String Must be a valid file ID. [default to null]
versionId Integer Version ID of the asset. [default to null]
fileType String Type of file. [default to null] [enum: delta, file, signature]
FinishFileDataUploadRequest FinishFileDataUploadRequest Please see documentation on ETag's: https://teppen.io/2018/06/23/aws_s3_etags/ ETag's should NOT be present when uploading a `signature`. [optional]

Return type

File

Authorization

authCookie

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

getAdminAssetBundle

AdminAssetBundle getAdminAssetBundle(adminAssetBundleId)

Get AdminAssetBundle

Returns an AdminAssetBundle

Parameters

Name Type Description Notes
adminAssetBundleId String Must be a valid admin asset bundle ID. [default to null]

Return type

AdminAssetBundle

Authorization

authCookie

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

getContentAgreementStatus

AgreementStatus getContentAgreementStatus(agreementCode, contentId, version)

Get Content Agreement Status

Returns the agreement status of the currently authenticated user for the given agreementCode, contentId, and version.

Parameters

Name Type Description Notes
agreementCode String The type of agreement (currently content.copyright.owned) [default to content.copyright.owned] [enum: content.copyright.owned]
contentId String The id of the content being uploaded, such as a WorldID, AvatarID, or PropID [default to null]
version Integer The version of the agreement (currently 1) [default to null]

Return type

AgreementStatus

Authorization

authCookie

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

getFile

File getFile(fileId)

Show File

Shows general information about the \"File\" object. Each File can have several \"Version\"'s, and each Version can have multiple real files or \"Data\" blobs.

Parameters

Name Type Description Notes
fileId String Must be a valid file ID. [default to null]

Return type

File

Authorization

authCookie

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

getFileAnalysis

FileAnalysis getFileAnalysis(fileId, versionId)

Get File Version Analysis

Get the performance analysis for the uploaded assets of an avatar

Parameters

Name Type Description Notes
fileId String Must be a valid file ID. [default to null]
versionId Integer Version ID of the asset. [default to null]

Return type

FileAnalysis

Authorization

authCookie

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

getFileAnalysisSecurity

FileAnalysis getFileAnalysisSecurity(fileId, versionId)

Get File Version Analysis Security

Get the security performance analysis for the uploaded assets of an avatar

Parameters

Name Type Description Notes
fileId String Must be a valid file ID. [default to null]
versionId Integer Version ID of the asset. [default to null]

Return type

FileAnalysis

Authorization

authCookie

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

getFileAnalysisStandard

FileAnalysis getFileAnalysisStandard(fileId, versionId)

Get File Version Analysis Standard

Get the standard performance analysis for the uploaded assets of an avatar

Parameters

Name Type Description Notes
fileId String Must be a valid file ID. [default to null]
versionId Integer Version ID of the asset. [default to null]

Return type

FileAnalysis

Authorization

authCookie

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

getFileDataUploadStatus

FileVersionUploadStatus getFileDataUploadStatus(fileId, versionId, fileType)

Check FileData Upload Status

Retrieves the upload status for file upload. Can currently only be accessed when `status` is `waiting`. Trying to access it on a file version already uploaded currently times out.

Parameters

Name Type Description Notes
fileId String Must be a valid file ID. [default to null]
versionId Integer Version ID of the asset. [default to null]
fileType String Type of file. [default to null] [enum: delta, file, signature]

Return type

FileVersionUploadStatus

Authorization

authCookie

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

getFiles

List getFiles(tag, userId, n, offset)

List Files

Returns a list of files

Parameters

Name Type Description Notes
tag String Tag, for example "icon" or "gallery", not included by default. [optional] [default to null]
userId String UserID, will always generate a 500 permission error. [optional] [default to null]
n Integer The number of objects to return. [optional] [default to 60]
offset Integer A zero-based offset from the default object sorting from where search results start. [optional] [default to null]

Return type

List

Authorization

authCookie

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

setGroupGalleryFileOrder

GroupGalleryFileOrder setGroupGalleryFileOrder(GroupGalleryFileOrderRequest)

Set Group Gallery File Order

Set the order of the files in a group gallery

Parameters

Name Type Description Notes
GroupGalleryFileOrderRequest GroupGalleryFileOrderRequest [optional]

Return type

GroupGalleryFileOrder

Authorization

authCookie

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

startFileDataUpload

FileUploadURL startFileDataUpload(fileId, versionId, fileType, partNumber)

Start FileData Upload

Starts an upload of a specific FilePart. This endpoint will return an AWS URL which you can PUT data to. You need to call this and receive a new AWS API URL for each `partNumber`. Please see AWS's REST documentation on \"PUT Object to S3\" on how to upload. Once all parts has been uploaded, proceed to `/finish` endpoint.  **Note:** `nextPartNumber` seems like it is always ignored. Despite it returning 0, first partNumber is always 1.

Parameters

Name Type Description Notes
fileId String Must be a valid file ID. [default to null]
versionId Integer Version ID of the asset. [default to null]
fileType String Type of file. [default to null] [enum: delta, file, signature]
partNumber Integer The part number to start uploading. If not provided, the first part will be started. [optional] [default to null]

Return type

FileUploadURL

Authorization

authCookie

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

submitContentAgreement

Agreement submitContentAgreement(AgreementRequest)

Submit Content Agreement

Returns the agreement of the currently authenticated user for the given agreementCode, contentId, and version.

Parameters

Name Type Description Notes
AgreementRequest AgreementRequest [optional]

Return type

Agreement

Authorization

authCookie

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

updateAssetReviewNotes

updateAssetReviewNotes(assetReviewId, UpdateAssetReviewNotesRequest)

Update Asset Review Notes

Update notes regarding an asset review.

Parameters

Name Type Description Notes
assetReviewId String Must be an valid asset review ID. [default to null]
UpdateAssetReviewNotesRequest UpdateAssetReviewNotesRequest [optional]

Return type

null (empty response body)

Authorization

authCookie

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

uploadGalleryImage

File uploadGalleryImage(file)

Upload gallery image

Upload a gallery image

Parameters

Name Type Description Notes
file File The binary blob of the png file. [default to null]

Return type

File

Authorization

authCookie

HTTP request headers

  • Content-Type: multipart/form-data
  • Accept: application/json

uploadIcon

File uploadIcon(file)

Upload icon

Upload an icon

Parameters

Name Type Description Notes
file File The binary blob of the png file. [default to null]

Return type

File

Authorization

authCookie

HTTP request headers

  • Content-Type: multipart/form-data
  • Accept: application/json

uploadImage

File uploadImage(file, tag, animationStyle, frames, framesOverTime, loopStyle, maskTag)

Upload gallery image, icon, emoji or sticker

Upload an image, which can be an icon, gallery image, sticker or emoji

Parameters

Name Type Description Notes
file File The binary blob of the png file. [default to null]
tag String Indication of the purpose for uploading images. [default to gallery] [enum: admin, avatargallery, avatarimage, bundle, emoji, emojianimated, gallery, icon, listinggallery, product, sticker]
animationStyle String Animation style for images. [optional] [default to null] [enum: aura, bats, bees, bounce, cloud, confetti, crying, dislike, fire, idea, lasers, like, magnet, mistletoe, money, noise, orbit, pizza, rain, rotate, shake, snow, snowball, spin, splash, stop, zzz]
frames Integer Required for animated images. Total number of frames of the spritesheet to be animated. [optional] [default to null]
framesOverTime Integer Required for animated images. Animation frames per second. [optional] [default to null]
loopStyle String Animation looping style for images. [optional] [default to linear] [enum: linear, pingpong]
maskTag String Mask shape for images. [optional] [default to square] [enum: circle, flower, heart, pow, square, star]

Return type

File

Authorization

authCookie

HTTP request headers

  • Content-Type: multipart/form-data
  • Accept: application/json