{"id":15714573,"url":"https://github.com/hfaran/piazza-api","last_synced_at":"2025-05-15T17:05:50.452Z","repository":{"id":12465645,"uuid":"15130490","full_name":"hfaran/piazza-api","owner":"hfaran","description":"Unofficial Client for Piazza's Internal API","archived":false,"fork":false,"pushed_at":"2024-10-22T01:52:45.000Z","size":153,"stargazers_count":194,"open_issues_count":14,"forks_count":58,"subscribers_count":10,"default_branch":"develop","last_synced_at":"2025-04-07T23:04:38.428Z","etag":null,"topics":["api-client","piazza","piazza-api","python"],"latest_commit_sha":null,"homepage":"https://hfaran.github.io/posts/reverse-engineering-piazzas-api/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hfaran.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-12-12T08:20:26.000Z","updated_at":"2025-03-19T16:51:54.000Z","dependencies_parsed_at":"2024-06-06T08:26:45.024Z","dependency_job_id":"797da890-a7ff-40c3-82de-e84d63218533","html_url":"https://github.com/hfaran/piazza-api","commit_stats":{"total_commits":143,"total_committers":29,"mean_commits":4.931034482758621,"dds":0.7552447552447552,"last_synced_commit":"91fa5f6a85984a114e368b567575965ce35feda7"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hfaran%2Fpiazza-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hfaran%2Fpiazza-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hfaran%2Fpiazza-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hfaran%2Fpiazza-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hfaran","download_url":"https://codeload.github.com/hfaran/piazza-api/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254384988,"owners_count":22062422,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["api-client","piazza","piazza-api","python"],"created_at":"2024-10-03T21:38:31.521Z","updated_at":"2025-05-15T17:05:45.445Z","avatar_url":"https://github.com/hfaran.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# piazza-api\n\n[![PyPI version](https://badge.fury.io/py/piazza-api.png)](http://badge.fury.io/py/piazza-api)\n\nUnofficial Client for Piazza's Internal API\n\n\n## Usage\n\n```python\n\u003e\u003e\u003e from piazza_api import Piazza\n\u003e\u003e\u003e p = Piazza()\n\u003e\u003e\u003e p.user_login()\nEmail: ...\nPassword: ...\n\n\u003e\u003e\u003e user_profile = p.get_user_profile()\n\n\u003e\u003e\u003e eece210 = p.network(\"hl5qm84dl4t3x2\")\n\n\u003e\u003e\u003e eece210.get_post(100)\n...\n\n\u003e\u003e\u003e posts = eece210.iter_all_posts(limit=10)\n\u003e\u003e\u003e for post in posts:\n...     do_awesome_thing(post)\n\n\u003e\u003e\u003e users = eece210.get_users([\"userid1\", \"userid2\"])\n\u003e\u003e\u003e all_users = eece210.get_all_users()\n```\n\nAbove are some examples to get started; more in the documentation (which is coming soon; \nbut the code is all Sphinx-style documented and is fairly readable).\n\nYou can also use the \"internal\" PiazzaRPC class which maps more directly\nto Piazza's API itself but is not as nice and as intuitive to use as the\n`Piazza` class abstraction.\n\n```python\n\u003e\u003e\u003e from piazza_api.rpc import PiazzaRPC\n\u003e\u003e\u003e p = PiazzaRPC(\"hl5qm84dl4t3x2\")\n\u003e\u003e\u003e p.user_login()\nEmail: ...\nPassword: ...\n\u003e\u003e\u003e p.content_get(181)\n...\n\u003e\u003e\u003e p.add_students([\"student@example.com\", \"anotherStudent@example.com\"])\n...\n```\n\n\n## Installation\n\nYou've seen this before and you'll see it again.\n\n```bash\n# The easy way\npip install piazza-api\n```\n\n```bash\n# The developer way\ngit clone https://github.com/hfaran/piazza-api\ncd piazza-api\npython setup.py develop\n```\n\n```bash\n# The Docker way\ngit clone https://github.com/hfaran/piazza-api\ncd piazza-api\ndocker build -t piazza-api .\ndocker run -it piazza-api:latest\n```\n\n## Contribute\n\n* [Issue Tracker](https://github.com/hfaran/piazza-api/issues)\n* [Source Code](https://github.com/hfaran/piazza-api)\n\n\n## License\n\nThis project is licensed under the MIT License.\n\n\n## Disclaimer\n\nThis is not an official API. I am not affiliated with Piazza Technologies Inc. \nin any way, and am not responsible for any damage that could be done with it. \nUse it at your own risk.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhfaran%2Fpiazza-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhfaran%2Fpiazza-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhfaran%2Fpiazza-api/lists"}