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.4.tar.gz (9.1 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.4-py3-none-any.whl (3.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: spliit_api_client-0.1.4.tar.gz
  • Upload date:
  • Size: 9.1 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.4.tar.gz
Algorithm Hash digest
SHA256 57fa08b6576bbe59d3650bceaf96b006f0426c960b53ec4bad479d08c82e6da8
MD5 1a9d543a7c2f5d0d77cf6e2f417175e6
BLAKE2b-256 05465f78c8cb6185de41a4d8c07ff0737678d5e60f93a994ccb6051ccdc83bfa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spliit_api_client-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 cf5670f049567b3a83f14f433a9fca99f592f0c2223864ddb38a120f1e023e07
MD5 2a47020ff06d99b662ba3a6c34dbe4c3
BLAKE2b-256 dd844e74dda85507ccf0124a2a42c7713ce5f6911e1d435ee2d4c6abb7f4b472

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