{"id":30653016,"url":"https://github.com/retroachievements/api-python","last_synced_at":"2025-08-31T07:34:10.364Z","repository":{"id":224368992,"uuid":"763072448","full_name":"RetroAchievements/api-python","owner":"RetroAchievements","description":null,"archived":false,"fork":false,"pushed_at":"2024-07-19T01:16:12.000Z","size":5,"stargazers_count":5,"open_issues_count":3,"forks_count":5,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-08-31T07:34:03.199Z","etag":null,"topics":["achievements","python","retroachievements","retroachievements-api"],"latest_commit_sha":null,"homepage":"https://api-docs.retroachievements.org","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/RetroAchievements.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-02-25T13:43:52.000Z","updated_at":"2025-07-05T23:08:52.000Z","dependencies_parsed_at":"2024-02-25T15:45:47.558Z","dependency_job_id":"55ba5426-2c79-4cab-8dea-3259a50b0927","html_url":"https://github.com/RetroAchievements/api-python","commit_stats":null,"previous_names":["retroachievements/api-python"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/RetroAchievements/api-python","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RetroAchievements%2Fapi-python","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RetroAchievements%2Fapi-python/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RetroAchievements%2Fapi-python/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RetroAchievements%2Fapi-python/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RetroAchievements","download_url":"https://codeload.github.com/RetroAchievements/api-python/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RetroAchievements%2Fapi-python/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272953908,"owners_count":25021133,"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-08-31T02:00:09.071Z","response_time":79,"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":["achievements","python","retroachievements","retroachievements-api"],"created_at":"2025-08-31T07:34:09.457Z","updated_at":"2025-08-31T07:34:10.317Z","avatar_url":"https://github.com/RetroAchievements.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\" dir=\"auto\"\u003e\u003ca href=\"https://retroachievements.org\" rel=\"nofollow\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/RetroAchievements/RAWeb/master/public/assets/images/ra-icon.webp\" width=\"200\" alt=\"RetroAchievements Logo\" style=\"max-width: 100%;\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eretroachievements-api\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ci\u003eA Python library that lets you get achievement, user, and game data from RetroAchievements.\u003c/i\u003e\n  \u003cbr /\u003e\u003cbr /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://api-docs.retroachievements.org/getting-started.html\"\u003e\u003cstrong\u003eDocumentation: Get Started\u003c/strong\u003e\u003c/a\u003e\n  \u003cbr /\u003e\n\u003c/p\u003e\n\n\u003chr /\u003e\n\n## Status\nThis library is currently a work in progress, endpoint and test coverage can be found below:\n\nℹ️ \u0026nbsp;Endpoint coverage: 8 of 30  \nℹ️ \u0026nbsp;Test coverage: 0 of 30\n\n## Features\n\n✅ \u0026nbsp;Officially-supported, aligns 1:1 with the RAWeb API.  \n✅ \u0026nbsp;Backwards-compatible, easy migration path to API v2.  \n✅ \u0026nbsp;Supports Python 3.11+.\n\n\u003chr /\u003e\n\n## Documentation\n\nLearn how to authenticate and start pulling data from RetroAchievements on our documentation website.\n\n- [Get started](https://api-docs.retroachievements.org/getting-started.html)\n- [Get a user's profile information](https://api-docs.retroachievements.org/v1/users/get-user-summary.html)\n- [Look up games a user has completed](https://api-docs.retroachievements.org/v1/users/get-user-completed-games.html)\n- [Get a game's metadata](https://api-docs.retroachievements.org/v1/games/get-game-extended.html)\n\n## Installation\n\nComing Soon\n## How to begin making API calls\n\nTo use any endpoint function in the API, you must first be authorized by RetroAchievements. Fortunately, this is a fairly straightforward process.\n\n1. Visit [your control panel](https://retroachievements.org/controlpanel.php) on the RA website.\n\n2. Find the \"Keys\" section on the page. Copy the web API key value. **Do not expose your API key anywhere publicly.**\n\n3. You can now create your authorization object using your web API key.\n\n```python\nfrom retroachievements import RAClient\n\nuserName = '\u003cyour username on RA\u003e'\nwebApiKey = '\u003cyour web API key\u003e'\n\nauth = RAClient(userName, webApiKey)\n```\n\n4. You now have all you need to use any function in the API. Each function takes this authorization object as its first argument. Here's an example:\n\n```python\nfrom retroachievements import getGame\n\n// This returns basic metadata about the game on this page:\n// https://retroachievements.org/game/14402\ngame = auth.getGame(14402);\n```\n\n## Contributing\n\nSee [Contribution Guidelines](CONTRIBUTING.md) and [Code of Conduct](CODE_OF_CONDUCT.md).\n\n## Security Vulnerabilities\n\nPlease review [our security policy](../../security/policy).\n\n## Credits\n\n- [All Contributors](../../contributors)\n\n## License\n\nMIT License (MIT). See [License File](LICENSE.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fretroachievements%2Fapi-python","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fretroachievements%2Fapi-python","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fretroachievements%2Fapi-python/lists"}