{"id":15442893,"url":"https://github.com/m0mosenpai/malupdate","last_synced_at":"2025-07-30T23:37:32.846Z","repository":{"id":57439409,"uuid":"260461551","full_name":"m0mosenpai/malupdate","owner":"m0mosenpai","description":"Unofficial Python client wrapper of MyAnimeList API v2","archived":false,"fork":false,"pushed_at":"2020-07-17T12:11:23.000Z","size":32,"stargazers_count":6,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-21T16:59:36.771Z","etag":null,"topics":["anime","api-client","myanimelist","myanimelist-api","python3","rest-client","wrapper","wrapper-api"],"latest_commit_sha":null,"homepage":"","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/m0mosenpai.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}},"created_at":"2020-05-01T13:08:19.000Z","updated_at":"2021-07-02T07:26:09.000Z","dependencies_parsed_at":"2022-09-26T17:11:39.929Z","dependency_job_id":null,"html_url":"https://github.com/m0mosenpai/malupdate","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/m0mosenpai/malupdate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m0mosenpai%2Fmalupdate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m0mosenpai%2Fmalupdate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m0mosenpai%2Fmalupdate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m0mosenpai%2Fmalupdate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/m0mosenpai","download_url":"https://codeload.github.com/m0mosenpai/malupdate/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m0mosenpai%2Fmalupdate/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267960953,"owners_count":24172513,"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","status":"online","status_checked_at":"2025-07-30T02:00:09.044Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["anime","api-client","myanimelist","myanimelist-api","python3","rest-client","wrapper","wrapper-api"],"created_at":"2024-10-01T19:31:16.941Z","updated_at":"2025-07-30T23:37:32.823Z","avatar_url":"https://github.com/m0mosenpai.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# malupdate\nUnofficial Python client wrapper for v2 MyAnimeList API using the Unoffical Specification of the Official API by \u003cbr\u003e\nhttps://github.com/SuperMarcus/myanimelist-api-specification \u003cbr\u003e\n~~This is most likely temporary till the time I can get beta access to MAL's API or they release it to the public.~~ \u003cbr\u003e\nAs of July 2020, MAL has made their API public and any changes/updates done to this project from then on, will be in reference to the official documentation of the API.\n\n## Installation\nPyPi: https://pypi.org/project/malupdate/ \u003cbr\u003e\n`pip install malupdate`\n## Usage\n### `Class User`:\n* **`User.login(username, password):`** Takes in username and password of MAL account as arguments and returns a loginObject (dictionary) consisting of keys `access_token`, `expires_in`, `refresh_token`.\n\n* **`User.myInfo(Access_Token, [field_1, field_2, ...]):`** Returns User Profile information and statistics (if `anime_statistics` field is used as argument).\n\n* **`User.getAnimeList(Access_Token, type_of_list, [field_1, field_2, ....]):`** Takes the `access_token` from the loginObject, the type of list (`watching`/ `plan_to_watch`/ `completed`/ `on_hold`/ `dropped`) and one or more [fields](https://github.com/SuperMarcus/myanimelist-api-specification#response-objects) as a list. Returns a JSON object (dictionary) of shows in the list.\n\n* **`User.updateList(Access_Token, show_id, {field_1: val_1, field_2: val_2 ...}):`** Takes the `access_token` from the loginObject, `id` of the show to be updated, a list of [fields](https://github.com/SuperMarcus/myanimelist-api-specification#response-objects) which are to be updated and their corresponding new values in dictionary form. \u003cbr\u003e\nReturns a JSON object (dictionary) of user's list with updated values.\n\n* **`User.deleteItem(Access_Token, anime_id):`** Takes in `id` of an anime and removes it from the User's list.\n\n### `Class Anime`:\n* **`Anime.search(Access_Token, anime_name, [field_1, field_2, ...]):`** Takes the `access_token`, name of the anime and the [fields](https://github.com/SuperMarcus/myanimelist-api-specification#response-objects) to be displayed as arguments. Returns a JSON object (dictionary) of search results. \u003cbr\u003e\n\n* **`Anime.bySeason(Access_Token, year, season, [field_1, field_2, ...], sort=\"\", limit=100, offset=0, nsfw=False):`** Takes year and season (`winter`/ `spring`/ `summer` /`fall`) as required arguments and returns a JSON object of the anime list. List can be sorted based on `anime_score` or `anime_num_list_users` in descending. By default, NSFW results are filtered out but can be enabled by setting `nsfw` parameter as `True`.\n\n* **`Anime.byRanking(Access_Token, ranking_type, [field_1, field_2, ...], limit=100, offset=0, nsfw=False):`** Takes in a `ranking_type` (`all`/ `airing`/ `upcoming`/ `tv`/ `ova`/ `movie`/ `special`/ `bypopularity`/ `favorite`) and returns a JSON object of the anime list. NSFW can be turned on with `nsfw` parameter set to `True`.\n\n## Things to Improve\n* Better support for pagination.\n* Possible design changes to make it more developer friendly.\n\n## Projects that use malupdate\n* [Umaru-chan](https://github.com/m0mosenpai/Umaru-chan)\n\n## License\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm0mosenpai%2Fmalupdate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fm0mosenpai%2Fmalupdate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm0mosenpai%2Fmalupdate/lists"}