NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #5237 most downloaded on PyPI
Nextcloud Python Framework
Last release 1 months ago
11 Aug 2026
Ships fairly regularly
a new release about every 5 weeks
Nearly every release is documented
notes for 58 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
65 releases · first in 2023
One column per quarter.
FsNode.etag_unquoted returning the entity tag without the double quotes the server wraps it in, for comparing or storing the bare value. FsNode.etag k
FsNode.etag_unquoted returning the entity tag without the double quotes the server wraps it in, for comparing or storing the bare value. FsNode.etag keeps what the server sent, so it can still be passed to an If-Match/If-None-Match header unchanged. #448 Thanks to @kyteinskyFsNode.etag is always a string now; trashbin entries used to yield None, because the server sends an empty <d:getetag/> there. #448get_propfind_properties() and both trashbin_list() implementations extended the shared PROPFIND_PROPERTIES constant with +=, so it grew on every call (7 entries per call against servers advertising files.locking, 3 per trashbin_list()). Long-running clients ended up sending multi-megabyte PROPFIND bodies that could exhaust the server's workers. Both property constants are now immutable tuples, so this class of bug cannot come back. #453 Thanks to @ciberkidsPinned starlette>=1.0.1 to address BadHost (CVE-2026-48710): a crafted Host header could desync request.url.path from the routed path in Starlette ≤ 1…
download_directory_as_zip: the order of entries inside the returned archive is no longer guaranteed; it now depends on the Nextcloud server's database backend, after Nextcloud server #60225 removed the implicit ORDER BY name ASC. #429starlette>=1.0.1 to address BadHost (CVE-2026-48710): a crafted Host header could desync request.url.path from the routed path in Starlette ≤ 1.0.0, bypassing path-based authorization. FastAPI does not constrain Starlette's upper bound, so an explicit floor is required to guarantee the fix. The fastapi floor was also raised to >=0.133 (the first release compatible with Starlette 1.0+).Share.token property to expose the share token (e.g. for passing to external applications that access Nextcloud shares via WebDAV). #427 Thanks to @me
Share.token property to expose the share token (e.g. for passing to external applications that access Nextcloud shares via WebDAV). #427 Thanks to @meck-gdNothing published for this version
Use new /ex-app/status endpoint for set_init_status instead of deprecated /apps/status/{appId}
/ex-app/status endpoint for set_init_status instead of deprecated /apps/status/{appId}ExApps: Use FileLock with atomic rename for safe concurrent model downloads. #396
caldav dependency for icalendar 7.x compatibility. #397Include the Response object in NextcloudException #394
Fix custom progress bar with huggingface_hub >= 1.1.0. #391 Thanks to @danxuliu
TaskProcessing: Add next_task_batch endpoint
Nothing published for this version
ExApps: Now exception is raised during model download if there was error to prevent incorrect ExApp installation. #376
Added wipe method to UsersAPI. #368 Thanks to @MrAalen
httpx library to the niquests library. #375 Thanks to @OusretExApps(NC32+): field sensitive to the SettingsField class (Declarative Settings) and to the PreferencesExAPI class. #357
sensitive to the SettingsField class (Declarative Settings) and to the PreferencesExAPI class. #357ExApps: AppAPIAuthMiddleware: correct handling of disable_for parameter. #357 Thanks to @BerengarWLehr
AppAPIAuthMiddleware: correct handling of disable_for parameter. #357 Thanks to @BerengarWLehrExApps: nc_py_api.ex_app.events_listener.EventsListener was removed in favor of nc_py_api.webhooks. #348
nc_py_api.ex_app.events_listener.EventsListener was removed in favor of nc_py_api.webhooks. #348download2stream not working correctly when Nextcloud returns compressed content. #352 Thanks to @PatrickPromitzer for reporting this.Optional response_type parameter of nextcloud.ocs method for calling OCS endpoints that return raw data. #341 Thanks to @janepie
response_type parameter of nextcloud.ocs method for calling OCS endpoints that return raw data. #341 Thanks to @janepieExApps(NC32+): When using HaRP, use unix-socket instead of host:port.
HaRP, use unix-socket instead of host:port.Files: FSNode now have creation_date property. #335 Thanks to @SunnyFarmDay
FSNode now have creation_date property. #335 Thanks to @SunnyFarmDayAA-VERSION header. (Nextcloud 32+) #336AppAPIAuthMiddleware now secures the websocket connection. (Nextcloud 32+) #338Default "User-Agent" for ExApps now set to ExApp/appid/version (httpx/version). #329
ExApp/appid/version (httpx/version). #329System Trust Store from now are used by default. #328Chunked Upload V2 not working on Nextcloud 30 and later. #324 Thanks to @DrZoidberg09
New webhooks.unregister_all method. #309
webhooks.unregister_all method. #309user and user_path properties in FSNode when Nextcloud located in the sub-path. #297 Thanks to @vwbusguyfiles.download_directory_as_zip method now supports upcoming Nextcloud 31. #304NextcloudApp: setup_nextcloud_logging function to support transparently sending logs to Nextcloud. #294
setup_nextcloud_logging function to support transparently sending logs to Nextcloud. #294nc.log now suppresses all exceptions to safe call it anywhere(for example in exception handlers). #293message_type property to TalkBotMessage. #292
message_type property to TalkBotMessage. #292TextProcessing, Speech2Text and Translation AI Providers API was removed. #289NextcloudApp: rework of TaskProcessing provider API. #284
nc.files.makedirs not working properly on Windows. #280 Thanks to @Wuli6Corrected behaviour of ocs function for Group Folders app routes(they are not fully OCS API). #279
ocs function for Group Folders app routes(they are not fully OCS API). #279get_computation_device function now correctly returns result in upper_case. #278Initial Webhooks API support for the upcoming Nextcloud 30. #272
fetch_models_task function now saves paths to downloaded models. #274 Thanks to @kyteinskyLoginFlowV2 implementation by @blvdek #255
LoginFlowV2 implementation by @blvdek #255files.get_tags function to get all tags assigned to the file or directory. #260nc.ui.files_dropdown_menu.register_ex to register new version of FileActions(AppAPI 2.6.0+) #252enabled_state property to check if the current ExApp is disabled or enabled. #268NextcloudApp: occ commands registration API(AppAPI 2.5.0+). #247
occ commands registration API(AppAPI 2.5.0+). #247Nodes events listener registration API(AppAPI 2.5.0+). #249Incorrect Display name when creating user, which led to the parameter being ignored. #239 Thanks to @derekbuckley
Display name when creating user, which led to the parameter being ignored. #239 Thanks to @derekbuckleyUiActionFileInfo class marked as deprecated, instead ActionFileInfo class should be used.
Update with new features only for NextcloudApp class. #233
ex_app.get_computation_device function for retrieving GPU type(only with AppAPI 2.4.0+).ex_app.integration_fastapi.fetch_models_task are now public function, added progress_init_start_value param.request.scope["username"] for easy use.UiActionFileInfo class marked as deprecated, instead ActionFileInfo class should be used.Files: lock and unlock methods, lock file information to FsNode. #227
lock and unlock methods, lock file information to FsNode. #227MachineTranslation provider registration - added optional actionDetectLang param. #229NextcloudApp: set_handlers: models_to_fetch can now accept direct links to a files to download. #217
set_handlers: models_to_fetch can now accept direct links to a files to download. #21729. #2222.0.3 #216set_handlers rework of optional parameters see PR for information. #226class Share.raw_data marked as deprecated and changed to _raw_data. #206
Share: added missing file_source_id, can_edit, can_delete properties. #206AppAPIAuthMiddleware for easy cover all endpoints. #205MachineTranslation providers(avalaible from Nextcloud 29). #207AppAPI 2.0, see PR for description. #212Share.raw_data marked as deprecated and changed to _raw_data. #206ex_app.talk_bot_app/ex_app.atalk_bot_app renamed to ex_app.talk_bot_msg/ex_app.atalk_bot_msg.download_log method to download nextcloud.log. #199
download_log method to download nextcloud.log. #199Speech to Text providers(avalaible from Nextcloud 29). #196Text Processing providers(avalaible from Nextcloud 29). #198get_model_path wrapper around huggingface_hub:snapshot_download. #202HTTP 204 No Content status. #197files: proper url encoding of special chars in mkdir and delete methods. #191 Thanks to @tobenary
mkdir and delete methods. #191 Thanks to @tobenaryDAV methods. #194The ocs method is now public, making it easy to use Nextcloud OCS that has not yet been described. #187
ocs method is now public, making it easy to use Nextcloud OCS that has not yet been described. #187implemented AsyncNextcloud and AsyncNextcloudApp classes. #181
AsyncNextcloud and AsyncNextcloudApp classes. #181enabled_handler, heartbeat_handler, init_handler now can be async(Coroutines). #175 #181models_to_fetch and models_download_params united in one more flexible parameter. #184Ability to develop applications with UI, example of such app, support for all new stuff of AppAPI 1.4. #168
UI, example of such app, support for all new stuff of AppAPI 1.4. #168/init endpoint. #162move, copy, trashbin_restore correctly set utf-8 headers. #157 Thanks to @tschechniker
move, copy, trashbin_restore correctly set utf-8 headers. #157 Thanks to @tschechnikerupload_stream correctly set utf-8 headers. #159headers can now be httpx.Headers and not only dict. #158The examples now use FastAPIs lifespan instead of the deprecated on_event.
/init AppAPI endpoint and the ability to automatically load models from huggingface. #151lifespan instead of the deprecated on_event.As the project moves closer to beta, final unification changes are being made. This release contains some breaking changes in users, notifications API…
As the project moves closer to beta, final unification changes are being made.
This release contains some breaking changes in users, notifications API.
get_avatar). #149__repr__ method added for most objects(previously it was only present for FsNode). #147users.get_details renamed to get_user and returns a class instead of a dictionary. #145displayname in users.create renamed to display_name.apps.ExAppInfo class has been rewritten in the same format as all the others. #146notifications.Notification class has been rewritten in the same format as all the others.users.get_details with empty parameter in some cases was raised exception.user id, and most API failed with 404. #148CalendarAPI with the help of caldav package. #136
send_file to easy send FsNode to Talk chat.
send_file to easy send FsNode to Talk chat.receive_messages can return the TalkFileMessage subclass of usual TalkMessage with additional functionality.ex_app.verify_version function to simply check whether the application has been updated.info.xml in examples to reflect upcoming changes in the AppStoreFilesAPI: Chunked v2 upload support, enabled by default.
chunked v2 upload if there is a need for that: CHUNKED_UPLOAD_V2chunk_size argument is now 5Mb instead of 4Mb.NextcloudApp: ex_app.persistent_storage function that returns path for the Application persistent storage.
ex_app.persistent_storage function that returns path for the Application persistent storage.from nc_py_api.ex_app import persist_transformers_cache - automatic use of persistent app directory for the AI models caching.FilesAPI: FsNode.info added mimetype property.
FsNode.info added mimetype property.ActivityAPI: get_filters and get_activities. #112
get_filters and get_activities. #112tags support. #115listfav method, use new more powerful list_by_criteria method. #115NotificationInfo.time - was always incorrectly parsed and equal to datetime(1970,1,1)Basic APIs for Nextcloud Talk(Part 2) #111
makedirs correctly work with paths started with /listdir correctly handles exclude_self=True when input path starts with /File Versions API: get_versions and restore_version.
trashbin_listtrashbin_restoretrashbin_deletetrashbin_cleanupget_versions and restore_version.FsNode from UiActionFileInfo now have the file_id with the NC instance ID as from the DAV requests.Nextcloud Talk API for bots + example
Basic APIs for Nextcloud Talk(Part 1)
require_capabilities/check_capabilities can accept value with dot: like files_sharing.api_enabled and check for sub-values.Files) again.options.NPA_NC_CERT bug, when setting throw .env file.FsNode can be created from Nextcloud UiActionFileInfo reply.
FsNode can be created from Nextcloud UiActionFileInfo reply.files.find error when searching by "name". Thanks to @CooperGermanNextcloud.response_headers property, to get headers from last response.
Nextcloud.response_headers property, to get headers from last response.options error when setting timeouts with the .env file.
Share API.options error when setting timeouts with the .env file.share_with parameter.APIs for enabling\disabling External Applications.
download_directory_as_zip method.options now independent in each Nextcloud class. They can be specified in kwargs, environment or .env files.
Notifications APIoptions now independent in each Nextcloud class. They can be specified in kwargs, environment or .env files.hatching as a build system, now correct install optional dependencies.shadowing a Python builtins. Enabled additional Ruff linters checks.user, file related stuff with file, UI stuff with gui.Reworked User Status API, Users Group API
User Status API, Users Group APIweather_status.get_locationFiles API: mkdir, upload, copy, move return new FsNode objectlistdir: added depth parameterFsNode: changed info from TypedDict to dataclass, correct fields names with correct descriptions.FsNode now allows comparison for equality.Updated documentation, description.
Files Sharing APIs.FsNode class with properties for parsing permissions.apps.ex_app_get_list and apps.ex_app_get_info methods.
VERIFY_NC_CERTIFICATE option.apps.ex_app_get_list and apps.ex_app_get_info methods.files.download2stream and files.upload_stream methods.FileAPI can accept FsNode as a path.BSD-3 Clausenextcloud_url can contain / at the end.
nextcloud_url can contain / at the end.logs during enable/disable events.Your coding agent can read these notes before it upgrades. Set up the MCP server →