{"id":15174271,"url":"https://github.com/cloud-py-api/nc_py_api","last_synced_at":"2026-01-17T23:32:05.053Z","repository":{"id":176869603,"uuid":"656168967","full_name":"cloud-py-api/nc_py_api","owner":"cloud-py-api","description":"Nextcloud Python Framework","archived":false,"fork":false,"pushed_at":"2026-01-15T16:15:45.000Z","size":6340,"stargazers_count":139,"open_issues_count":16,"forks_count":13,"subscribers_count":7,"default_branch":"main","last_synced_at":"2026-01-15T19:35:14.008Z","etag":null,"topics":["app","async","nextcloud","python"],"latest_commit_sha":null,"homepage":"https://cloud-py-api.github.io/nc_py_api/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cloud-py-api.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-06-20T11:45:54.000Z","updated_at":"2026-01-15T16:14:53.000Z","dependencies_parsed_at":"2023-12-31T14:28:58.280Z","dependency_job_id":"a24c04f6-66aa-4273-8086-d09b7c4e7b1b","html_url":"https://github.com/cloud-py-api/nc_py_api","commit_stats":{"total_commits":375,"total_committers":11,"mean_commits":34.09090909090909,"dds":0.4933333333333333,"last_synced_commit":"6bd0553cae1cdf852f99d715ac7d1aeb1be59b39"},"previous_names":["cloud-py-api/nc_py_api"],"tags_count":56,"template":false,"template_full_name":null,"purl":"pkg:github/cloud-py-api/nc_py_api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloud-py-api%2Fnc_py_api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloud-py-api%2Fnc_py_api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloud-py-api%2Fnc_py_api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloud-py-api%2Fnc_py_api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cloud-py-api","download_url":"https://codeload.github.com/cloud-py-api/nc_py_api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloud-py-api%2Fnc_py_api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28522306,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T22:11:28.393Z","status":"ssl_error","status_checked_at":"2026-01-17T22:11:27.841Z","response_time":85,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["app","async","nextcloud","python"],"created_at":"2024-09-27T11:42:27.799Z","updated_at":"2026-01-17T23:32:05.022Z","avatar_url":"https://github.com/cloud-py-api.png","language":"Python","readme":"\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/cloud-py-api/nc_py_api/main/docs/resources/nc_py_api_logo.png\" width=\"250\" alt=\"NcPyApi logo\"\u003e\n\u003c/p\u003e\n\n# Nextcloud Python Framework\n\n[![Analysis \u0026 Coverage](https://github.com/cloud-py-api/nc_py_api/actions/workflows/analysis-coverage.yml/badge.svg)](https://github.com/cloud-py-api/nc_py_api/actions/workflows/analysis-coverage.yml)\n[![Docs](https://github.com/cloud-py-api/nc_py_api/actions/workflows/docs.yml/badge.svg)](https://cloud-py-api.github.io/nc_py_api/)\n[![codecov](https://codecov.io/github/cloud-py-api/nc_py_api/branch/main/graph/badge.svg?token=C91PL3FYDQ)](https://codecov.io/github/cloud-py-api/nc_py_api)\n\n![NextcloudVersion](https://img.shields.io/badge/Nextcloud-%2028%20%7C%2029%20%7C%2030%20%7C%2031-blue)\n![PythonVersion](https://img.shields.io/badge/python-3.10%20%7C%203.11%20%7C%203.12-blue)\n![impl](https://img.shields.io/pypi/implementation/nc_py_api)\n![pypi](https://img.shields.io/pypi/v/nc_py_api.svg)\n\nPython library that provides a robust and well-documented API that allows developers to interact with and extend Nextcloud's functionality.\n\n### The key features are:\n\n * **Fast**: High performance, and as low-latency as possible.\n * **Intuitive**: Fast to code, easy to use.\n * **Reliable**: Minimum number of incompatible changes.\n * **Robust**: All code is covered with tests as much as possible.\n * **Easy**: Designed to be easy to use with excellent documentation.\n * **Sync + Async**: Provides both sync and async APIs.\n\n### Differences between the Nextcloud and NextcloudApp classes\n\nThe **Nextcloud** class functions as a standard Nextcloud client,\nenabling you to make API requests using a username and password.\n\nOn the other hand, the **NextcloudApp** class is designed for creating applications for Nextcloud.\u003cbr\u003e\nIt uses [AppAPI](https://github.com/cloud-py-api/app_api) to provide additional functionality allowing\napplications have their own graphical interface, fulfill requests from different users,\nand everything else that is necessary to implement full-fledged applications.\n\nBoth classes offer most of the same APIs,\nbut NextcloudApp has a broader selection since applications typically require access to more APIs.\n\nAny code written for the Nextcloud class can easily be adapted for use with the NextcloudApp class,\nas long as it doesn't involve calls that require user password verification.\n\n### Nextcloud skeleton app in Python\n\n```python3\nfrom contextlib import asynccontextmanager\n\nfrom fastapi import FastAPI\n\nfrom nc_py_api import NextcloudApp\nfrom nc_py_api.ex_app import AppAPIAuthMiddleware, LogLvl, run_app, set_handlers\n\n\n@asynccontextmanager\nasync def lifespan(app: FastAPI):\n    set_handlers(app, enabled_handler)\n    yield\n\n\nAPP = FastAPI(lifespan=lifespan)\nAPP.add_middleware(AppAPIAuthMiddleware)\n\n\ndef enabled_handler(enabled: bool, nc: NextcloudApp) -\u003e str:\n    if enabled:\n        nc.log(LogLvl.WARNING, \"Hello from nc_py_api.\")\n    else:\n        nc.log(LogLvl.WARNING, \"Bye bye from nc_py_api.\")\n    return \"\"\n\n\nif __name__ == \"__main__\":\n    run_app(\"main:APP\", log_level=\"trace\")\n```\n\n### Support\n\nYou can support us in several ways:\n\n- ⭐️ Star our work (it really motivates)\n- ❗️ Create an Issue or feature request (bring to us an excellent idea)\n- 💁 Resolve some Issue or create a Pull Request (contribute to this project)\n- 🙏 Write an example of its use or correct a typo in the documentation.\n\n## More Information\n\n- [Documentation](https://cloud-py-api.github.io/nc_py_api/)\n  - [First steps](https://cloud-py-api.github.io/nc_py_api/FirstSteps.html)\n  - [More APIs](https://cloud-py-api.github.io/nc_py_api/MoreAPIs.html)\n  - [Writing a simple Nextcloud Application](https://cloud-py-api.github.io/nc_py_api/NextcloudApp.html)\n  - [Using Nextcloud Talk Bot API in Application](https://cloud-py-api.github.io/nc_py_api/NextcloudTalkBot.html)\n  - [Using Language Models In Application](https://cloud-py-api.github.io/nc_py_api/NextcloudTalkBotTransformers.html)\n  - [Writing a Nextcloud System Application](https://cloud-py-api.github.io/nc_py_api/NextcloudSysApp.html)\n- [Examples](https://github.com/cloud-py-api/nc_py_api/tree/main/examples)\n- [Contribute](https://github.com/cloud-py-api/nc_py_api/blob/main/.github/CONTRIBUTING.md)\n  - [Discussions](https://github.com/cloud-py-api/nc_py_api/discussions)\n  - [Issues](https://github.com/cloud-py-api/nc_py_api/issues)\n  - [Setting up dev environment](https://cloud-py-api.github.io/nc_py_api/DevSetup.html)\n- [Changelog](https://github.com/cloud-py-api/nc_py_api/blob/main/CHANGELOG.md)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloud-py-api%2Fnc_py_api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcloud-py-api%2Fnc_py_api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloud-py-api%2Fnc_py_api/lists"}