Metadata-Version: 2.1
Name: restocks-api-wrapper
Version: 0.1.1
Summary: A unofficial Python wrapper for the Restocks API
Home-page: https://github.com/AkiLetschne/restocks_api_wrapper
Author: AkiLetschne
License: MIT
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: Unix
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: Microsoft :: Windows
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: requests
Requires-Dist: lxml

# Restocks.net API Wrapper

## Overview
The `restocks_api_wrapper` is an **unofficial** wrapper for the api of the sneaker platform restocks.net. It allows you to get information about products, but also to manage your sales. There is no connection to restocks, this is a private project.

## Installation

Install the package using pip:

```bash
pip install restocks-api-wrapper
```
Ensure that you are using Python 3.11 or higher, as this is the minimum version required for this package.

## Functions

| Function Name         | Description                                         | Login Required |
|-----------------------|-----------------------------------------------------|----------------|
| `search_product`      | Searches for a product by SKU or name.              | No             |
| `get_product_info`    | Retrieves detailed information about a product.     | No             |
| `get_size_id`         | Fetches the size ID for a given product and size.   | No             |
| `get_sku_from_id`     | Retrieves the SKU for a product based on its ID.    | No             |
| `get_payout`          | Calculates the expected payout for a listing.       | No             |
| `login`               | Authenticates the user with email and password.     | No             |
| `check_login`         | Checks if the user is logged in.                    | Yes            |
| `get_current_listings`| Retrieves current product listings.                 | Yes            |
| `get_history_sales`   | Fetches historical sales data.                      | Yes            |
| `get_current_sales`   | Fetches current sales data.                         | Yes            |
| `edit_listing`        | Edits the price of an existing listing.             | Yes            |
| `delete_listing`      | Deletes an existing listing.                        | Yes            |
| `list_product`        | Lists a new product for sale.                       | Yes            |
| `get_shipping_products` | Retrieves products that need shipping.            | Yes            |
| `download_label`      | Downloads the shipping label for a product.         | Yes            |
| `check_consign_status`| Checks the consignment status of the user.          | Yes            |

## Usage Example

```python
from restocks_client.client import RestocksClient
from restocks_client.filters import SellMethod, ListingDuration

# Initialize the RestocksClient with login credentials and proxy list.
client = RestocksClient(
    proxy_list=[
        "proxy1:port:username:password",
        "proxy2:port:username:password",
        # ... (Add more proxies as needed)
    ]
)

# Fetch information about a product using its SKU.
product_info = client.get_product_info(slug=client.search_product(sku='DD1391-100').slug)

# set login data
client.email = 'your_email@example.com',
client.password = 'your_password',

# Authenticate and login.
client.login()

# Retrieve current listings with a specific sell method.
current_listings = client.get_current_listings(sell_method=SellMethod.Resell)

# List a product for sale on the platform.
client.list_product(
    product=client.search_product(sku='DD1391-100'),
    size='36',
    sell_method=SellMethod.Resell,
    duration=ListingDuration.Days90,
    store_price=900
)

# Example of working with listings.
listing = current_listings[1]
client.edit_listing(listing_id=listing.listing_id, new_price=500)

for listing in current_listings:
    client.delete_listing(listing.listing_id)
```

## Note
I recommend the use of proxies, which can be specified as a list as shown in the example. The format `hostname:port:username:password` is used for this. The use of proxies helps to avoid blocks of restocks. If no proxy list is given, the localhost is used by default.

## Credits

This project was inspired by the structure of [ssbanjo's Restocks-client](https://github.com/ssbanjo/Restocks-client). While `restocks_api_wrapper` is a completely independent and updated implementation, the design and workflow provided a starting point for development. Many thanks to the original author for their work.

