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

Uploaded Python 3

File details

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

File metadata

  • Download URL: spliit_api_client-0.1.5.tar.gz
  • Upload date:
  • Size: 9.6 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.5.tar.gz
Algorithm Hash digest
SHA256 903ff26c0661490f0766c7c29013b34d184df7281d5002689a0f066df4ba81a9
MD5 3b15712a4fdece80a75cf31a093c47fb
BLAKE2b-256 7d167158e728edaaac2d6daa218796744df386092a5443b77594ec563c46c6bb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spliit_api_client-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 cd28fd409ab545519fca6af323c6cf3320703c0e2f2bdb6e2327aeaffee19ea9
MD5 c11d4338a451487161477b5a63564289
BLAKE2b-256 b00a0c4b2fde020e06c414d32e86ace06d2b515136363a5e7a5deefaf2652535

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