{"id":15655625,"url":"https://github.com/leonardodalinky/pywmapi","last_synced_at":"2025-04-09T07:07:37.101Z","repository":{"id":43354253,"uuid":"452569300","full_name":"leonardodalinky/pywmapi","owner":"leonardodalinky","description":"🔥 API for warframe market, implemented in Python.","archived":false,"fork":false,"pushed_at":"2025-03-06T05:50:10.000Z","size":85,"stargazers_count":32,"open_issues_count":0,"forks_count":8,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-02T04:08:53.970Z","etag":null,"topics":["python","warframe","warframe-market"],"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/leonardodalinky.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2022-01-27T06:41:43.000Z","updated_at":"2025-03-16T07:18:31.000Z","dependencies_parsed_at":"2024-10-23T04:58:38.558Z","dependency_job_id":"3caa813c-6e63-4f81-860e-a905d0adce6e","html_url":"https://github.com/leonardodalinky/pywmapi","commit_stats":{"total_commits":32,"total_committers":6,"mean_commits":5.333333333333333,"dds":0.40625,"last_synced_commit":"2a4f8bc66230c2f35438c73e402a2673cb8e53c8"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leonardodalinky%2Fpywmapi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leonardodalinky%2Fpywmapi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leonardodalinky%2Fpywmapi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leonardodalinky%2Fpywmapi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leonardodalinky","download_url":"https://codeload.github.com/leonardodalinky/pywmapi/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247994121,"owners_count":21030050,"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":["python","warframe","warframe-market"],"created_at":"2024-10-03T13:00:05.876Z","updated_at":"2025-04-09T07:07:37.061Z","avatar_url":"https://github.com/leonardodalinky.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pywmapi\n\n[![github action packaging test badge](https://img.shields.io/github/actions/workflow/status/leonardodalinky/pywmapi/python-package-test-main.yml?branch=main)](https://github.com/leonardodalinky/pywmapi/tree/main)\n[![pypi package version badge](https://img.shields.io/pypi/v/pywmapi)](https://pypi.org/project/pywmapi/)\n![python version badge](https://img.shields.io/badge/python-%3E%3D3.7-blue)\n[![license badge](https://img.shields.io/github/license/leonardodalinky/pywmapi)](https://github.com/leonardodalinky/pywmapi/blob/main/LICENSE)\n[![star badge](https://img.shields.io/github/stars/leonardodalinky/pywmapi?style=social)](https://github.com/leonardodalinky/pywmapi)\n\n\n**PY**thon **W**arframe **M**arket **API**(pywmapi)\n\n🔥 API for warframe market, implemented in Python.\n\n\u003e *\"Thank you tinsuit, a fine trade. Transaction complete, haha!\" -- Maroo*\n\nFor now, the implemented function is listed below:\n\n* auth\n  * ✅ sign in\n  * 🆖 register\n  * 🆖 restore password\n* profile\n  * ✅ get current user's profile\n  * 🔲 manage current user profile\n  * ✅ get a user's profile\n  * 🔲 get all of a user's achievements\n  * 🔲 get all of a user's reviews\n  * ✅ set current user's online/offline status\n* items\n  * ✅ list all tradable items\n  * ✅ get info about an item\n* statistics\n  * ✅ get statistics of an item\n  * 🔲 get global market statistics\n* orders\n  * ✅ get orders of a single item\n  * 🔲 get orders for the last 4 hours\n  * ✅ update a single order on the current profile\n  * ✅ delete a single order on the current profile\n  * ✅ add a new order for the current profile\n  * 🔲 get user's sale statistics(closed orders)\n  * ✅ get all of a user's orders\n* liches\n  * ✅ list all lich weapons\n  * ✅ list all lich ephemeras\n  * ✅ list all lich quirks\n* rivens\n  * ✅ list all riven items\n  * ✅ get a list of riven attributes\n* misc\n  * 🔲 get a list of all known game locations\n  * 🔲 get a list of all known npcs\n  * 🔲 get a list of all known missions\n* auctions\n  * ✅ create auction ⚠️\n  * 🔲 get a list of riven auctions by given search params\n  * 🔲 get a list of lich auctions by given search params\n* auction entry️\n  * 🔲 get info about auction by auction id\n  * 🔲 get auction bids by auction id\n\nSymbols:\n* ✅: implemented\n* 🆖: unavailable due to some intractable problem\n* 🔲: not implemented yet\n* ⚠️: *experimental* and unstable\n\nThere are more APIs that are not recorded in the official documentation. Once all the above APIs are done, we would get on these undocumented APIs ASAP.\n\n**According to the official API documentation, there's a limit on the API that could only be called 3 times per sec. Otherwise, the request may be blocked by the cloudflare.**\n\n## Installation\n\n```\npip install pywmapi\n```\n\nThe version of Python **MUST \u003e= 3.7** since `dataclasses` is used.\n\n## Guidance\n\npackage of pywmapi is structured as:\n```\n.\n├── auth\n├── common\n├── exceptions\n├── experimental\n│   └── auctions\n├── items\n├── lang\n├── liches\n├── orders\n├── profile\n├── rivens\n├── statistics\n└── utils.py\n```\n\n* `auth`: authentication such as signin\n* `experimental`: experimental functionalities\n  * `auctions`: auctions related\n* `items`: item related\n* `liches` lich related\n* `orders`: orders manipulation\n* `profile`: user profile manipulation\n* `rivens`: riven related\n* `statistics`: statistics of items\n\n💪 *More functionalities is coming!*\n\n🏗️ *Better documentation is under construction!*\n\nThe param `url_name` of some functions is regarded as the unique name for each item. For instance, if I search for the item *Chroma Prime Systems* on warframe market, the url for this page become *https://warframe.market/items/chroma_prime_systems*. And the last part of this url string is exactly the `url_name` for this item, i.e. `chroma_prime_systems`!\n\nAnother way to get `url_name` for an item is through the `items.list_items()` function.\n\n### Examples\n\nFirst, we import the package as:\n```python\nimport pywmapi as wm\n```\n\nTo list all of the tradable items:\n```python\nwm.items.list_items()\n```\n\nTo get the info for any item with its `url_name`:\n```python\nwm.items.get_item(\"chroma_prime_systems\")\n```\n\nTo get the orders of a specific item:\n```python\nwm.items.get_orders(\"chroma_prime_systems\")\n```\n\nTo create order:\n```python\nsess = wm.auth.signin(\"your_account\", \"your_password\")\n# new selling order item of \"Flame Gland\" for 1000 platinum, quantity 1, rank 0 and invisible\nnew_item = wm.orders.OrderNewItem(\n    item_id=\"5be5f5a23ffcc7038857f119\",\n    order_type=wm.common.OrderType.sell,\n    platinum=1000,\n    quantity=1,\n    rank=0,\n    visible=False,\n)\nnew_order = wm.orders.add_order(sess, new_item)\n```\n\nTo get the statistics of historical prices of any item:\n```python\nwm.statistics.get_statistic(\"chroma_prime_systems\")\n```\n\nSignin \u0026 get current orders:\n```python\nsess = wm.auth.signin(\"your_account\", \"your_password\")\nsell_orders, buy_orders = wm.orders.get_current_orders(sess)\n```\n\nTo get all rivens templates:\n```python\nwm.rivens.list_items()\n```\n\nSome of these function may have various optional params, such as `platform`, `lang`, `include`, etc.\n\nMore APIs and docs could be found in corresponding packages and docstrings.\n\n## Reference\n\n[Warframe market official API documentation](https://warframe.market/api_docs)\n\n[WFCD/market-api-spec](https://github.com/WFCD/market-api-spec)\n\n[Public WM API](https://docs.google.com/document/d/1121cjBNN4BeZdMBGil6Qbuqse-sWpEXPpitQH5fb_Fo)\n\n## Changelog\n\nSee [CHANGELOG.md](CHANGELOG.md).\n\n## Contributing\nCheck out [CONTRIBUTE.md](CONTRIBUTE.md) for more information.\n\nFeel free to make any issue or PR! 😊\n\n*Or contact me in game!*\n\n## Donating\n\nAny sort of donation in game would be appreciated.\n\nContact me in game:\n```\n/w AyajiLin Hi! ${Your words here}.\n```\n\n🤣 *Relics or 5 platinums would be enough.*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleonardodalinky%2Fpywmapi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleonardodalinky%2Fpywmapi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleonardodalinky%2Fpywmapi/lists"}