{"openapi":"3.0.3","info":{"title":"Zipline","description":"Zipline API","version":"4.6.5"},"components":{"schemas":{}},"paths":{"/api/healthcheck":{"get":{"description":"Perform a simple healthcheck on the database and backend of Zipline. Returns a simple pass/fail response.","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"pass":{"type":"boolean","description":"true if the server and db are reachable and functioning."}},"required":["pass"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/setup":{"get":{"description":"Return whether Zipline is in first-time setup mode, used by the initial setup flow.","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"firstSetup":{"type":"boolean"}},"required":["firstSetup"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}},"post":{"description":"Perform the first-time setup by creating the initial SUPERADMIN user.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"username":{"type":"string","minLength":1},"password":{"type":"string","minLength":1}},"required":["username","password"]}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"firstSetup":{"type":"boolean"},"user":{"type":"object","properties":{"id":{"type":"string"},"username":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"role":{"type":"string","enum":["USER","ADMIN","SUPERADMIN"]},"view":{"type":"object","properties":{"enabled":{"nullable":true,"type":"boolean"},"disableTextFiles":{"nullable":true,"type":"boolean"},"align":{"nullable":true,"type":"string","enum":["left","center","right"]},"showMimetype":{"nullable":true,"type":"boolean"},"showTags":{"nullable":true,"type":"boolean"},"showFolder":{"nullable":true,"type":"boolean"},"content":{"nullable":true,"type":"string"},"embed":{"nullable":true,"type":"boolean"},"embedMediaOnly":{"nullable":true,"type":"boolean"},"embedTitle":{"nullable":true,"type":"string"},"embedDescription":{"nullable":true,"type":"string"},"embedColor":{"nullable":true,"type":"string"},"embedSiteName":{"nullable":true,"type":"string"}},"additionalProperties":false},"sessions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"ua":{"type":"string"},"client":{"type":"string"},"device":{"type":"string"},"userId":{"type":"string"}},"required":["id","createdAt","ua","client","device","userId"],"additionalProperties":false}},"oauthProviders":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"userId":{"type":"string"},"provider":{"type":"string","enum":["DISCORD","GOOGLE","GITHUB","OIDC"]},"username":{"type":"string"},"accessToken":{"type":"string"},"refreshToken":{"nullable":true,"type":"string"},"oauthId":{"nullable":true,"type":"string"}},"required":["id","createdAt","updatedAt","userId","provider","username","accessToken","refreshToken","oauthId"],"additionalProperties":false}},"totpSecret":{"nullable":true,"type":"string"},"passkeys":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"lastUsed":{"nullable":true,"type":"string","format":"date-time"},"name":{"type":"string"},"reg":{},"userId":{"type":"string"}},"required":["id","createdAt","updatedAt","lastUsed","name","reg","userId"],"additionalProperties":false}},"quota":{"nullable":true,"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"filesQuota":{"type":"string","enum":["BY_BYTES","BY_FILES"]},"maxBytes":{"nullable":true,"type":"string"},"maxFiles":{"nullable":true,"type":"number"},"maxUrls":{"nullable":true,"type":"number"},"userId":{"nullable":true,"type":"string"}},"required":["id","createdAt","updatedAt","filesQuota","maxBytes","maxFiles","maxUrls","userId"],"additionalProperties":false},"avatar":{"nullable":true,"type":"string"},"password":{"nullable":true,"type":"string"},"token":{"nullable":true,"type":"string"}},"required":["id","username","createdAt","updatedAt","role","view","sessions","oauthProviders"],"additionalProperties":false}},"required":["firstSetup","user"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/stats":{"get":{"tags":["auth"],"description":"Get instance-wide metrics and statistics for Zipline over a given date range or for all time.","parameters":[{"schema":{"type":"string"},"in":"query","name":"from","required":false},{"schema":{"type":"string"},"in":"query","name":"to","required":false},{"schema":{"type":"string","enum":["true","false"]},"in":"query","name":"all","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"latest":{"nullable":true,"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"data":{"type":"object","properties":{"users":{"type":"number"},"files":{"type":"number"},"fileViews":{"type":"number"},"urls":{"type":"number"},"urlViews":{"type":"number"},"storage":{"type":"number"},"filesUsers":{"type":"array","items":{"type":"object","properties":{"username":{"nullable":true,"type":"string"},"sum":{"type":"number"},"storage":{"type":"number"},"views":{"type":"number"}},"required":["username","sum","storage","views"],"additionalProperties":false}},"urlsUsers":{"type":"array","items":{"type":"object","properties":{"username":{"nullable":true,"type":"string"},"sum":{"type":"number"},"views":{"type":"number"}},"required":["username","sum","views"],"additionalProperties":false}},"types":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"sum":{"type":"number"}},"required":["type","sum"],"additionalProperties":false}}},"required":["users","files","fileViews","urls","urlViews","storage","filesUsers","urlsUsers","types"],"additionalProperties":false}},"required":["id","createdAt","updatedAt","data"],"additionalProperties":false},"points":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"users":{"type":"number"},"files":{"type":"number"},"fileViews":{"type":"number"},"urls":{"type":"number"},"urlViews":{"type":"number"},"storage":{}},"required":["id","createdAt","users","files","fileViews","urls","urlViews","storage"],"additionalProperties":false}}},"required":["latest","points"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/version":{"get":{"tags":["auth"],"description":"Return backend version information, including current build details and upstream/latest version metadata.","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"isUpstream":{"type":"boolean"},"isRelease":{"type":"boolean"},"isLatest":{"type":"boolean"},"version":{"type":"object","properties":{"tag":{"type":"string"},"sha":{"type":"string"},"url":{"type":"string"}},"required":["tag","sha","url"],"additionalProperties":false},"latest":{"type":"object","properties":{"tag":{"type":"string"},"url":{"type":"string"},"commit":{"type":"object","properties":{"sha":{"type":"string"},"url":{"type":"string"},"pull":{"type":"boolean"}},"required":["sha","url","pull"],"additionalProperties":false}},"required":["tag","url"],"additionalProperties":false}},"required":["isUpstream","isRelease","isLatest","version","latest"],"additionalProperties":false,"description":"version information from the version checking API"},"details":{"type":"object","properties":{"version":{"type":"string"},"sha":{"nullable":true,"type":"string"}},"required":["version","sha"],"additionalProperties":false},"cached":{"type":"boolean"}},"required":["data","details","cached"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/auth/login":{"post":{"description":"Authenticate a user, creating a session and optionally requiring a TOTP code when multi-factor auth is enabled.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"username":{"type":"string","minLength":1},"password":{"type":"string","minLength":1},"code":{"type":"string","minLength":1}},"required":["username","password"]}}}},"parameters":[{"schema":{"type":"string"},"in":"header","name":"x-zipline-client","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"user":{"type":"object","properties":{"id":{"type":"string"},"username":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"role":{"type":"string","enum":["USER","ADMIN","SUPERADMIN"]},"view":{"type":"object","properties":{"enabled":{"nullable":true,"type":"boolean"},"disableTextFiles":{"nullable":true,"type":"boolean"},"align":{"nullable":true,"type":"string","enum":["left","center","right"]},"showMimetype":{"nullable":true,"type":"boolean"},"showTags":{"nullable":true,"type":"boolean"},"showFolder":{"nullable":true,"type":"boolean"},"content":{"nullable":true,"type":"string"},"embed":{"nullable":true,"type":"boolean"},"embedMediaOnly":{"nullable":true,"type":"boolean"},"embedTitle":{"nullable":true,"type":"string"},"embedDescription":{"nullable":true,"type":"string"},"embedColor":{"nullable":true,"type":"string"},"embedSiteName":{"nullable":true,"type":"string"}},"additionalProperties":false},"sessions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"ua":{"type":"string"},"client":{"type":"string"},"device":{"type":"string"},"userId":{"type":"string"}},"required":["id","createdAt","ua","client","device","userId"],"additionalProperties":false}},"oauthProviders":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"userId":{"type":"string"},"provider":{"type":"string","enum":["DISCORD","GOOGLE","GITHUB","OIDC"]},"username":{"type":"string"},"accessToken":{"type":"string"},"refreshToken":{"nullable":true,"type":"string"},"oauthId":{"nullable":true,"type":"string"}},"required":["id","createdAt","updatedAt","userId","provider","username","accessToken","refreshToken","oauthId"],"additionalProperties":false}},"totpSecret":{"nullable":true,"type":"string"},"passkeys":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"lastUsed":{"nullable":true,"type":"string","format":"date-time"},"name":{"type":"string"},"reg":{},"userId":{"type":"string"}},"required":["id","createdAt","updatedAt","lastUsed","name","reg","userId"],"additionalProperties":false}},"quota":{"nullable":true,"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"filesQuota":{"type":"string","enum":["BY_BYTES","BY_FILES"]},"maxBytes":{"nullable":true,"type":"string"},"maxFiles":{"nullable":true,"type":"number"},"maxUrls":{"nullable":true,"type":"number"},"userId":{"nullable":true,"type":"string"}},"required":["id","createdAt","updatedAt","filesQuota","maxBytes","maxFiles","maxUrls","userId"],"additionalProperties":false},"avatar":{"nullable":true,"type":"string"},"password":{"nullable":true,"type":"string"},"token":{"nullable":true,"type":"string"}},"required":["id","username","createdAt","updatedAt","role","view","sessions","oauthProviders"],"additionalProperties":false},"totp":{"type":"boolean","enum":[true]}},"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/auth/logout":{"get":{"tags":["auth"],"description":"Log out the currently authenticated user and invalidate their active session.","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"loggedOut":{"type":"boolean"}},"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/auth/register":{"post":{"description":"Register a new user account and immediately authenticate them, optionally consuming an invite code.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"username":{"type":"string","minLength":1},"password":{"type":"string","minLength":1},"code":{"type":"string","minLength":1}},"required":["username","password"]}}}},"parameters":[{"schema":{"type":"string"},"in":"header","name":"x-zipline-client","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"user":{"type":"object","properties":{"id":{"type":"string"},"username":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"role":{"type":"string","enum":["USER","ADMIN","SUPERADMIN"]},"view":{"type":"object","properties":{"enabled":{"nullable":true,"type":"boolean"},"disableTextFiles":{"nullable":true,"type":"boolean"},"align":{"nullable":true,"type":"string","enum":["left","center","right"]},"showMimetype":{"nullable":true,"type":"boolean"},"showTags":{"nullable":true,"type":"boolean"},"showFolder":{"nullable":true,"type":"boolean"},"content":{"nullable":true,"type":"string"},"embed":{"nullable":true,"type":"boolean"},"embedMediaOnly":{"nullable":true,"type":"boolean"},"embedTitle":{"nullable":true,"type":"string"},"embedDescription":{"nullable":true,"type":"string"},"embedColor":{"nullable":true,"type":"string"},"embedSiteName":{"nullable":true,"type":"string"}},"additionalProperties":false},"sessions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"ua":{"type":"string"},"client":{"type":"string"},"device":{"type":"string"},"userId":{"type":"string"}},"required":["id","createdAt","ua","client","device","userId"],"additionalProperties":false}},"oauthProviders":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"userId":{"type":"string"},"provider":{"type":"string","enum":["DISCORD","GOOGLE","GITHUB","OIDC"]},"username":{"type":"string"},"accessToken":{"type":"string"},"refreshToken":{"nullable":true,"type":"string"},"oauthId":{"nullable":true,"type":"string"}},"required":["id","createdAt","updatedAt","userId","provider","username","accessToken","refreshToken","oauthId"],"additionalProperties":false}},"totpSecret":{"nullable":true,"type":"string"},"passkeys":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"lastUsed":{"nullable":true,"type":"string","format":"date-time"},"name":{"type":"string"},"reg":{},"userId":{"type":"string"}},"required":["id","createdAt","updatedAt","lastUsed","name","reg","userId"],"additionalProperties":false}},"quota":{"nullable":true,"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"filesQuota":{"type":"string","enum":["BY_BYTES","BY_FILES"]},"maxBytes":{"nullable":true,"type":"string"},"maxFiles":{"nullable":true,"type":"number"},"maxUrls":{"nullable":true,"type":"number"},"userId":{"nullable":true,"type":"string"}},"required":["id","createdAt","updatedAt","filesQuota","maxBytes","maxFiles","maxUrls","userId"],"additionalProperties":false},"avatar":{"nullable":true,"type":"string"},"password":{"nullable":true,"type":"string"},"token":{"nullable":true,"type":"string"}},"required":["id","username","createdAt","updatedAt","role","view","sessions","oauthProviders"],"additionalProperties":false}},"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/auth/webauthn/options":{"get":{"description":"Generate WebAuthn authentication options for logging in with an existing passkey.","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/auth/webauthn":{"post":{"description":"Verify a WebAuthn authentication response and log in the user associated with the matching passkey.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"response":{}},"required":["response"]}}}},"parameters":[{"schema":{"type":"string"},"in":"header","name":"x-zipline-client","required":false}],"responses":{"200":{"description":"Default Response"},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/server/clear_temp":{"delete":{"tags":["auth","admin"],"description":"Delete temporary files on the Zipline server and return a short status message (admin only).","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"}},"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/server/clear_zeros":{"get":{"tags":["auth","admin"],"description":"Scan for zero-byte files on disk and return the list of candidates to delete (admin only).","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"files":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"additionalProperties":false}}},"required":["files"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}},"delete":{"tags":["auth","admin"],"description":"Delete zero-byte files previously detected on disk and return a short status message (admin only).","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"}},"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/server/export":{"get":{"description":"Export Zipline server data as a version 4 export bundle or return aggregate counts of core resources.","parameters":[{"schema":{"type":"string","enum":["true","false"]},"in":"query","name":"nometrics","required":false},{"schema":{"type":"string","enum":["true","false"]},"in":"query","name":"counts","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"users":{"type":"number"},"files":{"type":"number"},"urls":{"type":"number"},"folders":{"type":"number"},"invites":{"type":"number"},"thumbnails":{"type":"number"},"metrics":{"type":"number"}},"required":["users","files","urls","folders","invites","thumbnails","metrics"],"additionalProperties":false,"description":"if ?counts=true"},{"type":"object","properties":{"versions":{"type":"object","properties":{"zipline":{"type":"string"},"node":{"type":"string"},"export":{"type":"string","enum":["4"]}},"required":["zipline","node","export"],"additionalProperties":false},"request":{"type":"object","properties":{"user":{},"date":{"type":"string"},"os":{"type":"object","properties":{"platform":{"anyOf":[{"type":"string","enum":["aix"]},{"type":"string","enum":["darwin"]},{"type":"string","enum":["freebsd"]},{"type":"string","enum":["linux"]},{"type":"string","enum":["openbsd"]},{"type":"string","enum":["sunos"]},{"type":"string","enum":["win32"]},{"type":"string","enum":["android"]}]},"arch":{"anyOf":[{"type":"string","enum":["arm"]},{"type":"string","enum":["arm64"]},{"type":"string","enum":["ia32"]},{"type":"string","enum":["loong64"]},{"type":"string","enum":["mips"]},{"type":"string","enum":["mipsel"]},{"type":"string","enum":["ppc"]},{"type":"string","enum":["ppc64"]},{"type":"string","enum":["riscv64"]},{"type":"string","enum":["s390"]},{"type":"string","enum":["s390x"]},{"type":"string","enum":["x64"]}]},"cpus":{"type":"number"},"hostname":{"type":"string"},"release":{"type":"string"}},"required":["platform","arch","cpus","hostname","release"],"additionalProperties":false},"env":{"type":"object","additionalProperties":{"type":"string"}}},"required":["user","date","os","env"],"additionalProperties":false},"data":{"type":"object","properties":{"settings":{},"users":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"username":{"type":"string"},"password":{"nullable":true,"type":"string"},"avatar":{"nullable":true,"type":"string"},"role":{"type":"string","enum":["USER","ADMIN","SUPERADMIN"]},"view":{"type":"object","additionalProperties":{}},"totpSecret":{"nullable":true,"type":"string"}},"required":["id","createdAt","username","role","view"],"additionalProperties":false}},"userPasskeys":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"lastUsed":{"nullable":true,"type":"string"},"name":{"type":"string"},"reg":{"type":"object","additionalProperties":{}},"userId":{"type":"string"}},"required":["id","createdAt","name","reg","userId"],"additionalProperties":false}},"userQuotas":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"filesQuota":{"type":"string","enum":["BY_BYTES","BY_FILES"]},"maxBytes":{"nullable":true,"type":"string"},"maxFiles":{"nullable":true,"type":"number"},"maxUrls":{"nullable":true,"type":"number"},"userId":{"nullable":true,"type":"string"}},"required":["id","createdAt","filesQuota"],"additionalProperties":false}},"userOauthProviders":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"provider":{"type":"string","enum":["DISCORD","GOOGLE","GITHUB","OIDC"]},"username":{"type":"string"},"accessToken":{"type":"string"},"refreshToken":{"nullable":true,"type":"string"},"oauthId":{"nullable":true,"type":"string"},"userId":{"type":"string"}},"required":["id","createdAt","provider","username","accessToken","userId"],"additionalProperties":false}},"userTags":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"name":{"type":"string"},"color":{"nullable":true,"type":"string"},"files":{"type":"array","items":{"type":"string"}},"userId":{"type":"string"}},"required":["id","createdAt","name","files","userId"],"additionalProperties":false}},"invites":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"expiresAt":{"nullable":true,"type":"string"},"code":{"type":"string"},"uses":{"type":"number"},"maxUses":{"nullable":true,"type":"number"},"inviterId":{"type":"string"}},"required":["id","createdAt","code","uses","inviterId"],"additionalProperties":false}},"folders":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"name":{"type":"string"},"public":{"type":"boolean"},"allowUploads":{"type":"boolean"},"files":{"type":"array","items":{"type":"string"}},"userId":{"type":"string"},"parentId":{"nullable":true,"type":"string"}},"required":["id","createdAt","name","public","allowUploads","files","userId"],"additionalProperties":false}},"urls":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"code":{"type":"string"},"vanity":{"nullable":true,"type":"string"},"destination":{"type":"string"},"views":{"type":"number"},"maxViews":{"nullable":true,"type":"number"},"password":{"nullable":true,"type":"string"},"enabled":{"type":"boolean"},"userId":{"nullable":true,"type":"string"}},"required":["id","createdAt","code","destination","views","enabled"],"additionalProperties":false}},"files":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"deletesAt":{"nullable":true,"type":"string"},"name":{"type":"string"},"originalName":{"nullable":true,"type":"string"},"size":{"type":"number"},"type":{"type":"string"},"views":{"type":"number"},"maxViews":{"nullable":true,"type":"number"},"favorite":{"type":"boolean"},"password":{"nullable":true,"type":"string"},"userId":{"nullable":true,"type":"string"},"folderId":{"nullable":true,"type":"string"}},"required":["id","createdAt","name","size","type","views","favorite","userId"],"additionalProperties":false}},"thumbnails":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"path":{"type":"string"},"fileId":{"type":"string"}},"required":["id","createdAt","path","fileId"],"additionalProperties":false}},"metrics":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"data":{"type":"object","additionalProperties":{}}},"required":["id","createdAt","data"],"additionalProperties":false}}},"required":["settings","users","userPasskeys","userQuotas","userOauthProviders","userTags","invites","folders","urls","files","thumbnails","metrics"],"additionalProperties":false}},"required":["versions","request","data"],"additionalProperties":false,"description":"if ?counts is not true or not there"}]}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/server/folder/{id}":{"get":{"description":"Fetch a folder by ID/name. Behavior varies based on public and allowUploads flags.","parameters":[{"schema":{"type":"number"},"in":"query","name":"page","required":false},{"schema":{"default":15,"type":"number"},"in":"query","name":"perpage","required":false},{"schema":{"default":"createdAt","type":"string","enum":["id","createdAt","updatedAt","deletesAt","name","originalName","size","type","views","favorite"]},"in":"query","name":"sortBy","required":false},{"schema":{"default":"desc","type":"string","enum":["asc","desc"]},"in":"query","name":"order","required":false},{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"folder":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"}]},"name":{"type":"string"},"public":{"type":"boolean"},"allowUploads":{"type":"boolean"},"parentId":{"nullable":true,"type":"string"},"userId":{"type":"string"},"files":{"type":"array","items":{"type":"object","properties":{"createdAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"updatedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"deletesAt":{"nullable":true,"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"favorite":{"type":"boolean"},"id":{"type":"string"},"originalName":{"nullable":true,"type":"string"},"name":{"type":"string"},"size":{"type":"number"},"type":{"type":"string"},"views":{"type":"number"},"maxViews":{"nullable":true,"type":"number"},"password":{"nullable":true,"anyOf":[{"type":"string"},{"type":"boolean"}]},"folderId":{"nullable":true,"type":"string"},"anonymous":{"nullable":true,"type":"boolean"},"thumbnail":{"nullable":true,"type":"object","properties":{"path":{"type":"string"}},"required":["path"],"additionalProperties":false},"tags":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"name":{"type":"string"},"color":{"type":"string"},"files":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":false}}},"required":["id","createdAt","updatedAt","name","color"],"additionalProperties":false}},"url":{"type":"string"},"similarity":{"type":"number"}},"required":["createdAt","updatedAt","deletesAt","favorite","id","originalName","name","size","type","views","folderId","thumbnail"],"additionalProperties":false}},"parent":{"nullable":true},"children":{"type":"array","items":{}},"_count":{"type":"object","properties":{"children":{"type":"number"},"files":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false},"page":{"type":"array","items":{"type":"object","properties":{"createdAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"updatedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"deletesAt":{"nullable":true,"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"favorite":{"type":"boolean"},"id":{"type":"string"},"originalName":{"nullable":true,"type":"string"},"name":{"type":"string"},"size":{"type":"number"},"type":{"type":"string"},"views":{"type":"number"},"maxViews":{"nullable":true,"type":"number"},"password":{"nullable":true,"anyOf":[{"type":"string"},{"type":"boolean"}]},"folderId":{"nullable":true,"type":"string"},"anonymous":{"nullable":true,"type":"boolean"},"thumbnail":{"nullable":true,"type":"object","properties":{"path":{"type":"string"}},"required":["path"],"additionalProperties":false},"tags":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"name":{"type":"string"},"color":{"type":"string"},"files":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":false}}},"required":["id","createdAt","updatedAt","name","color"],"additionalProperties":false}},"url":{"type":"string"},"similarity":{"type":"number"}},"required":["createdAt","updatedAt","deletesAt","favorite","id","originalName","name","size","type","views","folderId","thumbnail"],"additionalProperties":false}},"total":{"type":"number"},"pages":{"type":"number"}},"required":["folder","page","total","pages"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/server/public":{"get":{"description":"Return the public Zipline configuration used by the client, including OAuth, website, feature, file and chunk settings.","responses":{"200":{"description":"the public configuration for the Zipline instance","content":{"application/json":{"schema":{"type":"object","properties":{"oauth":{"type":"object","properties":{"bypassLocalLogin":{"type":"boolean"},"loginOnly":{"type":"boolean"}},"required":["bypassLocalLogin","loginOnly"],"additionalProperties":false},"oauthEnabled":{"type":"object","properties":{"discord":{"type":"boolean"},"github":{"type":"boolean"},"google":{"type":"boolean"},"oidc":{"type":"boolean"}},"required":["discord","github","google","oidc"],"additionalProperties":false},"website":{"type":"object","properties":{"loginBackground":{"nullable":true,"type":"string"},"loginBackgroundBlur":{"type":"boolean"},"title":{"type":"string"},"tos":{"type":"boolean"}},"required":["tos"],"additionalProperties":false},"features":{"type":"object","properties":{"oauthRegistration":{"type":"boolean"},"userRegistration":{"type":"boolean"},"metrics":{"type":"object","properties":{"adminOnly":{"type":"boolean"}},"additionalProperties":false}},"required":["oauthRegistration","userRegistration"],"additionalProperties":false},"mfa":{"type":"object","properties":{"passkeys":{"type":"boolean"}},"required":["passkeys"],"additionalProperties":false},"tos":{"nullable":true,"type":"string"},"files":{"type":"object","properties":{"maxFileSize":{"type":"string"},"defaultFormat":{"default":"random","type":"string","enum":["random","date","uuid","name","gfycat","random-words"]},"maxExpiration":{"nullable":true,"type":"string"},"extensionlessUrls":{"type":"boolean"}},"required":["maxFileSize","defaultFormat"],"additionalProperties":false},"chunks":{"type":"object","properties":{"max":{"default":"95mb","type":"string"},"size":{"default":"25mb","type":"string"},"enabled":{"default":true,"type":"boolean"}},"required":["max","size","enabled"],"additionalProperties":false},"firstSetup":{"type":"boolean"},"domains":{"type":"array","items":{"type":"string"}},"returnHttps":{"type":"boolean"}},"required":["oauth","oauthEnabled","website","features","mfa","files","chunks","firstSetup","returnHttps"],"additionalProperties":false,"description":"the public configuration for the Zipline instance"}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/server/requery_size":{"post":{"tags":["auth","admin"],"description":"Re-scan stored files to update their sizes and optionally delete missing ones, returning a short status message (admin only).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"forceDelete":{"default":false,"type":"boolean"},"forceUpdate":{"default":false,"type":"boolean"}}}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"}},"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/server/status":{"get":{"tags":["auth","admin"],"description":"Get disk status for the configured datasource","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"datasource":{"type":"string","enum":["local","s3"],"description":"Configured datasource type for this Zipline instance."},"storage":{"type":"object","properties":{"used":{"type":"number"},"total":{"nullable":true,"type":"number"},"available":{"nullable":true,"type":"number"},"path":{"type":"string"}},"required":["used","total","available","path"],"additionalProperties":false}},"required":["datasource","storage"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/server/themes":{"get":{"description":"List all available themes and indicate which theme is currently configured as the default.","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"themes":{"type":"array","items":{}},"defaultTheme":{}},"required":["themes","defaultTheme"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/server/thumbnails":{"post":{"tags":["auth","admin"],"description":"Manually trigger the thumbnails background task, optionally rerunning it for existing files (admin only).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"rerun":{"default":false,"type":"boolean"}}}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"}},"required":["status"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/upload":{"post":{"tags":["auth"],"description":"Upload one or more files for the authenticated user, applying quota, folder, and upload option restrictions.","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"anyOf":[{"type":"string","description":"if the noJson option is true, returns a comma-separated list of URLs"},{"type":"object","properties":{"files":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"},"url":{"type":"string"},"pending":{"type":"boolean"},"removedGps":{"type":"boolean"},"compressed":{"type":"object","properties":{"mimetype":{"type":"string"},"ext":{"type":"string","enum":["jpg","jpeg","png","webp","jxl"]},"failed":{"type":"boolean"}},"required":["mimetype","ext"],"additionalProperties":false}},"required":["id","name","type","url"],"additionalProperties":false}},"deletesAt":{"type":"string"},"assumedMimetypes":{"type":"array","items":{"type":"boolean"}}},"required":["files"],"additionalProperties":false}]}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/upload/partial":{"post":{"tags":["auth"],"description":"Upload a single file in chunks as a partial upload session, using headers to control chunking and resumption.","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/user/activity":{"get":{"tags":["auth"],"description":"Daily upload and login counts for the authenticated user over a recent window.","parameters":[{"schema":{"default":14,"type":"integer","minimum":1,"maximum":90},"in":"query","name":"days","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"days":{"type":"number"},"series":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"uploads":{"type":"number"},"logins":{"type":"number"}},"required":["date","uploads","logins"],"additionalProperties":false}},"totals":{"type":"object","properties":{"uploads":{"type":"number"},"logins":{"type":"number"}},"required":["uploads","logins"],"additionalProperties":false}},"required":["days","series","totals"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/user/avatar":{"get":{"tags":["auth"],"description":"Return the current user's avatar as a base64 data URL.","responses":{"200":{"description":"data URL with base64","content":{"application/json":{"schema":{"type":"string","description":"data URL with base64"}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/user/export":{"get":{"tags":["auth"],"description":"List your exports or download a specific completed export archive by ID.","parameters":[{"schema":{"type":"string"},"in":"query","name":"id","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"completed":{"type":"boolean"},"path":{"type":"string"},"files":{"type":"number"},"size":{"type":"string"}},"required":["id","createdAt","updatedAt","completed","path","files","size"],"additionalProperties":false}}},"application/zip":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"completed":{"type":"boolean"},"path":{"type":"string"},"files":{"type":"number"},"size":{"type":"string"}},"required":["id","createdAt","updatedAt","completed","path","files","size"],"additionalProperties":false}}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}},"delete":{"tags":["auth"],"description":"Delete a specific export and remove its archive file from storage.","parameters":[{"schema":{"type":"string"},"in":"query","name":"id","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"deleted":{"type":"boolean"}},"required":["deleted"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}},"post":{"tags":["auth"],"description":"Start an export job that zips all of your files into a downloadable archive.","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"running":{"type":"boolean"}},"required":["running"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/user":{"get":{"tags":["auth"],"description":"Get the currently authenticated user and their token.","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"user":{"type":"object","properties":{"id":{"type":"string"},"username":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"role":{"type":"string","enum":["USER","ADMIN","SUPERADMIN"]},"view":{"type":"object","properties":{"enabled":{"nullable":true,"type":"boolean"},"disableTextFiles":{"nullable":true,"type":"boolean"},"align":{"nullable":true,"type":"string","enum":["left","center","right"]},"showMimetype":{"nullable":true,"type":"boolean"},"showTags":{"nullable":true,"type":"boolean"},"showFolder":{"nullable":true,"type":"boolean"},"content":{"nullable":true,"type":"string"},"embed":{"nullable":true,"type":"boolean"},"embedMediaOnly":{"nullable":true,"type":"boolean"},"embedTitle":{"nullable":true,"type":"string"},"embedDescription":{"nullable":true,"type":"string"},"embedColor":{"nullable":true,"type":"string"},"embedSiteName":{"nullable":true,"type":"string"}},"additionalProperties":false},"sessions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"ua":{"type":"string"},"client":{"type":"string"},"device":{"type":"string"},"userId":{"type":"string"}},"required":["id","createdAt","ua","client","device","userId"],"additionalProperties":false}},"oauthProviders":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"userId":{"type":"string"},"provider":{"type":"string","enum":["DISCORD","GOOGLE","GITHUB","OIDC"]},"username":{"type":"string"},"accessToken":{"type":"string"},"refreshToken":{"nullable":true,"type":"string"},"oauthId":{"nullable":true,"type":"string"}},"required":["id","createdAt","updatedAt","userId","provider","username","accessToken","refreshToken","oauthId"],"additionalProperties":false}},"totpSecret":{"nullable":true,"type":"string"},"passkeys":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"lastUsed":{"nullable":true,"type":"string","format":"date-time"},"name":{"type":"string"},"reg":{},"userId":{"type":"string"}},"required":["id","createdAt","updatedAt","lastUsed","name","reg","userId"],"additionalProperties":false}},"quota":{"nullable":true,"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"filesQuota":{"type":"string","enum":["BY_BYTES","BY_FILES"]},"maxBytes":{"nullable":true,"type":"string"},"maxFiles":{"nullable":true,"type":"number"},"maxUrls":{"nullable":true,"type":"number"},"userId":{"nullable":true,"type":"string"}},"required":["id","createdAt","updatedAt","filesQuota","maxBytes","maxFiles","maxUrls","userId"],"additionalProperties":false},"avatar":{"nullable":true,"type":"string"},"password":{"nullable":true,"type":"string"},"token":{"nullable":true,"type":"string"}},"required":["id","username","createdAt","updatedAt","role","view","sessions","oauthProviders"],"additionalProperties":false},"token":{"type":"string"}},"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}},"patch":{"tags":["auth"],"description":"Update the current user's profile, credentials, avatar, and view settings.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"username":{"type":"string","minLength":1},"password":{"type":"string","minLength":1},"currentPassword":{"type":"string"},"avatar":{"nullable":true,"type":"string"},"view":{"type":"object","properties":{"content":{"nullable":true,"type":"string"},"embed":{"type":"boolean"},"embedMediaOnly":{"type":"boolean"},"embedTitle":{"nullable":true,"type":"string"},"embedDescription":{"nullable":true,"type":"string"},"embedColor":{"nullable":true,"type":"string"},"embedSiteName":{"nullable":true,"type":"string"},"enabled":{"type":"boolean"},"disableTextFiles":{"type":"boolean"},"align":{"type":"string","enum":["left","center","right"]},"showMimetype":{"type":"boolean"},"showTags":{"type":"boolean"},"showFolder":{"type":"boolean"}}}}}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"user":{"type":"object","properties":{"id":{"type":"string"},"username":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"role":{"type":"string","enum":["USER","ADMIN","SUPERADMIN"]},"view":{"type":"object","properties":{"enabled":{"nullable":true,"type":"boolean"},"disableTextFiles":{"nullable":true,"type":"boolean"},"align":{"nullable":true,"type":"string","enum":["left","center","right"]},"showMimetype":{"nullable":true,"type":"boolean"},"showTags":{"nullable":true,"type":"boolean"},"showFolder":{"nullable":true,"type":"boolean"},"content":{"nullable":true,"type":"string"},"embed":{"nullable":true,"type":"boolean"},"embedMediaOnly":{"nullable":true,"type":"boolean"},"embedTitle":{"nullable":true,"type":"string"},"embedDescription":{"nullable":true,"type":"string"},"embedColor":{"nullable":true,"type":"string"},"embedSiteName":{"nullable":true,"type":"string"}},"additionalProperties":false},"sessions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"ua":{"type":"string"},"client":{"type":"string"},"device":{"type":"string"},"userId":{"type":"string"}},"required":["id","createdAt","ua","client","device","userId"],"additionalProperties":false}},"oauthProviders":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"userId":{"type":"string"},"provider":{"type":"string","enum":["DISCORD","GOOGLE","GITHUB","OIDC"]},"username":{"type":"string"},"accessToken":{"type":"string"},"refreshToken":{"nullable":true,"type":"string"},"oauthId":{"nullable":true,"type":"string"}},"required":["id","createdAt","updatedAt","userId","provider","username","accessToken","refreshToken","oauthId"],"additionalProperties":false}},"totpSecret":{"nullable":true,"type":"string"},"passkeys":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"lastUsed":{"nullable":true,"type":"string","format":"date-time"},"name":{"type":"string"},"reg":{},"userId":{"type":"string"}},"required":["id","createdAt","updatedAt","lastUsed","name","reg","userId"],"additionalProperties":false}},"quota":{"nullable":true,"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"filesQuota":{"type":"string","enum":["BY_BYTES","BY_FILES"]},"maxBytes":{"nullable":true,"type":"string"},"maxFiles":{"nullable":true,"type":"number"},"maxUrls":{"nullable":true,"type":"number"},"userId":{"nullable":true,"type":"string"}},"required":["id","createdAt","updatedAt","filesQuota","maxBytes","maxFiles","maxUrls","userId"],"additionalProperties":false},"avatar":{"nullable":true,"type":"string"},"password":{"nullable":true,"type":"string"},"token":{"nullable":true,"type":"string"}},"required":["id","username","createdAt","updatedAt","role","view","sessions","oauthProviders"],"additionalProperties":false},"token":{"type":"string"}},"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/user/recent":{"get":{"tags":["auth"],"description":"Get the most recently uploaded files for the authenticated user.","parameters":[{"schema":{"default":3,"type":"number","minimum":1,"maximum":100},"in":"query","name":"take","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"createdAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"updatedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"deletesAt":{"nullable":true,"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"favorite":{"type":"boolean"},"id":{"type":"string"},"originalName":{"nullable":true,"type":"string"},"name":{"type":"string"},"size":{"type":"number"},"type":{"type":"string"},"views":{"type":"number"},"maxViews":{"nullable":true,"type":"number"},"password":{"nullable":true,"anyOf":[{"type":"string"},{"type":"boolean"}]},"folderId":{"nullable":true,"type":"string"},"anonymous":{"nullable":true,"type":"boolean"},"thumbnail":{"nullable":true,"type":"object","properties":{"path":{"type":"string"}},"required":["path"],"additionalProperties":false},"tags":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"name":{"type":"string"},"color":{"type":"string"},"files":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":false}}},"required":["id","createdAt","updatedAt","name","color"],"additionalProperties":false}},"url":{"type":"string"},"similarity":{"type":"number"}},"required":["createdAt","updatedAt","deletesAt","favorite","id","originalName","name","size","type","views","folderId","thumbnail"],"additionalProperties":false}}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/user/sessions":{"get":{"tags":["auth"],"description":"List the current browser session and other active sessions for the authenticated user.","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"current":{"nullable":true,"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"ua":{"type":"string"},"client":{"type":"string"},"device":{"type":"string"},"userId":{"type":"string"}},"required":["id","createdAt","ua","client","device","userId"],"additionalProperties":false},"other":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"ua":{"type":"string"},"client":{"type":"string"},"device":{"type":"string"},"userId":{"type":"string"}},"required":["id","createdAt","ua","client","device","userId"],"additionalProperties":false}}},"required":["current","other"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}},"delete":{"tags":["auth"],"description":"Invalidate one or all other sessions for the authenticated user.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"sessionId":{"type":"string"},"all":{"type":"boolean"}}}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"current":{"nullable":true,"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"ua":{"type":"string"},"client":{"type":"string"},"device":{"type":"string"},"userId":{"type":"string"}},"required":["id","createdAt","ua","client","device","userId"],"additionalProperties":false},"other":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"ua":{"type":"string"},"client":{"type":"string"},"device":{"type":"string"},"userId":{"type":"string"}},"required":["id","createdAt","ua","client","device","userId"],"additionalProperties":false}}},"required":["current","other"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/user/stats":{"get":{"tags":["auth"],"description":"View aggregate statistics for the authenticated user's files and URLs.","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"filesUploaded":{"type":"number"},"favoriteFiles":{"type":"number"},"views":{"type":"number"},"avgViews":{"type":"number"},"storageUsed":{"type":"number"},"avgStorageUsed":{"type":"number"},"urlsCreated":{"type":"number"},"urlViews":{"type":"number"},"sortTypeCount":{"type":"object","additionalProperties":{"type":"number"}}},"required":["filesUploaded","favoriteFiles","views","avgViews","storageUsed","avgStorageUsed","urlsCreated","urlViews","sortTypeCount"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/user/token":{"get":{"tags":["auth"],"description":"Return an encrypted API token for the authenticated user.","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string"}},"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}},"patch":{"tags":["auth"],"description":"Refresh the user's underlying token secret and return an updated token and user object.","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"user":{"type":"object","properties":{"id":{"type":"string"},"username":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"role":{"type":"string","enum":["USER","ADMIN","SUPERADMIN"]},"view":{"type":"object","properties":{"enabled":{"nullable":true,"type":"boolean"},"disableTextFiles":{"nullable":true,"type":"boolean"},"align":{"nullable":true,"type":"string","enum":["left","center","right"]},"showMimetype":{"nullable":true,"type":"boolean"},"showTags":{"nullable":true,"type":"boolean"},"showFolder":{"nullable":true,"type":"boolean"},"content":{"nullable":true,"type":"string"},"embed":{"nullable":true,"type":"boolean"},"embedMediaOnly":{"nullable":true,"type":"boolean"},"embedTitle":{"nullable":true,"type":"string"},"embedDescription":{"nullable":true,"type":"string"},"embedColor":{"nullable":true,"type":"string"},"embedSiteName":{"nullable":true,"type":"string"}},"additionalProperties":false},"sessions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"ua":{"type":"string"},"client":{"type":"string"},"device":{"type":"string"},"userId":{"type":"string"}},"required":["id","createdAt","ua","client","device","userId"],"additionalProperties":false}},"oauthProviders":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"userId":{"type":"string"},"provider":{"type":"string","enum":["DISCORD","GOOGLE","GITHUB","OIDC"]},"username":{"type":"string"},"accessToken":{"type":"string"},"refreshToken":{"nullable":true,"type":"string"},"oauthId":{"nullable":true,"type":"string"}},"required":["id","createdAt","updatedAt","userId","provider","username","accessToken","refreshToken","oauthId"],"additionalProperties":false}},"totpSecret":{"nullable":true,"type":"string"},"passkeys":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"lastUsed":{"nullable":true,"type":"string","format":"date-time"},"name":{"type":"string"},"reg":{},"userId":{"type":"string"}},"required":["id","createdAt","updatedAt","lastUsed","name","reg","userId"],"additionalProperties":false}},"quota":{"nullable":true,"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"filesQuota":{"type":"string","enum":["BY_BYTES","BY_FILES"]},"maxBytes":{"nullable":true,"type":"string"},"maxFiles":{"nullable":true,"type":"number"},"maxUrls":{"nullable":true,"type":"number"},"userId":{"nullable":true,"type":"string"}},"required":["id","createdAt","updatedAt","filesQuota","maxBytes","maxFiles","maxUrls","userId"],"additionalProperties":false},"avatar":{"nullable":true,"type":"string"},"password":{"nullable":true,"type":"string"},"token":{"nullable":true,"type":"string"}},"required":["id","username","createdAt","updatedAt","role","view","sessions","oauthProviders"],"additionalProperties":false},"token":{"type":"string"}},"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/users":{"get":{"tags":["auth","admin"],"description":"List users in the instance, optionally excluding the current admin from the results (admin only).","parameters":[{"schema":{"type":"string","enum":["true","false"]},"in":"query","name":"noincl","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"username":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"role":{"type":"string","enum":["USER","ADMIN","SUPERADMIN"]},"view":{"type":"object","properties":{"enabled":{"nullable":true,"type":"boolean"},"disableTextFiles":{"nullable":true,"type":"boolean"},"align":{"nullable":true,"type":"string","enum":["left","center","right"]},"showMimetype":{"nullable":true,"type":"boolean"},"showTags":{"nullable":true,"type":"boolean"},"showFolder":{"nullable":true,"type":"boolean"},"content":{"nullable":true,"type":"string"},"embed":{"nullable":true,"type":"boolean"},"embedMediaOnly":{"nullable":true,"type":"boolean"},"embedTitle":{"nullable":true,"type":"string"},"embedDescription":{"nullable":true,"type":"string"},"embedColor":{"nullable":true,"type":"string"},"embedSiteName":{"nullable":true,"type":"string"}},"additionalProperties":false},"quota":{"nullable":true,"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"filesQuota":{"type":"string","enum":["BY_BYTES","BY_FILES"]},"maxBytes":{"nullable":true,"type":"string"},"maxFiles":{"nullable":true,"type":"number"},"maxUrls":{"nullable":true,"type":"number"},"userId":{"nullable":true,"type":"string"}},"required":["id","createdAt","updatedAt","filesQuota","maxBytes","maxFiles","maxUrls","userId"],"additionalProperties":false},"avatar":{"nullable":true,"type":"string"}},"required":["id","username","createdAt","updatedAt","role","view"],"additionalProperties":false}}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}},"post":{"tags":["auth","admin"],"description":"Create a new user with the given username, password, avatar, and role (admin only).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"username":{"type":"string","minLength":1},"password":{"type":"string","minLength":1},"avatar":{"type":"string"},"role":{"default":"USER","type":"string","enum":["USER","ADMIN","SUPERADMIN"]}},"required":["username","password"]}}}},"parameters":[{"schema":{"type":"string","enum":["true","false"]},"in":"query","name":"noincl","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"username":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"role":{"type":"string","enum":["USER","ADMIN","SUPERADMIN"]},"view":{"type":"object","properties":{"enabled":{"nullable":true,"type":"boolean"},"disableTextFiles":{"nullable":true,"type":"boolean"},"align":{"nullable":true,"type":"string","enum":["left","center","right"]},"showMimetype":{"nullable":true,"type":"boolean"},"showTags":{"nullable":true,"type":"boolean"},"showFolder":{"nullable":true,"type":"boolean"},"content":{"nullable":true,"type":"string"},"embed":{"nullable":true,"type":"boolean"},"embedMediaOnly":{"nullable":true,"type":"boolean"},"embedTitle":{"nullable":true,"type":"string"},"embedDescription":{"nullable":true,"type":"string"},"embedColor":{"nullable":true,"type":"string"},"embedSiteName":{"nullable":true,"type":"string"}},"additionalProperties":false},"quota":{"nullable":true,"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"filesQuota":{"type":"string","enum":["BY_BYTES","BY_FILES"]},"maxBytes":{"nullable":true,"type":"string"},"maxFiles":{"nullable":true,"type":"number"},"maxUrls":{"nullable":true,"type":"number"},"userId":{"nullable":true,"type":"string"}},"required":["id","createdAt","updatedAt","filesQuota","maxBytes","maxFiles","maxUrls","userId"],"additionalProperties":false},"avatar":{"nullable":true,"type":"string"}},"required":["id","username","createdAt","updatedAt","role","view"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/auth/invites/{id}":{"get":{"tags":["auth","admin"],"description":"Fetch a specific invite by ID or code, including information about the inviter (admin only).","parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"expiresAt":{"nullable":true,"type":"string","format":"date-time"},"code":{"type":"string"},"uses":{"type":"number"},"maxUses":{"nullable":true,"type":"number"},"inviterId":{"type":"string"},"inviter":{"type":"object","properties":{"username":{"type":"string"},"id":{"type":"string"},"role":{"type":"string","enum":["USER","ADMIN","SUPERADMIN"]}},"required":["username","id","role"],"additionalProperties":false}},"required":["id","createdAt","updatedAt","expiresAt","code","uses","maxUses","inviterId"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}},"delete":{"description":"Delete a specific invite by ID (admin only).","parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"expiresAt":{"nullable":true,"type":"string","format":"date-time"},"code":{"type":"string"},"uses":{"type":"number"},"maxUses":{"nullable":true,"type":"number"},"inviterId":{"type":"string"},"inviter":{"type":"object","properties":{"username":{"type":"string"},"id":{"type":"string"},"role":{"type":"string","enum":["USER","ADMIN","SUPERADMIN"]}},"required":["username","id","role"],"additionalProperties":false}},"required":["id","createdAt","updatedAt","expiresAt","code","uses","maxUses","inviterId"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/auth/invites":{"post":{"tags":["auth","admin"],"description":"Create a new invite code for user registration, optionally limiting uses and expiration (admin only).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"string"},{"type":"string","enum":["never"]}]},"maxUses":{"type":"number","minimum":1}},"required":["expiresAt"]}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"expiresAt":{"nullable":true,"type":"string","format":"date-time"},"code":{"type":"string"},"uses":{"type":"number"},"maxUses":{"nullable":true,"type":"number"},"inviterId":{"type":"string"},"inviter":{"type":"object","properties":{"username":{"type":"string"},"id":{"type":"string"},"role":{"type":"string","enum":["USER","ADMIN","SUPERADMIN"]}},"required":["username","id","role"],"additionalProperties":false}},"required":["id","createdAt","updatedAt","expiresAt","code","uses","maxUses","inviterId"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}},"get":{"description":"List all existing invite codes and their metadata (admin only).","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"expiresAt":{"nullable":true,"type":"string","format":"date-time"},"code":{"type":"string"},"uses":{"type":"number"},"maxUses":{"nullable":true,"type":"number"},"inviterId":{"type":"string"},"inviter":{"type":"object","properties":{"username":{"type":"string"},"id":{"type":"string"},"role":{"type":"string","enum":["USER","ADMIN","SUPERADMIN"]}},"required":["username","id","role"],"additionalProperties":false}},"required":["id","createdAt","updatedAt","expiresAt","code","uses","maxUses","inviterId"],"additionalProperties":false}}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/auth/invites/web":{"get":{"description":"Look up a public invite by code for the web UI, returning basic information about the inviter and usage limits.","parameters":[{"schema":{"type":"string"},"in":"query","name":"code","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"invite":{"nullable":true,"type":"object","properties":{"code":{"type":"string"},"maxUses":{"nullable":true,"type":"number"},"uses":{"type":"number"},"inviter":{"type":"object","properties":{"username":{"type":"string"}},"required":["username"],"additionalProperties":false}},"required":["code","maxUses","uses","inviter"],"additionalProperties":false}},"required":["invite"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/auth/oauth/discord":{"get":{"responses":{"200":{"description":"Default Response"},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/auth/oauth/github":{"get":{"responses":{"200":{"description":"Default Response"},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/auth/oauth/google":{"get":{"responses":{"200":{"description":"Default Response"},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/auth/oauth":{"get":{"description":"List OAuth providers currently linked to the authenticated user.","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"userId":{"type":"string"},"provider":{"type":"string","enum":["DISCORD","GOOGLE","GITHUB","OIDC"]},"username":{"type":"string"},"accessToken":{"type":"string"},"refreshToken":{"nullable":true,"type":"string"},"oauthId":{"nullable":true,"type":"string"}},"required":["id","createdAt","updatedAt","userId","provider","username","accessToken","refreshToken","oauthId"],"additionalProperties":false}}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}},"delete":{"description":"Unlink one OAuth provider from the authenticated user, enforcing that at least one login method remains.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"provider":{"type":"string","enum":["DISCORD","GOOGLE","GITHUB","OIDC"]}},"required":["provider"]}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"userId":{"type":"string"},"provider":{"type":"string","enum":["DISCORD","GOOGLE","GITHUB","OIDC"]},"username":{"type":"string"},"accessToken":{"type":"string"},"refreshToken":{"nullable":true,"type":"string"},"oauthId":{"nullable":true,"type":"string"}},"required":["id","createdAt","updatedAt","userId","provider","username","accessToken","refreshToken","oauthId"],"additionalProperties":false}}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/auth/oauth/oidc":{"get":{"responses":{"200":{"description":"Default Response"},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/server/import/v3":{"post":{"tags":["auth","superadmin"],"description":"Import data from a legacy Zipline v3 export file, creating users, files, folders and URLs and returning a mapping of old IDs to new IDs.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"export3":{"type":"object","properties":{"versions":{"type":"object","properties":{"zipline":{"type":"string"},"node":{"type":"string"},"export":{"type":"string","enum":["3"]}},"required":["zipline","node","export"]},"request":{"type":"object","properties":{"user":{"type":"string"},"date":{"type":"string"},"os":{"type":"object","properties":{"platform":{"anyOf":[{"type":"string","enum":["aix"]},{"type":"string","enum":["darwin"]},{"type":"string","enum":["freebsd"]},{"type":"string","enum":["linux"]},{"type":"string","enum":["openbsd"]},{"type":"string","enum":["sunos"]},{"type":"string","enum":["win32"]}]},"arch":{"anyOf":[{"type":"string","enum":["arm"]},{"type":"string","enum":["arm64"]},{"type":"string","enum":["ia32"]},{"type":"string","enum":["loong64"]},{"type":"string","enum":["mips"]},{"type":"string","enum":["mipsel"]},{"type":"string","enum":["ppc"]},{"type":"string","enum":["ppc64"]},{"type":"string","enum":["riscv64"]},{"type":"string","enum":["s390"]},{"type":"string","enum":["s390x"]},{"type":"string","enum":["x64"]}]},"cpus":{"type":"number"},"hostname":{"type":"string"},"release":{"type":"string"}},"required":["platform","arch","cpus","hostname","release"]},"env":{"type":"object","additionalProperties":{"type":"string"}}},"required":["user","date","os","env"]},"user_map":{"type":"object","additionalProperties":{"type":"string"}},"thumbnail_map":{"type":"object","additionalProperties":{"type":"string"}},"folder_map":{"type":"object","additionalProperties":{"type":"string"}},"file_map":{"type":"object","additionalProperties":{"type":"string"}},"url_map":{"type":"object","additionalProperties":{"type":"string"}},"invite_map":{"type":"object","additionalProperties":{"type":"string"}},"users":{"type":"object","additionalProperties":{"type":"object","properties":{"username":{"type":"string"},"password":{"nullable":true,"type":"string"},"avatar":{"nullable":true,"type":"string"},"administrator":{"type":"boolean"},"super_administrator":{"type":"boolean"},"embed":{"type":"object","properties":{"title":{"nullable":true,"type":"string"},"site_name":{"nullable":true,"type":"string"},"description":{"nullable":true,"type":"string"},"color":{"nullable":true,"type":"string"}}},"totp_secret":{"nullable":true,"type":"string"},"oauth":{"type":"array","items":{"type":"object","properties":{"provider":{"type":"string","enum":["DISCORD","GITHUB","GOOGLE"]},"username":{"type":"string"},"oauth_id":{"nullable":true,"type":"string"},"access_token":{"nullable":true,"type":"string"},"refresh_token":{"nullable":true,"type":"string"}},"required":["provider","username","oauth_id","access_token","refresh_token"]}}},"required":["username","administrator","super_administrator","embed","oauth"]}},"files":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"original_name":{"nullable":true,"type":"string"},"type":{"type":"string"},"size":{"anyOf":[{"type":"number"}]},"user":{"nullable":true,"type":"string"},"thumbnail":{"nullable":true,"type":"string"},"max_views":{"nullable":true,"type":"number"},"views":{"type":"number"},"expires_at":{"nullable":true,"type":"string"},"created_at":{"type":"string"},"favorite":{"type":"boolean"},"password":{"nullable":true,"type":"string"}},"required":["name","type","size","views","created_at","favorite"]}},"thumbnails":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"created_at":{"type":"string"}},"required":["name","created_at"]}},"folders":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"public":{"type":"boolean"},"created_at":{"type":"string"},"user":{"nullable":true,"type":"string"},"files":{"type":"array","items":{"type":"string"}}},"required":["name","public","created_at","files"]}},"urls":{"type":"object","additionalProperties":{"type":"object","properties":{"destination":{"type":"string"},"vanity":{"nullable":true,"type":"string"},"code":{"type":"string"},"created_at":{"type":"string"},"max_views":{"nullable":true,"type":"number"},"views":{"type":"number"},"user":{"nullable":true,"type":"string"}},"required":["destination","code","created_at","views"]}},"invites":{"type":"object","additionalProperties":{"type":"object","properties":{"code":{"type":"string"},"expires_at":{"nullable":true,"type":"string"},"created_at":{"type":"string"},"used":{"type":"boolean"},"created_by_user":{"nullable":true,"type":"string"}},"required":["code","created_at","used"]}},"stats":{"type":"array","items":{"type":"object","properties":{"created_at":{"type":"string"},"data":{}},"required":["created_at","data"]}}},"required":["versions","request","user_map","thumbnail_map","folder_map","file_map","url_map","invite_map","users","files","thumbnails","folders","urls","invites","stats"]},"importFromUser":{"type":"string"}},"required":["export3"]}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"users":{"type":"object","additionalProperties":{"type":"string"}},"files":{"type":"object","additionalProperties":{"type":"string"}},"folders":{"type":"object","additionalProperties":{"type":"string"}},"urls":{"type":"object","additionalProperties":{"type":"string"}}},"required":["users","files","folders","urls"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/server/import/v4":{"post":{"tags":["auth","superadmin"],"description":"Import data from a Zipline v4 export file, optionally merging into the current user and returning counts of imported records.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"export4":{"type":"object","properties":{"versions":{"type":"object","properties":{"zipline":{"type":"string"},"node":{"type":"string"},"export":{"type":"string","enum":["4"]}},"required":["zipline","node","export"]},"request":{"type":"object","properties":{"user":{},"date":{"type":"string"},"os":{"type":"object","properties":{"platform":{"anyOf":[{"type":"string","enum":["aix"]},{"type":"string","enum":["darwin"]},{"type":"string","enum":["freebsd"]},{"type":"string","enum":["linux"]},{"type":"string","enum":["openbsd"]},{"type":"string","enum":["sunos"]},{"type":"string","enum":["win32"]},{"type":"string","enum":["android"]}]},"arch":{"anyOf":[{"type":"string","enum":["arm"]},{"type":"string","enum":["arm64"]},{"type":"string","enum":["ia32"]},{"type":"string","enum":["loong64"]},{"type":"string","enum":["mips"]},{"type":"string","enum":["mipsel"]},{"type":"string","enum":["ppc"]},{"type":"string","enum":["ppc64"]},{"type":"string","enum":["riscv64"]},{"type":"string","enum":["s390"]},{"type":"string","enum":["s390x"]},{"type":"string","enum":["x64"]}]},"cpus":{"type":"number"},"hostname":{"type":"string"},"release":{"type":"string"}},"required":["platform","arch","cpus","hostname","release"]},"env":{"type":"object","additionalProperties":{"type":"string"}}},"required":["user","date","os","env"]},"data":{"type":"object","properties":{"settings":{},"users":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"username":{"type":"string"},"password":{"nullable":true,"type":"string"},"avatar":{"nullable":true,"type":"string"},"role":{"type":"string","enum":["USER","ADMIN","SUPERADMIN"]},"view":{"type":"object","additionalProperties":{}},"totpSecret":{"nullable":true,"type":"string"}},"required":["id","createdAt","username","role","view"]}},"userPasskeys":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"lastUsed":{"nullable":true,"type":"string"},"name":{"type":"string"},"reg":{"type":"object","additionalProperties":{}},"userId":{"type":"string"}},"required":["id","createdAt","name","reg","userId"]}},"userQuotas":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"filesQuota":{"type":"string","enum":["BY_BYTES","BY_FILES"]},"maxBytes":{"nullable":true,"type":"string"},"maxFiles":{"nullable":true,"type":"number"},"maxUrls":{"nullable":true,"type":"number"},"userId":{"nullable":true,"type":"string"}},"required":["id","createdAt","filesQuota"]}},"userOauthProviders":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"provider":{"type":"string","enum":["DISCORD","GOOGLE","GITHUB","OIDC"]},"username":{"type":"string"},"accessToken":{"type":"string"},"refreshToken":{"nullable":true,"type":"string"},"oauthId":{"nullable":true,"type":"string"},"userId":{"type":"string"}},"required":["id","createdAt","provider","username","accessToken","userId"]}},"userTags":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"name":{"type":"string"},"color":{"nullable":true,"type":"string"},"files":{"type":"array","items":{"type":"string"}},"userId":{"type":"string"}},"required":["id","createdAt","name","files","userId"]}},"invites":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"expiresAt":{"nullable":true,"type":"string"},"code":{"type":"string"},"uses":{"type":"number"},"maxUses":{"nullable":true,"type":"number"},"inviterId":{"type":"string"}},"required":["id","createdAt","code","uses","inviterId"]}},"folders":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"name":{"type":"string"},"public":{"type":"boolean"},"allowUploads":{"type":"boolean"},"files":{"type":"array","items":{"type":"string"}},"userId":{"type":"string"},"parentId":{"nullable":true,"type":"string"}},"required":["id","createdAt","name","public","allowUploads","files","userId"]}},"urls":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"code":{"type":"string"},"vanity":{"nullable":true,"type":"string"},"destination":{"type":"string"},"views":{"type":"number"},"maxViews":{"nullable":true,"type":"number"},"password":{"nullable":true,"type":"string"},"enabled":{"type":"boolean"},"userId":{"nullable":true,"type":"string"}},"required":["id","createdAt","code","destination","views","enabled"]}},"files":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"deletesAt":{"nullable":true,"type":"string"},"name":{"type":"string"},"originalName":{"nullable":true,"type":"string"},"size":{"type":"number"},"type":{"type":"string"},"views":{"type":"number"},"maxViews":{"nullable":true,"type":"number"},"favorite":{"type":"boolean"},"password":{"nullable":true,"type":"string"},"userId":{"nullable":true,"type":"string"},"folderId":{"nullable":true,"type":"string"}},"required":["id","createdAt","name","size","type","views","favorite","userId"]}},"thumbnails":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"path":{"type":"string"},"fileId":{"type":"string"}},"required":["id","createdAt","path","fileId"]}},"metrics":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"data":{"type":"object","additionalProperties":{}}},"required":["id","createdAt","data"]}}},"required":["settings","users","userPasskeys","userQuotas","userOauthProviders","userTags","invites","folders","urls","files","thumbnails","metrics"]}},"required":["versions","request","data"]},"config":{"type":"object","properties":{"settings":{"default":false,"type":"boolean"},"mergeCurrentUser":{"default":null,"nullable":true,"type":"string"}}}},"required":["export4","config"]}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"imported":{"type":"object","properties":{"users":{"type":"number"},"oauthProviders":{"type":"number"},"quotas":{"type":"number"},"passkeys":{"type":"number"},"folders":{"type":"number"},"files":{"type":"number"},"tags":{"type":"number"},"urls":{"type":"number"},"invites":{"type":"number"},"metrics":{"type":"number"}},"required":["users","oauthProviders","quotas","passkeys","folders","files","tags","urls","invites","metrics"],"additionalProperties":false}},"required":["imported"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/server/settings":{"get":{"tags":["auth","admin"],"description":"Fetch the full Zipline server settings row along with a list of configuration keys that were overridden at runtime (admin only).","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"settings":{},"tampered":{"type":"array","items":{"type":"string"}}},"required":["settings","tampered"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}},"patch":{"tags":["auth","admin"],"description":"Partially update Zipline server settings using a validated subset of configuration keys (admin only).","requestBody":{"required":true,"content":{"application/json":{"schema":{}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/server/settings/web":{"get":{"description":"Return the safe dashboard configuration and MIME type code map used by the web UI.","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/user/files/incomplete":{"get":{"tags":["auth"],"description":"List incomplete or still-processing file uploads for the authenticated user.","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"status":{"type":"string","enum":["PENDING","PROCESSING","COMPLETE","FAILED"]},"chunksTotal":{"type":"number"},"chunksComplete":{"type":"number"},"userId":{"type":"string"},"metadata":{"type":"object","properties":{"file":{"type":"object","properties":{"filename":{"type":"string"},"type":{"type":"string"},"id":{"type":"string"}},"required":["filename","type","id"],"additionalProperties":false}},"required":["file"],"additionalProperties":false}},"required":["id","createdAt","updatedAt","status","chunksTotal","chunksComplete","userId","metadata"],"additionalProperties":false}}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}},"delete":{"tags":["auth"],"description":"Delete one or more incomplete file records owned by the authenticated user.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"array","items":{"type":"string"}}},"required":["id"]}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"number"}},"required":["count"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/user/files":{"get":{"tags":["auth"],"description":"List, filter, and search files for the authenticated user (or another user if permitted).","parameters":[{"schema":{"type":"number"},"in":"query","name":"page","required":true},{"schema":{"default":15,"type":"number"},"in":"query","name":"perpage","required":false},{"schema":{"default":"none","type":"string","enum":["dashboard","none","all"]},"in":"query","name":"filter","required":false},{"schema":{"type":"string","enum":["true","false"]},"in":"query","name":"favorite","required":false},{"schema":{"default":"createdAt","type":"string","enum":["id","createdAt","updatedAt","deletesAt","name","originalName","size","type","views","favorite"]},"in":"query","name":"sortBy","required":false},{"schema":{"default":"desc","type":"string","enum":["asc","desc"]},"in":"query","name":"order","required":false},{"schema":{"default":"name","type":"string","enum":["name","originalName","type","tags","id"]},"in":"query","name":"searchField","required":false},{"schema":{"type":"string"},"in":"query","name":"searchQuery","required":false},{"schema":{"type":"string"},"in":"query","name":"id","required":false},{"schema":{"type":"string"},"in":"query","name":"folder","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"page":{"type":"array","items":{"type":"object","properties":{"createdAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"updatedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"deletesAt":{"nullable":true,"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"favorite":{"type":"boolean"},"id":{"type":"string"},"originalName":{"nullable":true,"type":"string"},"name":{"type":"string"},"size":{"type":"number"},"type":{"type":"string"},"views":{"type":"number"},"maxViews":{"nullable":true,"type":"number"},"password":{"nullable":true,"anyOf":[{"type":"string"},{"type":"boolean"}]},"folderId":{"nullable":true,"type":"string"},"anonymous":{"nullable":true,"type":"boolean"},"thumbnail":{"nullable":true,"type":"object","properties":{"path":{"type":"string"}},"required":["path"],"additionalProperties":false},"tags":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"name":{"type":"string"},"color":{"type":"string"},"files":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":false}}},"required":["id","createdAt","updatedAt","name","color"],"additionalProperties":false}},"url":{"type":"string"},"similarity":{"type":"number"}},"required":["createdAt","updatedAt","deletesAt","favorite","id","originalName","name","size","type","views","folderId","thumbnail"],"additionalProperties":false}},"search":{"type":"object","properties":{"field":{"type":"string","enum":["name","originalName","type","tags","id"]},"query":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"required":["field","query"],"additionalProperties":false},"total":{"type":"number"},"pages":{"type":"number"}},"required":["page"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/user/files/transaction":{"patch":{"tags":["auth"],"description":"Bulk update files owned by the user: favorite/unfavorite or move them into a folder.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"files":{"minItems":1,"type":"array","items":{"type":"string"}},"favorite":{"type":"boolean"},"folder":{"type":"string"}},"required":["files"]}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"number"},"name":{"type":"string"}},"required":["count"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}},"delete":{"description":"Bulk delete files (and optionally delete the underlying datasource objects).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"files":{"minItems":1,"type":"array","items":{"type":"string"}},"delete_datasourceFiles":{"type":"boolean"}},"required":["files"]}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"number"}},"required":["count"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/user/folders":{"get":{"tags":["auth"],"description":"List folders for the authenticated user, optionally including files or filtering by parent/root.","parameters":[{"schema":{"type":"string","enum":["true","false"]},"in":"query","name":"noincl","required":false},{"schema":{"type":"string"},"in":"query","name":"user","required":false},{"schema":{"type":"string"},"in":"query","name":"parentId","required":false},{"schema":{"type":"string","enum":["true","false"]},"in":"query","name":"root","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"}]},"name":{"type":"string"},"public":{"type":"boolean"},"allowUploads":{"type":"boolean"},"parentId":{"nullable":true,"type":"string"},"userId":{"type":"string"},"files":{"type":"array","items":{"type":"object","properties":{"createdAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"updatedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"deletesAt":{"nullable":true,"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"favorite":{"type":"boolean"},"id":{"type":"string"},"originalName":{"nullable":true,"type":"string"},"name":{"type":"string"},"size":{"type":"number"},"type":{"type":"string"},"views":{"type":"number"},"maxViews":{"nullable":true,"type":"number"},"password":{"nullable":true,"anyOf":[{"type":"string"},{"type":"boolean"}]},"folderId":{"nullable":true,"type":"string"},"anonymous":{"nullable":true,"type":"boolean"},"thumbnail":{"nullable":true,"type":"object","properties":{"path":{"type":"string"}},"required":["path"],"additionalProperties":false},"tags":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"name":{"type":"string"},"color":{"type":"string"},"files":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":false}}},"required":["id","createdAt","updatedAt","name","color"],"additionalProperties":false}},"url":{"type":"string"},"similarity":{"type":"number"}},"required":["createdAt","updatedAt","deletesAt","favorite","id","originalName","name","size","type","views","folderId","thumbnail"],"additionalProperties":false}},"parent":{"nullable":true},"children":{"type":"array","items":{}},"_count":{"type":"object","properties":{"children":{"type":"number"},"files":{"type":"number"}},"additionalProperties":false}},"required":["id","createdAt","updatedAt","name","public","allowUploads","parentId","userId"],"additionalProperties":false}}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}},"post":{"tags":["auth"],"description":"Create a new folder for the authenticated user, optionally public and/or seeded with files.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1},"isPublic":{"type":"boolean"},"files":{"type":"array","items":{"type":"string"}},"parentId":{"type":"string"}},"required":["name"]}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"}]},"name":{"type":"string"},"public":{"type":"boolean"},"allowUploads":{"type":"boolean"},"parentId":{"nullable":true,"type":"string"},"userId":{"type":"string"},"files":{"type":"array","items":{"type":"object","properties":{"createdAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"updatedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"deletesAt":{"nullable":true,"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"favorite":{"type":"boolean"},"id":{"type":"string"},"originalName":{"nullable":true,"type":"string"},"name":{"type":"string"},"size":{"type":"number"},"type":{"type":"string"},"views":{"type":"number"},"maxViews":{"nullable":true,"type":"number"},"password":{"nullable":true,"anyOf":[{"type":"string"},{"type":"boolean"}]},"folderId":{"nullable":true,"type":"string"},"anonymous":{"nullable":true,"type":"boolean"},"thumbnail":{"nullable":true,"type":"object","properties":{"path":{"type":"string"}},"required":["path"],"additionalProperties":false},"tags":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"name":{"type":"string"},"color":{"type":"string"},"files":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":false}}},"required":["id","createdAt","updatedAt","name","color"],"additionalProperties":false}},"url":{"type":"string"},"similarity":{"type":"number"}},"required":["createdAt","updatedAt","deletesAt","favorite","id","originalName","name","size","type","views","folderId","thumbnail"],"additionalProperties":false}},"parent":{"nullable":true},"children":{"type":"array","items":{}},"_count":{"type":"object","properties":{"children":{"type":"number"},"files":{"type":"number"}},"additionalProperties":false}},"required":["id","createdAt","updatedAt","name","public","allowUploads","parentId","userId"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/user/mfa/passkey":{"get":{"tags":["auth"],"description":"List all registered passkey credentials for the authenticated user.","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"lastUsed":{"nullable":true,"type":"string","format":"date-time"},"name":{"type":"string"},"userId":{"type":"string"}},"required":["id","createdAt","updatedAt","lastUsed","name","userId"],"additionalProperties":false}}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}},"post":{"tags":["auth"],"description":"Register a new WebAuthn passkey for the authenticated user.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"response":{"description":"The registration response from the client, containing the new passkey credential."},"name":{"type":"string","minLength":1}},"required":["response","name"]}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"username":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"role":{"type":"string","enum":["USER","ADMIN","SUPERADMIN"]},"view":{"type":"object","properties":{"enabled":{"nullable":true,"type":"boolean"},"disableTextFiles":{"nullable":true,"type":"boolean"},"align":{"nullable":true,"type":"string","enum":["left","center","right"]},"showMimetype":{"nullable":true,"type":"boolean"},"showTags":{"nullable":true,"type":"boolean"},"showFolder":{"nullable":true,"type":"boolean"},"content":{"nullable":true,"type":"string"},"embed":{"nullable":true,"type":"boolean"},"embedMediaOnly":{"nullable":true,"type":"boolean"},"embedTitle":{"nullable":true,"type":"string"},"embedDescription":{"nullable":true,"type":"string"},"embedColor":{"nullable":true,"type":"string"},"embedSiteName":{"nullable":true,"type":"string"}},"additionalProperties":false},"sessions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"ua":{"type":"string"},"client":{"type":"string"},"device":{"type":"string"},"userId":{"type":"string"}},"required":["id","createdAt","ua","client","device","userId"],"additionalProperties":false}},"oauthProviders":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"userId":{"type":"string"},"provider":{"type":"string","enum":["DISCORD","GOOGLE","GITHUB","OIDC"]},"username":{"type":"string"},"accessToken":{"type":"string"},"refreshToken":{"nullable":true,"type":"string"},"oauthId":{"nullable":true,"type":"string"}},"required":["id","createdAt","updatedAt","userId","provider","username","accessToken","refreshToken","oauthId"],"additionalProperties":false}},"totpSecret":{"nullable":true,"type":"string"},"passkeys":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"lastUsed":{"nullable":true,"type":"string","format":"date-time"},"name":{"type":"string"},"reg":{},"userId":{"type":"string"}},"required":["id","createdAt","updatedAt","lastUsed","name","reg","userId"],"additionalProperties":false}},"quota":{"nullable":true,"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"filesQuota":{"type":"string","enum":["BY_BYTES","BY_FILES"]},"maxBytes":{"nullable":true,"type":"string"},"maxFiles":{"nullable":true,"type":"number"},"maxUrls":{"nullable":true,"type":"number"},"userId":{"nullable":true,"type":"string"}},"required":["id","createdAt","updatedAt","filesQuota","maxBytes","maxFiles","maxUrls","userId"],"additionalProperties":false},"avatar":{"nullable":true,"type":"string"},"password":{"nullable":true,"type":"string"},"token":{"nullable":true,"type":"string"}},"required":["id","username","createdAt","updatedAt","role","view","sessions","oauthProviders"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}},"delete":{"tags":["auth"],"description":"Remove an existing passkey credential from your account.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"username":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"role":{"type":"string","enum":["USER","ADMIN","SUPERADMIN"]},"view":{"type":"object","properties":{"enabled":{"nullable":true,"type":"boolean"},"disableTextFiles":{"nullable":true,"type":"boolean"},"align":{"nullable":true,"type":"string","enum":["left","center","right"]},"showMimetype":{"nullable":true,"type":"boolean"},"showTags":{"nullable":true,"type":"boolean"},"showFolder":{"nullable":true,"type":"boolean"},"content":{"nullable":true,"type":"string"},"embed":{"nullable":true,"type":"boolean"},"embedMediaOnly":{"nullable":true,"type":"boolean"},"embedTitle":{"nullable":true,"type":"string"},"embedDescription":{"nullable":true,"type":"string"},"embedColor":{"nullable":true,"type":"string"},"embedSiteName":{"nullable":true,"type":"string"}},"additionalProperties":false},"sessions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"ua":{"type":"string"},"client":{"type":"string"},"device":{"type":"string"},"userId":{"type":"string"}},"required":["id","createdAt","ua","client","device","userId"],"additionalProperties":false}},"oauthProviders":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"userId":{"type":"string"},"provider":{"type":"string","enum":["DISCORD","GOOGLE","GITHUB","OIDC"]},"username":{"type":"string"},"accessToken":{"type":"string"},"refreshToken":{"nullable":true,"type":"string"},"oauthId":{"nullable":true,"type":"string"}},"required":["id","createdAt","updatedAt","userId","provider","username","accessToken","refreshToken","oauthId"],"additionalProperties":false}},"totpSecret":{"nullable":true,"type":"string"},"passkeys":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"lastUsed":{"nullable":true,"type":"string","format":"date-time"},"name":{"type":"string"},"reg":{},"userId":{"type":"string"}},"required":["id","createdAt","updatedAt","lastUsed","name","reg","userId"],"additionalProperties":false}},"quota":{"nullable":true,"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"filesQuota":{"type":"string","enum":["BY_BYTES","BY_FILES"]},"maxBytes":{"nullable":true,"type":"string"},"maxFiles":{"nullable":true,"type":"number"},"maxUrls":{"nullable":true,"type":"number"},"userId":{"nullable":true,"type":"string"}},"required":["id","createdAt","updatedAt","filesQuota","maxBytes","maxFiles","maxUrls","userId"],"additionalProperties":false},"avatar":{"nullable":true,"type":"string"},"password":{"nullable":true,"type":"string"},"token":{"nullable":true,"type":"string"}},"required":["id","username","createdAt","updatedAt","role","view","sessions","oauthProviders"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/user/mfa/passkey/options":{"get":{"tags":["auth"],"description":"Generate WebAuthn registration options for creating a new passkey.","responses":{"200":{"description":"Default Response"},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/user/mfa/totp":{"get":{"tags":["auth"],"description":"Get your current TOTP secret, generating one (and a QR code) if not yet enabled.","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"secret":{"type":"string","description":"the TOTP secret key, used to generate codes in an authenticator app"},"qrcode":{"description":"if the user hasn't enabled TOTP yet, a data URL for a QR code encoding the secret and account info","nullable":true,"type":"string"}},"required":["secret"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}},"post":{"tags":["auth"],"description":"Enable TOTP for your account by verifying a code for the provided secret.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","minLength":6,"maxLength":6},"secret":{"type":"string"}},"required":["code","secret"]}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"username":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"role":{"type":"string","enum":["USER","ADMIN","SUPERADMIN"]},"view":{"type":"object","properties":{"enabled":{"nullable":true,"type":"boolean"},"disableTextFiles":{"nullable":true,"type":"boolean"},"align":{"nullable":true,"type":"string","enum":["left","center","right"]},"showMimetype":{"nullable":true,"type":"boolean"},"showTags":{"nullable":true,"type":"boolean"},"showFolder":{"nullable":true,"type":"boolean"},"content":{"nullable":true,"type":"string"},"embed":{"nullable":true,"type":"boolean"},"embedMediaOnly":{"nullable":true,"type":"boolean"},"embedTitle":{"nullable":true,"type":"string"},"embedDescription":{"nullable":true,"type":"string"},"embedColor":{"nullable":true,"type":"string"},"embedSiteName":{"nullable":true,"type":"string"}},"additionalProperties":false},"sessions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"ua":{"type":"string"},"client":{"type":"string"},"device":{"type":"string"},"userId":{"type":"string"}},"required":["id","createdAt","ua","client","device","userId"],"additionalProperties":false}},"oauthProviders":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"userId":{"type":"string"},"provider":{"type":"string","enum":["DISCORD","GOOGLE","GITHUB","OIDC"]},"username":{"type":"string"},"accessToken":{"type":"string"},"refreshToken":{"nullable":true,"type":"string"},"oauthId":{"nullable":true,"type":"string"}},"required":["id","createdAt","updatedAt","userId","provider","username","accessToken","refreshToken","oauthId"],"additionalProperties":false}},"totpSecret":{"nullable":true,"type":"string"},"passkeys":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"lastUsed":{"nullable":true,"type":"string","format":"date-time"},"name":{"type":"string"},"reg":{},"userId":{"type":"string"}},"required":["id","createdAt","updatedAt","lastUsed","name","reg","userId"],"additionalProperties":false}},"quota":{"nullable":true,"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"filesQuota":{"type":"string","enum":["BY_BYTES","BY_FILES"]},"maxBytes":{"nullable":true,"type":"string"},"maxFiles":{"nullable":true,"type":"number"},"maxUrls":{"nullable":true,"type":"number"},"userId":{"nullable":true,"type":"string"}},"required":["id","createdAt","updatedAt","filesQuota","maxBytes","maxFiles","maxUrls","userId"],"additionalProperties":false},"avatar":{"nullable":true,"type":"string"},"password":{"nullable":true,"type":"string"},"token":{"nullable":true,"type":"string"}},"required":["id","username","createdAt","updatedAt","role","view","sessions","oauthProviders"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}},"delete":{"description":"Disable TOTP for your account after confirming a valid TOTP code.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","minLength":6,"maxLength":6}},"required":["code"]}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"username":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"role":{"type":"string","enum":["USER","ADMIN","SUPERADMIN"]},"view":{"type":"object","properties":{"enabled":{"nullable":true,"type":"boolean"},"disableTextFiles":{"nullable":true,"type":"boolean"},"align":{"nullable":true,"type":"string","enum":["left","center","right"]},"showMimetype":{"nullable":true,"type":"boolean"},"showTags":{"nullable":true,"type":"boolean"},"showFolder":{"nullable":true,"type":"boolean"},"content":{"nullable":true,"type":"string"},"embed":{"nullable":true,"type":"boolean"},"embedMediaOnly":{"nullable":true,"type":"boolean"},"embedTitle":{"nullable":true,"type":"string"},"embedDescription":{"nullable":true,"type":"string"},"embedColor":{"nullable":true,"type":"string"},"embedSiteName":{"nullable":true,"type":"string"}},"additionalProperties":false},"sessions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"ua":{"type":"string"},"client":{"type":"string"},"device":{"type":"string"},"userId":{"type":"string"}},"required":["id","createdAt","ua","client","device","userId"],"additionalProperties":false}},"oauthProviders":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"userId":{"type":"string"},"provider":{"type":"string","enum":["DISCORD","GOOGLE","GITHUB","OIDC"]},"username":{"type":"string"},"accessToken":{"type":"string"},"refreshToken":{"nullable":true,"type":"string"},"oauthId":{"nullable":true,"type":"string"}},"required":["id","createdAt","updatedAt","userId","provider","username","accessToken","refreshToken","oauthId"],"additionalProperties":false}},"totpSecret":{"nullable":true,"type":"string"},"passkeys":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"lastUsed":{"nullable":true,"type":"string","format":"date-time"},"name":{"type":"string"},"reg":{},"userId":{"type":"string"}},"required":["id","createdAt","updatedAt","lastUsed","name","reg","userId"],"additionalProperties":false}},"quota":{"nullable":true,"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"filesQuota":{"type":"string","enum":["BY_BYTES","BY_FILES"]},"maxBytes":{"nullable":true,"type":"string"},"maxFiles":{"nullable":true,"type":"number"},"maxUrls":{"nullable":true,"type":"number"},"userId":{"nullable":true,"type":"string"}},"required":["id","createdAt","updatedAt","filesQuota","maxBytes","maxFiles","maxUrls","userId"],"additionalProperties":false},"avatar":{"nullable":true,"type":"string"},"password":{"nullable":true,"type":"string"},"token":{"nullable":true,"type":"string"}},"required":["id","username","createdAt","updatedAt","role","view","sessions","oauthProviders"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/user/tags/{id}":{"get":{"tags":["auth"],"description":"Fetch a specific tag by ID, ensuring it is owned by the authenticated user.","parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"name":{"type":"string"},"color":{"type":"string"},"files":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":false}}},"required":["id","createdAt","updatedAt","name","color"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}},"delete":{"tags":["auth"],"description":"Delete a specific tag owned by the authenticated user.","parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}},"patch":{"tags":["auth"],"description":"Update the name and/or color of a specific tag.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1},"color":{"type":"string","pattern":"^#([0-9A-Fa-f]{6}|[0-9A-Fa-f]{3})$"}}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"name":{"type":"string"},"color":{"type":"string"},"files":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":false}}},"required":["id","createdAt","updatedAt","name","color"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/user/tags":{"get":{"tags":["auth"],"description":"List all tags created by the authenticated user.","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"name":{"type":"string"},"color":{"type":"string"},"files":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":false}}},"required":["id","createdAt","updatedAt","name","color"],"additionalProperties":false}}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}},"post":{"tags":["auth"],"description":"Create a new tag with a name and color for organizing files.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1},"color":{"type":"string","pattern":"^#([0-9A-Fa-f]{6}|[0-9A-Fa-f]{3})$"}},"required":["name","color"]}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"name":{"type":"string"},"color":{"type":"string"},"files":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":false}}},"required":["id","createdAt","updatedAt","name","color"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/user/urls":{"post":{"description":"Create a new shortened URL for the authenticated user, with optional vanity, password, and max-views settings.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"vanity":{"nullable":true,"type":"string","minLength":1,"maxLength":100},"destination":{"type":"string","minLength":1,"format":"uri"},"enabled":{"type":"boolean"}},"required":["destination"]}}}},"parameters":[{"schema":{"type":"number","minimum":1},"in":"header","name":"x-zipline-max-views","required":false},{"schema":{"type":"string","enum":["false","true"]},"in":"header","name":"x-zipline-no-json","required":false},{"schema":{"type":"string"},"in":"header","name":"x-zipline-domain","required":false},{"schema":{"type":"string"},"in":"header","name":"x-zipline-password","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"anyOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"code":{"type":"string"},"vanity":{"nullable":true,"type":"string"},"destination":{"type":"string"},"views":{"type":"number"},"maxViews":{"nullable":true,"type":"number"},"enabled":{"type":"boolean"},"userId":{"nullable":true,"type":"string"},"similarity":{"type":"number"},"url":{"type":"string"}},"required":["id","createdAt","updatedAt","code","vanity","destination","views","maxViews","enabled","userId","url"],"additionalProperties":false}]}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}},"get":{"description":"List or search shortened URLs owned by the authenticated user.","parameters":[{"schema":{"default":"destination","type":"string","enum":["destination","vanity","code"]},"in":"query","name":"searchField","required":false},{"schema":{"type":"string","minLength":1},"in":"query","name":"searchQuery","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"code":{"type":"string"},"vanity":{"nullable":true,"type":"string"},"destination":{"type":"string"},"views":{"type":"number"},"maxViews":{"nullable":true,"type":"number"},"enabled":{"type":"boolean"},"userId":{"nullable":true,"type":"string"},"similarity":{"type":"number"}},"required":["id","createdAt","updatedAt","code","vanity","destination","views","maxViews","enabled","userId"],"additionalProperties":false}}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/users/{id}":{"get":{"tags":["auth","admin"],"description":"Fetch a specific user by ID, including their profile and role (admin only).","parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"username":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"role":{"type":"string","enum":["USER","ADMIN","SUPERADMIN"]},"view":{"type":"object","properties":{"enabled":{"nullable":true,"type":"boolean"},"disableTextFiles":{"nullable":true,"type":"boolean"},"align":{"nullable":true,"type":"string","enum":["left","center","right"]},"showMimetype":{"nullable":true,"type":"boolean"},"showTags":{"nullable":true,"type":"boolean"},"showFolder":{"nullable":true,"type":"boolean"},"content":{"nullable":true,"type":"string"},"embed":{"nullable":true,"type":"boolean"},"embedMediaOnly":{"nullable":true,"type":"boolean"},"embedTitle":{"nullable":true,"type":"string"},"embedDescription":{"nullable":true,"type":"string"},"embedColor":{"nullable":true,"type":"string"},"embedSiteName":{"nullable":true,"type":"string"}},"additionalProperties":false},"quota":{"nullable":true,"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"filesQuota":{"type":"string","enum":["BY_BYTES","BY_FILES"]},"maxBytes":{"nullable":true,"type":"string"},"maxFiles":{"nullable":true,"type":"number"},"maxUrls":{"nullable":true,"type":"number"},"userId":{"nullable":true,"type":"string"}},"required":["id","createdAt","updatedAt","filesQuota","maxBytes","maxFiles","maxUrls","userId"],"additionalProperties":false},"avatar":{"nullable":true,"type":"string"}},"required":["id","username","createdAt","updatedAt","role","view"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}},"patch":{"tags":["auth","admin"],"description":"Update another user's profile, credentials, role, and optional file quota limits (admin only).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"username":{"type":"string","minLength":1},"password":{"type":"string","minLength":1},"avatar":{"type":"string","format":"uri"},"role":{"type":"string","enum":["USER","ADMIN","SUPERADMIN"]},"quota":{"type":"object","properties":{"filesType":{"type":"string","enum":["BY_BYTES","BY_FILES","NONE"]},"maxFiles":{"nullable":true,"type":"number","minimum":1},"maxBytes":{"nullable":true,"type":"string","minLength":1},"maxUrls":{"nullable":true,"type":"number","minimum":1}}}}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"username":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"role":{"type":"string","enum":["USER","ADMIN","SUPERADMIN"]},"view":{"type":"object","properties":{"enabled":{"nullable":true,"type":"boolean"},"disableTextFiles":{"nullable":true,"type":"boolean"},"align":{"nullable":true,"type":"string","enum":["left","center","right"]},"showMimetype":{"nullable":true,"type":"boolean"},"showTags":{"nullable":true,"type":"boolean"},"showFolder":{"nullable":true,"type":"boolean"},"content":{"nullable":true,"type":"string"},"embed":{"nullable":true,"type":"boolean"},"embedMediaOnly":{"nullable":true,"type":"boolean"},"embedTitle":{"nullable":true,"type":"string"},"embedDescription":{"nullable":true,"type":"string"},"embedColor":{"nullable":true,"type":"string"},"embedSiteName":{"nullable":true,"type":"string"}},"additionalProperties":false},"quota":{"nullable":true,"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"filesQuota":{"type":"string","enum":["BY_BYTES","BY_FILES"]},"maxBytes":{"nullable":true,"type":"string"},"maxFiles":{"nullable":true,"type":"number"},"maxUrls":{"nullable":true,"type":"number"},"userId":{"nullable":true,"type":"string"}},"required":["id","createdAt","updatedAt","filesQuota","maxBytes","maxFiles","maxUrls","userId"],"additionalProperties":false},"avatar":{"nullable":true,"type":"string"}},"required":["id","username","createdAt","updatedAt","role","view"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}},"delete":{"tags":["auth","admin"],"description":"Delete another user by ID, optionally cascading deletion of their files and URLs (admin only).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"delete":{"type":"boolean"}}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"username":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"role":{"type":"string","enum":["USER","ADMIN","SUPERADMIN"]},"view":{"type":"object","properties":{"enabled":{"nullable":true,"type":"boolean"},"disableTextFiles":{"nullable":true,"type":"boolean"},"align":{"nullable":true,"type":"string","enum":["left","center","right"]},"showMimetype":{"nullable":true,"type":"boolean"},"showTags":{"nullable":true,"type":"boolean"},"showFolder":{"nullable":true,"type":"boolean"},"content":{"nullable":true,"type":"string"},"embed":{"nullable":true,"type":"boolean"},"embedMediaOnly":{"nullable":true,"type":"boolean"},"embedTitle":{"nullable":true,"type":"string"},"embedDescription":{"nullable":true,"type":"string"},"embedColor":{"nullable":true,"type":"string"},"embedSiteName":{"nullable":true,"type":"string"}},"additionalProperties":false},"quota":{"nullable":true,"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"filesQuota":{"type":"string","enum":["BY_BYTES","BY_FILES"]},"maxBytes":{"nullable":true,"type":"string"},"maxFiles":{"nullable":true,"type":"number"},"maxUrls":{"nullable":true,"type":"number"},"userId":{"nullable":true,"type":"string"}},"required":["id","createdAt","updatedAt","filesQuota","maxBytes","maxFiles","maxUrls","userId"],"additionalProperties":false},"avatar":{"nullable":true,"type":"string"}},"required":["id","username","createdAt","updatedAt","role","view"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/users/{id}/tags":{"get":{"tags":["auth","admin"],"description":"List tags owned by the specified user, enforcing role-based interaction rules (admin only).","parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/user/files/{id}":{"get":{"tags":["auth"],"description":"Fetch a single file owned by the authenticated user (or another user if permitted) by ID or short name.","parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"createdAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"updatedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"deletesAt":{"nullable":true,"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"favorite":{"type":"boolean"},"id":{"type":"string"},"originalName":{"nullable":true,"type":"string"},"name":{"type":"string"},"size":{"type":"number"},"type":{"type":"string"},"views":{"type":"number"},"maxViews":{"nullable":true,"type":"number"},"password":{"nullable":true,"anyOf":[{"type":"string"},{"type":"boolean"}]},"folderId":{"nullable":true,"type":"string"},"anonymous":{"nullable":true,"type":"boolean"},"thumbnail":{"nullable":true,"type":"object","properties":{"path":{"type":"string"}},"required":["path"],"additionalProperties":false},"tags":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"name":{"type":"string"},"color":{"type":"string"},"files":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":false}}},"required":["id","createdAt","updatedAt","name","color"],"additionalProperties":false}},"url":{"type":"string"},"similarity":{"type":"number"}},"required":["createdAt","updatedAt","deletesAt","favorite","id","originalName","name","size","type","views","folderId","thumbnail"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}},"patch":{"tags":["auth"],"description":"Update metadata for a single file, including favorite, name, tags, password, and view limits.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"favorite":{"type":"boolean"},"maxViews":{"type":"number","minimum":0},"password":{"nullable":true,"type":"string"},"originalName":{"type":"string","minLength":1},"type":{"type":"string","minLength":1},"tags":{"type":"array","items":{"type":"string"}},"name":{"type":"string","minLength":1},"anonymous":{"type":"boolean"}}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"createdAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"updatedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"deletesAt":{"nullable":true,"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"favorite":{"type":"boolean"},"id":{"type":"string"},"originalName":{"nullable":true,"type":"string"},"name":{"type":"string"},"size":{"type":"number"},"type":{"type":"string"},"views":{"type":"number"},"maxViews":{"nullable":true,"type":"number"},"password":{"nullable":true,"anyOf":[{"type":"string"},{"type":"boolean"}]},"folderId":{"nullable":true,"type":"string"},"anonymous":{"nullable":true,"type":"boolean"},"thumbnail":{"nullable":true,"type":"object","properties":{"path":{"type":"string"}},"required":["path"],"additionalProperties":false},"tags":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"name":{"type":"string"},"color":{"type":"string"},"files":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":false}}},"required":["id","createdAt","updatedAt","name","color"],"additionalProperties":false}},"url":{"type":"string"},"similarity":{"type":"number"}},"required":["createdAt","updatedAt","deletesAt","favorite","id","originalName","name","size","type","views","folderId","thumbnail"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}},"delete":{"tags":["auth"],"parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"createdAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"updatedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"deletesAt":{"nullable":true,"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"favorite":{"type":"boolean"},"id":{"type":"string"},"originalName":{"nullable":true,"type":"string"},"name":{"type":"string"},"size":{"type":"number"},"type":{"type":"string"},"views":{"type":"number"},"maxViews":{"nullable":true,"type":"number"},"password":{"nullable":true,"anyOf":[{"type":"string"},{"type":"boolean"}]},"folderId":{"nullable":true,"type":"string"},"anonymous":{"nullable":true,"type":"boolean"},"thumbnail":{"nullable":true,"type":"object","properties":{"path":{"type":"string"}},"required":["path"],"additionalProperties":false},"tags":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"name":{"type":"string"},"color":{"type":"string"},"files":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":false}}},"required":["id","createdAt","updatedAt","name","color"],"additionalProperties":false}},"url":{"type":"string"},"similarity":{"type":"number"}},"required":["createdAt","updatedAt","deletesAt","favorite","id","originalName","name","size","type","views","folderId","thumbnail"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/user/files/{id}/password":{"post":{"description":"Verify the password for a password-protected file by ID or name and receive an access token if the password is correct","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"password":{"type":"string","minLength":1}},"required":["password"]}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"token":{"type":"string"}},"required":["success","token"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/user/files/{id}/raw":{"get":{"tags":["auth"],"description":"Stream a file or thumbnail owned by the authenticated user by ID, with optional password and download handling.","parameters":[{"schema":{"type":"string"},"in":"query","name":"token","required":false},{"schema":{"type":"string","enum":["true","false"]},"in":"query","name":"download","required":false},{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/user/folders/{id}/export":{"get":{"tags":["auth"],"description":"Download a ZIP archive of all files contained in a folder and its subfolders.","parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response"},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/user/folders/{id}":{"get":{"tags":["auth"],"description":"Fetch a specific folder by ID, optionally including files, children, and its parent chain.","parameters":[{"schema":{"type":"string","enum":["true","false"]},"in":"query","name":"noincl","required":false},{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"}]},"name":{"type":"string"},"public":{"type":"boolean"},"allowUploads":{"type":"boolean"},"parentId":{"nullable":true,"type":"string"},"userId":{"type":"string"},"files":{"type":"array","items":{"type":"object","properties":{"createdAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"updatedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"deletesAt":{"nullable":true,"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"favorite":{"type":"boolean"},"id":{"type":"string"},"originalName":{"nullable":true,"type":"string"},"name":{"type":"string"},"size":{"type":"number"},"type":{"type":"string"},"views":{"type":"number"},"maxViews":{"nullable":true,"type":"number"},"password":{"nullable":true,"anyOf":[{"type":"string"},{"type":"boolean"}]},"folderId":{"nullable":true,"type":"string"},"anonymous":{"nullable":true,"type":"boolean"},"thumbnail":{"nullable":true,"type":"object","properties":{"path":{"type":"string"}},"required":["path"],"additionalProperties":false},"tags":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"name":{"type":"string"},"color":{"type":"string"},"files":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":false}}},"required":["id","createdAt","updatedAt","name","color"],"additionalProperties":false}},"url":{"type":"string"},"similarity":{"type":"number"}},"required":["createdAt","updatedAt","deletesAt","favorite","id","originalName","name","size","type","views","folderId","thumbnail"],"additionalProperties":false}},"parent":{"nullable":true},"children":{"type":"array","items":{}},"_count":{"type":"object","properties":{"children":{"type":"number"},"files":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}},"put":{"tags":["auth"],"description":"Add a file to a specific folder owned by the user.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"}]},"name":{"type":"string"},"public":{"type":"boolean"},"allowUploads":{"type":"boolean"},"parentId":{"nullable":true,"type":"string"},"userId":{"type":"string"},"files":{"type":"array","items":{"type":"object","properties":{"createdAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"updatedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"deletesAt":{"nullable":true,"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"favorite":{"type":"boolean"},"id":{"type":"string"},"originalName":{"nullable":true,"type":"string"},"name":{"type":"string"},"size":{"type":"number"},"type":{"type":"string"},"views":{"type":"number"},"maxViews":{"nullable":true,"type":"number"},"password":{"nullable":true,"anyOf":[{"type":"string"},{"type":"boolean"}]},"folderId":{"nullable":true,"type":"string"},"anonymous":{"nullable":true,"type":"boolean"},"thumbnail":{"nullable":true,"type":"object","properties":{"path":{"type":"string"}},"required":["path"],"additionalProperties":false},"tags":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"name":{"type":"string"},"color":{"type":"string"},"files":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":false}}},"required":["id","createdAt","updatedAt","name","color"],"additionalProperties":false}},"url":{"type":"string"},"similarity":{"type":"number"}},"required":["createdAt","updatedAt","deletesAt","favorite","id","originalName","name","size","type","views","folderId","thumbnail"],"additionalProperties":false}},"parent":{"nullable":true},"children":{"type":"array","items":{}},"_count":{"type":"object","properties":{"children":{"type":"number"},"files":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}},"patch":{"tags":["auth"],"description":"Update a folder's visibility, name, upload permissions, or parent.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"isPublic":{"type":"boolean"},"name":{"type":"string","minLength":1},"allowUploads":{"type":"boolean"},"parentId":{"nullable":true,"type":"string"}}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"}]},"name":{"type":"string"},"public":{"type":"boolean"},"allowUploads":{"type":"boolean"},"parentId":{"nullable":true,"type":"string"},"userId":{"type":"string"},"files":{"type":"array","items":{"type":"object","properties":{"createdAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"updatedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"deletesAt":{"nullable":true,"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"favorite":{"type":"boolean"},"id":{"type":"string"},"originalName":{"nullable":true,"type":"string"},"name":{"type":"string"},"size":{"type":"number"},"type":{"type":"string"},"views":{"type":"number"},"maxViews":{"nullable":true,"type":"number"},"password":{"nullable":true,"anyOf":[{"type":"string"},{"type":"boolean"}]},"folderId":{"nullable":true,"type":"string"},"anonymous":{"nullable":true,"type":"boolean"},"thumbnail":{"nullable":true,"type":"object","properties":{"path":{"type":"string"}},"required":["path"],"additionalProperties":false},"tags":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"name":{"type":"string"},"color":{"type":"string"},"files":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":false}}},"required":["id","createdAt","updatedAt","name","color"],"additionalProperties":false}},"url":{"type":"string"},"similarity":{"type":"number"}},"required":["createdAt","updatedAt","deletesAt","favorite","id","originalName","name","size","type","views","folderId","thumbnail"],"additionalProperties":false}},"parent":{"nullable":true},"children":{"type":"array","items":{}},"_count":{"type":"object","properties":{"children":{"type":"number"},"files":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}},"delete":{"tags":["auth"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"delete":{"type":"string","enum":["file","folder"]},"id":{"type":"string","minLength":1},"childrenAction":{"type":"string","enum":["root","folder","cascade","cascade-files"]},"targetFolderId":{"type":"string"}},"required":["delete"]}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"description":"if deleting the folder, return success status","nullable":true,"type":"boolean"},"folder":{"description":"if deleting a file from the folder, returns the updated folder","nullable":true,"type":"object","properties":{"id":{"type":"string"},"createdAt":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"}]},"name":{"type":"string"},"public":{"type":"boolean"},"allowUploads":{"type":"boolean"},"parentId":{"nullable":true,"type":"string"},"userId":{"type":"string"},"files":{"type":"array","items":{"type":"object","properties":{"createdAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"updatedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"deletesAt":{"nullable":true,"anyOf":[{"type":"string","format":"date-time"},{"type":"string"}]},"favorite":{"type":"boolean"},"id":{"type":"string"},"originalName":{"nullable":true,"type":"string"},"name":{"type":"string"},"size":{"type":"number"},"type":{"type":"string"},"views":{"type":"number"},"maxViews":{"nullable":true,"type":"number"},"password":{"nullable":true,"anyOf":[{"type":"string"},{"type":"boolean"}]},"folderId":{"nullable":true,"type":"string"},"anonymous":{"nullable":true,"type":"boolean"},"thumbnail":{"nullable":true,"type":"object","properties":{"path":{"type":"string"}},"required":["path"],"additionalProperties":false},"tags":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"name":{"type":"string"},"color":{"type":"string"},"files":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":false}}},"required":["id","createdAt","updatedAt","name","color"],"additionalProperties":false}},"url":{"type":"string"},"similarity":{"type":"number"}},"required":["createdAt","updatedAt","deletesAt","favorite","id","originalName","name","size","type","views","folderId","thumbnail"],"additionalProperties":false}},"parent":{"nullable":true},"children":{"type":"array","items":{}},"_count":{"type":"object","properties":{"children":{"type":"number"},"files":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/user/urls/{id}":{"get":{"tags":["auth"],"parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"code":{"type":"string"},"vanity":{"nullable":true,"type":"string"},"destination":{"type":"string"},"views":{"type":"number"},"maxViews":{"nullable":true,"type":"number"},"enabled":{"type":"boolean"},"userId":{"nullable":true,"type":"string"},"similarity":{"type":"number"}},"required":["id","createdAt","updatedAt","code","vanity","destination","views","maxViews","enabled","userId"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}},"patch":{"tags":["auth"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"password":{"nullable":true,"type":"string"},"vanity":{"nullable":true,"type":"string","minLength":1},"maxViews":{"nullable":true,"type":"number","minimum":0},"destination":{"type":"string","format":"uri"},"enabled":{"type":"boolean"}}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"code":{"type":"string"},"vanity":{"nullable":true,"type":"string"},"destination":{"type":"string"},"views":{"type":"number"},"maxViews":{"nullable":true,"type":"number"},"enabled":{"type":"boolean"},"userId":{"nullable":true,"type":"string"},"similarity":{"type":"number"}},"required":["id","createdAt","updatedAt","code","vanity","destination","views","maxViews","enabled","userId"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}},"delete":{"tags":["auth"],"parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"code":{"type":"string"},"vanity":{"nullable":true,"type":"string"},"destination":{"type":"string"},"views":{"type":"number"},"maxViews":{"nullable":true,"type":"number"},"enabled":{"type":"boolean"},"userId":{"nullable":true,"type":"string"},"similarity":{"type":"number"}},"required":["id","createdAt","updatedAt","code","vanity","destination","views","maxViews","enabled","userId"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}},"/api/user/urls/{id}/password":{"post":{"description":"Verify the password for a password-protected short URL by ID, code, or vanity.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"password":{"type":"string","minLength":1}},"required":["password"]}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"token":{"type":"string"}},"required":["success","token"],"additionalProperties":false}}}},"4xx":{"description":"API error response (4xx)","content":{"application/json":{"schema":{"type":"object","description":"Generic error for API endpoints.","properties":{"error":{"type":"string","description":"Message for the error. This may differ from the standard message for the error code, but the error code should be used to figure out the type of error."},"code":{"type":"integer","format":"int32","description":"Zipline API error code. Ranges: 1xxx validation, 2xxx session, 3xxx permission, 4xxx not-found, 5xxx constraint, 6xxx internal, 9xxx generic.","enum":[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,2000,2001,2002,2003,2004,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,5000,5001,5002,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,9000,9001,9002,9004],"x-enumDescriptions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]},"statusCode":{"type":"integer","format":"int32","description":"HTTP status code returned alongside this error payload."}},"required":["error","code","statusCode"],"additionalProperties":true},"examples":{"E1000":{"summary":"E1000: Invalid request schema","value":{"error":"E1000: Invalid request schema","code":1000,"statusCode":400}},"E1001":{"summary":"E1001: Invalid upload options","value":{"error":"E1001: Invalid upload options","code":1001,"statusCode":400}},"E1002":{"summary":"E1002: Invalid partial upload","value":{"error":"E1002: Invalid partial upload","code":1002,"statusCode":400}},"E1003":{"summary":"E1003: Partial upload identifier is invalid","value":{"error":"E1003: Partial upload identifier is invalid","code":1003,"statusCode":400}},"E1004":{"summary":"E1004: Partial upload was not detected","value":{"error":"E1004: Partial upload was not detected","code":1004,"statusCode":400}},"E1005":{"summary":"E1005: Partial uploads only support one file field","value":{"error":"E1005: Partial uploads only support one file field","code":1005,"statusCode":400}},"E1006":{"summary":"E1006: File extension is not allowed","value":{"error":"E1006: File extension is not allowed","code":1006,"statusCode":400}},"E1007":{"summary":"E1007: Invalid characters in filename","value":{"error":"E1007: Invalid characters in filename","code":1007,"statusCode":400}},"E1008":{"summary":"E1008: Invalid characters in original filename","value":{"error":"E1008: Invalid characters in original filename","code":1008,"statusCode":400}},"E1009":{"summary":"E1009: Invalid filename","value":{"error":"E1009: Invalid filename","code":1009,"statusCode":400}},"E1010":{"summary":"E1010: Unrecognized file mimetype","value":{"error":"E1010: Unrecognized file mimetype","code":1010,"statusCode":400}},"E1011":{"summary":"E1011: File already in folder","value":{"error":"E1011: File already in folder","code":1011,"statusCode":400}},"E1012":{"summary":"E1012: File not in folder","value":{"error":"E1012: File not in folder","code":1012,"statusCode":400}},"E1013":{"summary":"E1013: File ID is required","value":{"error":"E1013: File ID is required","code":1013,"statusCode":400}},"E1014":{"summary":"E1014: File with this name already exists","value":{"error":"E1014: File with this name already exists","code":1014,"statusCode":400}},"E1015":{"summary":"E1015: A folder cannot be its own parent","value":{"error":"E1015: A folder cannot be its own parent","code":1015,"statusCode":400}},"E1016":{"summary":"E1016: Cannot move folder into one of its descendants","value":{"error":"E1016: Cannot move folder into one of its descendants","code":1016,"statusCode":400}},"E1019":{"summary":"E1019: Invalid action","value":{"error":"E1019: Invalid action","code":1019,"statusCode":400}},"E1020":{"summary":"E1020: Cannot PATCH without an action","value":{"error":"E1020: Cannot PATCH without an action","code":1020,"statusCode":400}},"E1021":{"summary":"E1021: Cannot delete current session, use log out instead.","value":{"error":"E1021: Cannot delete current session, use log out instead.","code":1021,"statusCode":400}},"E1022":{"summary":"E1022: Invalid settings update","value":{"error":"E1022: Invalid settings update","code":1022,"statusCode":400}},"E1023":{"summary":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","value":{"error":"E1023: Invalid setup, no settings found. Run the setup process again before exporting data.","code":1023,"statusCode":400}},"E1024":{"summary":"E1024: Export is not completed","value":{"error":"E1024: Export is not completed","code":1024,"statusCode":400}},"E1025":{"summary":"E1025: No files to export","value":{"error":"E1025: No files to export","code":1025,"statusCode":400}},"E1026":{"summary":"E1026: No files found for the given request","value":{"error":"E1026: No files found for the given request","code":1026,"statusCode":400}},"E1027":{"summary":"E1027: No files were deleted.","value":{"error":"E1027: No files were deleted.","code":1027,"statusCode":400}},"E1028":{"summary":"E1028: No files were updated.","value":{"error":"E1028: No files were updated.","code":1028,"statusCode":400}},"E1029":{"summary":"E1029: No ID provided","value":{"error":"E1029: No ID provided","code":1029,"statusCode":400}},"E1030":{"summary":"E1030: No providers to delete","value":{"error":"E1030: No providers to delete","code":1030,"statusCode":400}},"E1031":{"summary":"E1031: Session not found in logged in sessions","value":{"error":"E1031: Session not found in logged in sessions","code":1031,"statusCode":400}},"E1032":{"summary":"E1032: Invalid tag specified","value":{"error":"E1032: Invalid tag specified","code":1032,"statusCode":400}},"E1033":{"summary":"E1033: Cannot create tag with the same name","value":{"error":"E1033: Cannot create tag with the same name","code":1033,"statusCode":400}},"E1034":{"summary":"E1034: Tag name already exists","value":{"error":"E1034: Tag name already exists","code":1034,"statusCode":400}},"E1035":{"summary":"E1035: Invalid invite code","value":{"error":"E1035: Invalid invite code","code":1035,"statusCode":400}},"E1036":{"summary":"E1036: Invites aren't enabled","value":{"error":"E1036: Invites aren't enabled","code":1036,"statusCode":400}},"E1037":{"summary":"E1037: User registration is disabled","value":{"error":"E1037: User registration is disabled","code":1037,"statusCode":400}},"E1038":{"summary":"E1038: Username already exists","value":{"error":"E1038: Username already exists","code":1038,"statusCode":400}},"E1039":{"summary":"E1039: Username is taken","value":{"error":"E1039: Username is taken","code":1039,"statusCode":400}},"E1040":{"summary":"E1040: A user with this username already exists","value":{"error":"E1040: A user with this username already exists","code":1040,"statusCode":400}},"E1041":{"summary":"E1041: Vanity already exists","value":{"error":"E1041: Vanity already exists","code":1041,"statusCode":400}},"E1042":{"summary":"E1042: Vanity already taken","value":{"error":"E1042: Vanity already taken","code":1042,"statusCode":400}},"E1043":{"summary":"E1043: You can't delete your last OAuth provider without a password","value":{"error":"E1043: You can't delete your last OAuth provider without a password","code":1043,"statusCode":400}},"E1044":{"summary":"E1044: Invalid username or password","value":{"error":"E1044: Invalid username or password","code":1044,"statusCode":400}},"E1045":{"summary":"E1045: Invalid code","value":{"error":"E1045: Invalid code","code":1045,"statusCode":400}},"E1046":{"summary":"E1046: Missing WebAuthn challenge ID","value":{"error":"E1046: Missing WebAuthn challenge ID","code":1046,"statusCode":400}},"E1047":{"summary":"E1047: Missing WebAuthn payload","value":{"error":"E1047: Missing WebAuthn payload","code":1047,"statusCode":400}},"E1048":{"summary":"E1048: Passkey registration timed out, try again later","value":{"error":"E1048: Passkey registration timed out, try again later","code":1048,"statusCode":400}},"E1049":{"summary":"E1049: Error verifying passkey registration","value":{"error":"E1049: Error verifying passkey registration","code":1049,"statusCode":400}},"E1050":{"summary":"E1050: Could not verify passkey registration","value":{"error":"E1050: Could not verify passkey registration","code":1050,"statusCode":400}},"E1051":{"summary":"E1051: Error verifying passkey authentication","value":{"error":"E1051: Error verifying passkey authentication","code":1051,"statusCode":400}},"E1052":{"summary":"E1052: Could not verify passkey authentication","value":{"error":"E1052: Could not verify passkey authentication","code":1052,"statusCode":400}},"E1053":{"summary":"E1053: You don't have TOTP enabled","value":{"error":"E1053: You don't have TOTP enabled","code":1053,"statusCode":400}},"E1054":{"summary":"E1054: TOTP is disabled","value":{"error":"E1054: TOTP is disabled","code":1054,"statusCode":400}},"E1055":{"summary":"E1055: Password must be a string","value":{"error":"E1055: Password must be a string","code":1055,"statusCode":400}},"E1056":{"summary":"E1056: The 'maxBytes' value is required","value":{"error":"E1056: The 'maxBytes' value is required","code":1056,"statusCode":400}},"E1057":{"summary":"E1057: The 'maxFiles' value is required","value":{"error":"E1057: The 'maxFiles' value is required","code":1057,"statusCode":400}},"E1058":{"summary":"E1058: From date must be before to date","value":{"error":"E1058: From date must be before to date","code":1058,"statusCode":400}},"E1059":{"summary":"E1059: From date must be in the past","value":{"error":"E1059: From date must be in the past","code":1059,"statusCode":400}},"E1060":{"summary":"E1060: Passkey has legacy registration data and cannot be used","value":{"error":"E1060: Passkey has legacy registration data and cannot be used","code":1060,"statusCode":400}},"E1061":{"summary":"E1061: Invalid multipart/form-data request","value":{"error":"E1061: Invalid multipart/form-data request","code":1061,"statusCode":400}},"E1062":{"summary":"E1062: No files in multipart/form-data request","value":{"error":"E1062: No files in multipart/form-data request","code":1062,"statusCode":400}},"E1063":{"summary":"E1063: Already linked to this OAuth provider","value":{"error":"E1063: Already linked to this OAuth provider","code":1063,"statusCode":400}},"E1064":{"summary":"E1064: Invalid OAuth state parameter","value":{"error":"E1064: Invalid OAuth state parameter","code":1064,"statusCode":400}},"E1065":{"summary":"E1065: Invalid MIME type","value":{"error":"E1065: Invalid MIME type","code":1065,"statusCode":400}},"E1066":{"summary":"E1066: Current password is incorrect","value":{"error":"E1066: Current password is incorrect","code":1066,"statusCode":400}},"E1067":{"summary":"E1067: Current password is required to set a new password","value":{"error":"E1067: Current password is required to set a new password","code":1067,"statusCode":400}},"E2000":{"summary":"E2000: Invalid login session","value":{"error":"E2000: Invalid login session","code":2000,"statusCode":401}},"E2001":{"summary":"E2001: Invalid token","value":{"error":"E2001: Invalid token","code":2001,"statusCode":401}},"E2002":{"summary":"E2002: Not logged in","value":{"error":"E2002: Not logged in","code":2002,"statusCode":401}},"E2003":{"summary":"E2003: OAuth provider is not configured (or misconfigured)","value":{"error":"E2003: OAuth provider is not configured (or misconfigured)","code":2003,"statusCode":401}},"E2004":{"summary":"E2004: Invalid login steps (cookie relying on token)","value":{"error":"E2004: Invalid login steps (cookie relying on token)","code":2004,"statusCode":401}},"E3000":{"summary":"E3000: Admin only","value":{"error":"E3000: Admin only","code":3000,"statusCode":403}},"E3001":{"summary":"E3001: Metrics are disabled","value":{"error":"E3001: Metrics are disabled","code":3001,"statusCode":403}},"E3002":{"summary":"E3002: Folder is not open","value":{"error":"E3002: Folder is not open","code":3002,"statusCode":403}},"E3003":{"summary":"E3003: Parent folder does not belong to you","value":{"error":"E3003: Parent folder does not belong to you","code":3003,"statusCode":403}},"E3004":{"summary":"E3004: Password protected","value":{"error":"E3004: Password protected","code":3004,"statusCode":403}},"E3005":{"summary":"E3005: Incorrect password","value":{"error":"E3005: Incorrect password","code":3005,"statusCode":403}},"E3006":{"summary":"E3006: Target folder not found","value":{"error":"E3006: Target folder not found","code":3006,"statusCode":403}},"E3007":{"summary":"E3007: You cannot assign this role","value":{"error":"E3007: You cannot assign this role","code":3007,"statusCode":403}},"E3008":{"summary":"E3008: You cannot create this role","value":{"error":"E3008: You cannot create this role","code":3008,"statusCode":403}},"E3009":{"summary":"E3009: You cannot delete this user","value":{"error":"E3009: You cannot delete this user","code":3009,"statusCode":403}},"E3010":{"summary":"E3010: You cannot delete yourself","value":{"error":"E3010: You cannot delete yourself","code":3010,"statusCode":403}},"E3011":{"summary":"E3011: You do not own this folder","value":{"error":"E3011: You do not own this folder","code":3011,"statusCode":403}},"E3012":{"summary":"E3012: Shortening this URL would exceed your quota of X URLs","value":{"error":"E3012: Shortening this URL would exceed your quota of X URLs","code":3012,"statusCode":403}},"E3013":{"summary":"E3013: You don't have permission to delete the selected files","value":{"error":"E3013: You don't have permission to delete the selected files","code":3013,"statusCode":403}},"E3014":{"summary":"E3014: You don't have permission to modify the selected files","value":{"error":"E3014: You don't have permission to modify the selected files","code":3014,"statusCode":403}},"E3015":{"summary":"E3015: Not super admin","value":{"error":"E3015: Not super admin","code":3015,"statusCode":403}},"E3016":{"summary":"E3016: OAuth registration is disabled","value":{"error":"E3016: OAuth registration is disabled","code":3016,"statusCode":403}},"E3017":{"summary":"E3017: OAuth login is not allowed for this account","value":{"error":"E3017: OAuth login is not allowed for this account","code":3017,"statusCode":403}},"E3018":{"summary":"E3018: Invalid access token provided.","value":{"error":"E3018: Invalid access token provided.","code":3018,"statusCode":403}},"E3019":{"summary":"E3019: You cannot modify this user","value":{"error":"E3019: You cannot modify this user","code":3019,"statusCode":403}},"E4000":{"summary":"E4000: File not found","value":{"error":"E4000: File not found","code":4000,"statusCode":404}},"E4001":{"summary":"E4001: Folder not found","value":{"error":"E4001: Folder not found","code":4001,"statusCode":404}},"E4002":{"summary":"E4002: Folder or file not found","value":{"error":"E4002: Folder or file not found","code":4002,"statusCode":404}},"E4003":{"summary":"E4003: Folder or related records not found during deletion","value":{"error":"E4003: Folder or related records not found during deletion","code":4003,"statusCode":404}},"E4004":{"summary":"E4004: Invite not found","value":{"error":"E4004: Invite not found","code":4004,"statusCode":404}},"E4005":{"summary":"E4005: Invite not found through ID or code","value":{"error":"E4005: Invite not found through ID or code","code":4005,"statusCode":404}},"E4006":{"summary":"E4006: No files were moved.","value":{"error":"E4006: No files were moved.","code":4006,"statusCode":404}},"E4007":{"summary":"E4007: Parent folder not found","value":{"error":"E4007: Parent folder not found","code":4007,"statusCode":404}},"E4008":{"summary":"E4008: Target folder not found","value":{"error":"E4008: Target folder not found","code":4008,"statusCode":404}},"E4009":{"summary":"E4009: User not found","value":{"error":"E4009: User not found","code":4009,"statusCode":404}},"E4010":{"summary":"E4010: No settings table found","value":{"error":"E4010: No settings table found","code":4010,"statusCode":404}},"E4011":{"summary":"E4011: Thumbnails task not found","value":{"error":"E4011: Thumbnails task not found","code":4011,"statusCode":404}},"E5000":{"summary":"E5000: File size exceeds the configured limit","value":{"error":"E5000: File size exceeds the configured limit","code":5000,"statusCode":413}},"E5001":{"summary":"E5001: File is too large","value":{"error":"E5001: File is too large","code":5001,"statusCode":413}},"E5002":{"summary":"E5002: Storage quota exceeded","value":{"error":"E5002: Storage quota exceeded","code":5002,"statusCode":413}},"E6000":{"summary":"E6000: Failed to delete invite","value":{"error":"E6000: Failed to delete invite","code":6000,"statusCode":500}},"E6001":{"summary":"E6001: Failed to fetch version details","value":{"error":"E6001: Failed to fetch version details","code":6001,"statusCode":500}},"E6002":{"summary":"E6002: Failed to rename file in datasource","value":{"error":"E6002: Failed to rename file in datasource","code":6002,"statusCode":500}},"E6003":{"summary":"E6003: There was an error during a healthcheck","value":{"error":"E6003: There was an error during a healthcheck","code":6003,"statusCode":500}},"E6004":{"summary":"E6004: Failed to fetch OAuth access token","value":{"error":"E6004: Failed to fetch OAuth access token","code":6004,"statusCode":500}},"E6005":{"summary":"E6005: No access token in OAuth response","value":{"error":"E6005: No access token in OAuth response","code":6005,"statusCode":500}},"E6006":{"summary":"E6006: No refresh token in OAuth response","value":{"error":"E6006: No refresh token in OAuth response","code":6006,"statusCode":500}},"E6007":{"summary":"E6007: Failed to fetch OAuth user","value":{"error":"E6007: Failed to fetch OAuth user","code":6007,"statusCode":500}},"E6008":{"summary":"E6008: OAuth provider request failed","value":{"error":"E6008: OAuth provider request failed","code":6008,"statusCode":500}},"E6009":{"summary":"E6009: Couldn't create user via OAuth profile","value":{"error":"E6009: Couldn't create user via OAuth profile","code":6009,"statusCode":500}},"E6010":{"summary":"E6010: The username is already taken by another account","value":{"error":"E6010: The username is already taken by another account","code":6010,"statusCode":500}},"E9000":{"summary":"E9000: Bad request","value":{"error":"E9000: Bad request","code":9000,"statusCode":400}},"E9001":{"summary":"E9001: Forbidden","value":{"error":"E9001: Forbidden","code":9001,"statusCode":403}},"E9002":{"summary":"E9002: Not found","value":{"error":"E9002: Not found","code":9002,"statusCode":404}},"E9004":{"summary":"E9004: Internal server error","value":{"error":"E9004: Internal server error","code":9004,"statusCode":500}}}}}}}}}},"servers":[]}