Skip to main content

Python client for the Spliit expense sharing application API. Fork of guysoft/SpliitApi.

Project description

Spliit API Client

A Python client for interacting with the Spliit expense sharing application API.

This project is a fork of guysoft/SpliitApi, with additional features and improvements.

Installation

pip install spliit-api-client

Usage

from spliit.client import Spliit
from spliit.utils import SplitMode

# Initialize the client with your group ID
client = Spliit(group_id="your_group_id")

# Get group details
group = client.get_group()
print(f"Group: {group['name']}")

# Get participants
participants = client.get_participants()
print("Participants:", participants)

# Add an expense with even split (default)
expense = client.add_expense(
    title="Dinner",
    paid_by="participant_id",  # ID of the person who paid
    paid_for=[
        ("participant1_id", 1),  # Share values are ignored in EVENLY mode
        ("participant2_id", 1),
    ],
    amount=5000,  # $50.00 in cents
    notes="Great dinner!"  # Optional notes
)

# Add an expense with percentage split
expense = client.add_expense(
    title="Groceries",
    paid_by="participant_id",
    paid_for=[
        ("participant1_id", 70),  # 70% of the total
        ("participant2_id", 30),  # 30% of the total
    ],
    amount=3000,  # $30.00 in cents
    split_mode=SplitMode.BY_PERCENTAGE
)

# Add an expense with exact amounts
expense = client.add_expense(
    title="Movie tickets",
    paid_by="participant_id",
    paid_for=[
        ("participant1_id", 1500),  # $15.00 in cents
        ("participant2_id", 1500),  # $15.00 in cents
    ],
    amount=3000,  # $30.00 in cents
    split_mode=SplitMode.BY_AMOUNT
)

# Get all expenses
expenses = client.get_expenses()
for expense in expenses:
    print(f"\n{expense['title']} - {expense['amount']/100:.2f} {group['currency']}")
    print(f"Paid by: {expense['paidBy']['name']}")

# Get specific expense details
expense_details = client.get_expense("expense_id")

# Remove an expense
client.remove_expense("expense_id")

Features

  • Get group details and participants
  • Add expenses with multiple split modes:
    • Even split
    • Split by percentage
    • Split by exact amounts
    • Split by shares
  • Add notes to expenses
  • Get expense details
  • Remove expenses
  • List all expenses in a group

Development

To set up for development:

# Clone the repository
git clone https://github.com/makp0/spliit-api-client.git
cd spliit-api-client

# Create a virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install development dependencies
pip install -e ".[dev]"

# Run tests
pytest tests/

License

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spliit_api_client-0.1.3.tar.gz (8.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

spliit_api_client-0.1.3-py3-none-any.whl (3.1 kB view details)

Uploaded Python 3

File details

Details for the file spliit_api_client-0.1.3.tar.gz.

File metadata

  • Download URL: spliit_api_client-0.1.3.tar.gz
  • Upload date:
  • Size: 8.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for spliit_api_client-0.1.3.tar.gz
Algorithm Hash digest
SHA256 4ff1f4280ebc2facd8ad96e968c6d4290e470223e28ee4c70418313dfeb4e377
MD5 c559a0a051718f7d6bcac83e32807a66
BLAKE2b-256 22382c4f63c962d0ffcaea2e52d8c3ae1350e958775b78a65fcaad869847ad4f

See more details on using hashes here.

File details

Details for the file spliit_api_client-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for spliit_api_client-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 79a412d04391e0304649005c9fa07a6fa8eaf4a8506944387d7fadfc91ab3c17
MD5 5d0b25163b86878bed5e6bcb821c6d35
BLAKE2b-256 67316e0b74a6632dd9497d3a66334c3ce2b3d0b9dade4661afd5b6a0e9a82c93

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page