Metadata-Version: 2.4
Name: Sex_API
Version: 2.0
Summary: A Python API for the Porn Site Sex.com/pins
Author: Johannes Habel
Author-email: Johannes Habel <EchterAlsFake@proton.me>
License-Expression: LGPL-3.0-only
License-File: LICENSE
Classifier: Programming Language :: Python
Requires-Dist: eaf-base-api
Requires-Python: >=3.12
Project-URL: Homepage, https://github.com/EchterAlsFake/Sex_API
Description-Content-Type: text/markdown

<h1 align="center">Sex.com API</h1> 

<div align="center">
    <a href="https://pepy.tech/project/sex_api"><img src="https://static.pepy.tech/badge/sex_api" alt="Downloads"></a>
    <a href="https://github.com/EchterAlsFake/sex_api/workflows/"><img src="https://github.com/EchterAlsFake/sex_api/workflows/CodeQL/badge.svg" alt="CodeQL Analysis"/></a>
    <a href="https://echteralsfake.me/ci/Sex_API/badge.svg"><img src="https://echteralsfake.me/ci/Sex_API/badge.svg" alt="API Tests"/></a>
</div>

# Description
Sex API is a Python API dedicated to Sex.com/pins. It allows you to download Pins, fetch information about Pins, Users and Boards.
You can also perform a search with filters.

> [!IMPORTANT]
> The Sex API is in violation of the Terms of Services of Sex.com. Usage is on your own risk!
> This API is related to sex.com/pins. This API does NOT support downloading videos from Sex.com nor video clips from sex.com/pins.
> The Videos are DRM locked, and the video clips need Javascript to be loaded.

# Features
- Fetch Pin information
- Download Pins
- Fetch users
- Fetch Comments
- Fetch Boards
- Asynchronous

# Network Features
- HTTP 2.0 / HTTP 3.0
- Browser impersonation
- Custom JA3
- All proxy types
- Proxy authentication
- Speed Limit
- DNS over HTTPS

# Quickstart
### Have a look at the [Documentation](https://github.com/EchterAlsFake/API_Docs/blob/master/Porn_APIs/Sex_API.md) for more details

- Install the library with `pip install sex_api`
- Or with: `pip install git+https://github.com/EchterAlsFake/sex_api` for the latest fixes / features

```python
from sex_api import Client

async def do_something():
    
    client = Client()
    
    # Fetch a Pin
    pin = await client.get_pin("<URL>")
    await pin.download("<PATH (Directory)>")
    
    # Print some attributes:
    print(pin.name)
    print(pin.publish_date) # See Docs for more
    
    # Fetch a User:
    user = await client.get_user("URL")
    
    # Get users Pins:
    pins = user.get_pins()
    async for pin in pins:
        print(pin.name)
    
    pins_liked = user.get_liked_pins()
    
    async for pin in pins_liked:
        print(pin.name)
    
    async for pin in pins:
        pin.download("<path>") 
        # ....... 
        
    # The features are nearly endless. See Documentation for more :)
```

> [!NOTE]
> Sex API can also be run from the command line. Just execute: "sex_api -h" to get started.

# Changelog
See [Changelog](https://github.com/EchterAlsFake/sex_api/blob/master/README/Changelog.md) for more details.

# Support (Donations)
I am developing all my projects entirely for free. I do that because I have fun and I don't want
to charge 30€ like other people do.

However, if you find my work useful, please consider donating something. A tiny amount such as 1€
means a lot to me.

Paypal: https://paypal.me/EchterAlsFake
<br>XMR (Monero): `42XwGZYbSxpMvhn9eeP4DwMwZV91tQgAm3UQr6Zwb2wzBf5HcuZCHrsVxa4aV2jhP4gLHsWWELxSoNjfnkt4rMfDDwXy9jR`


# Contribution
Do you see any issues or having some feature requests? Simply open an Issue or talk
in the discussions.

Pull requests are also welcome.

# License
Licensed under the LGPLv3 License
<br>Copyright (C) 2023–2026 Johannes Habel
