https://github.com/leonardodalinky/pywmapi
π₯ API for warframe market, implemented in Python.
https://github.com/leonardodalinky/pywmapi
python warframe warframe-market
Last synced: about 1 year ago
JSON representation
π₯ API for warframe market, implemented in Python.
- Host: GitHub
- URL: https://github.com/leonardodalinky/pywmapi
- Owner: leonardodalinky
- License: mit
- Created: 2022-01-27T06:41:43.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2025-03-06T05:50:10.000Z (over 1 year ago)
- Last Synced: 2025-04-02T04:08:53.970Z (about 1 year ago)
- Topics: python, warframe, warframe-market
- Language: Python
- Homepage:
- Size: 83 KB
- Stars: 32
- Watchers: 2
- Forks: 8
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# pywmapi
[](https://github.com/leonardodalinky/pywmapi/tree/main)
[](https://pypi.org/project/pywmapi/)

[](https://github.com/leonardodalinky/pywmapi/blob/main/LICENSE)
[](https://github.com/leonardodalinky/pywmapi)
**PY**thon **W**arframe **M**arket **API**(pywmapi)
π₯ API for warframe market, implemented in Python.
> *"Thank you tinsuit, a fine trade. Transaction complete, haha!" -- Maroo*
For now, the implemented function is listed below:
* auth
* β
sign in
* π register
* π restore password
* profile
* β
get current user's profile
* π² manage current user profile
* β
get a user's profile
* π² get all of a user's achievements
* π² get all of a user's reviews
* β
set current user's online/offline status
* items
* β
list all tradable items
* β
get info about an item
* statistics
* β
get statistics of an item
* π² get global market statistics
* orders
* β
get orders of a single item
* π² get orders for the last 4 hours
* β
update a single order on the current profile
* β
delete a single order on the current profile
* β
add a new order for the current profile
* π² get user's sale statistics(closed orders)
* β
get all of a user's orders
* liches
* β
list all lich weapons
* β
list all lich ephemeras
* β
list all lich quirks
* rivens
* β
list all riven items
* β
get a list of riven attributes
* misc
* π² get a list of all known game locations
* π² get a list of all known npcs
* π² get a list of all known missions
* auctions
* β
create auction β οΈ
* π² get a list of riven auctions by given search params
* π² get a list of lich auctions by given search params
* auction entryοΈ
* π² get info about auction by auction id
* π² get auction bids by auction id
Symbols:
* β
: implemented
* π: unavailable due to some intractable problem
* π²: not implemented yet
* β οΈ: *experimental* and unstable
There 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.
**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.**
## Installation
```
pip install pywmapi
```
The version of Python **MUST >= 3.7** since `dataclasses` is used.
## Guidance
package of pywmapi is structured as:
```
.
βββ auth
βββ common
βββ exceptions
βββ experimental
β βββ auctions
βββ items
βββ lang
βββ liches
βββ orders
βββ profile
βββ rivens
βββ statistics
βββ utils.py
```
* `auth`: authentication such as signin
* `experimental`: experimental functionalities
* `auctions`: auctions related
* `items`: item related
* `liches` lich related
* `orders`: orders manipulation
* `profile`: user profile manipulation
* `rivens`: riven related
* `statistics`: statistics of items
πͺ *More functionalities is coming!*
ποΈ *Better documentation is under construction!*
The 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`!
Another way to get `url_name` for an item is through the `items.list_items()` function.
### Examples
First, we import the package as:
```python
import pywmapi as wm
```
To list all of the tradable items:
```python
wm.items.list_items()
```
To get the info for any item with its `url_name`:
```python
wm.items.get_item("chroma_prime_systems")
```
To get the orders of a specific item:
```python
wm.items.get_orders("chroma_prime_systems")
```
To create order:
```python
sess = wm.auth.signin("your_account", "your_password")
# new selling order item of "Flame Gland" for 1000 platinum, quantity 1, rank 0 and invisible
new_item = wm.orders.OrderNewItem(
item_id="5be5f5a23ffcc7038857f119",
order_type=wm.common.OrderType.sell,
platinum=1000,
quantity=1,
rank=0,
visible=False,
)
new_order = wm.orders.add_order(sess, new_item)
```
To get the statistics of historical prices of any item:
```python
wm.statistics.get_statistic("chroma_prime_systems")
```
Signin & get current orders:
```python
sess = wm.auth.signin("your_account", "your_password")
sell_orders, buy_orders = wm.orders.get_current_orders(sess)
```
To get all rivens templates:
```python
wm.rivens.list_items()
```
Some of these function may have various optional params, such as `platform`, `lang`, `include`, etc.
More APIs and docs could be found in corresponding packages and docstrings.
## Reference
[Warframe market official API documentation](https://warframe.market/api_docs)
[WFCD/market-api-spec](https://github.com/WFCD/market-api-spec)
[Public WM API](https://docs.google.com/document/d/1121cjBNN4BeZdMBGil6Qbuqse-sWpEXPpitQH5fb_Fo)
## Changelog
See [CHANGELOG.md](CHANGELOG.md).
## Contributing
Check out [CONTRIBUTE.md](CONTRIBUTE.md) for more information.
Feel free to make any issue or PR! π
*Or contact me in game!*
## Donating
Any sort of donation in game would be appreciated.
Contact me in game:
```
/w AyajiLin Hi! ${Your words here}.
```
π€£ *Relics or 5 platinums would be enough.*