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.1.tar.gz (21.2 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.1-py3-none-any.whl (19.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: spliit_api_client-0.1.1.tar.gz
  • Upload date:
  • Size: 21.2 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.1.tar.gz
Algorithm Hash digest
SHA256 223d3712aae75c069ee23b1ffcd5592d57fb792d876d3042407c6a24e91a39b0
MD5 db4122a08bad6ba1d7dc878bd7d0d068
BLAKE2b-256 3448e34d8187cb6076e07e7a7c6703856bd0386aff5a79950e85e504fa129469

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spliit_api_client-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b5ccac43bb4608cb4f69876fa660f2124c421aff9624dd9f2d91b45d105ab81c
MD5 04b0470a629b3495b156f96148a0d5db
BLAKE2b-256 9a43e1516a23dd6a21871e92bcb64045a0f77fe6707216fcb1ea4d532cc33df6

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