Splitwise Data Extractor
Pricing
Pay per usage
Splitwise Data Extractor
It fetches: User profile, all groups with member balances, all friends with balances, and all expenses (paginated automatically). Supports date filtering, group filtering, and a max-expenses cap
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Pramod Konde
Actor stats
0
Bookmarked
1
Total users
0
Monthly active users
22 days ago
Last modified
Categories
Share
Extract your expenses, groups, friends, and account data from Splitwise using the official Splitwise API. All data is exported to Apify's dataset storage, ready for download as JSON, CSV, or Excel.
What does this Actor do?
This Actor connects to your Splitwise account via the official OAuth 2.0 API and extracts:
| Data Type | What's included |
|---|---|
| User | Your profile, balances across currencies, notification settings |
| Groups | All groups you're in, member list, debts (original and simplified) |
| Friends | Your full friend list with per-friend balances in each currency |
| Expenses | All transactions — amounts, who paid, who owes what, categories, notes, receipts |
Results are saved to the Apify Dataset (download as JSON, CSV, or Excel) and a summary is saved to the Key-Value Store under OUTPUT.
Getting your Splitwise Access Token
You need a Splitwise OAuth 2.0 Bearer token to use this Actor. Here's the quickest way to get one:
- Go to https://secure.splitwise.com/apps/new and register a new app (takes 1 minute — any name/URL works).
- After creating the app, go to its settings page. You'll see a Consumer Key and Consumer Secret.
- Use the OAuth 2.0 flow to get a Bearer token (or use the Splitwise API explorer at dev.splitwise.com to test and get a token for your own account).
Security note: Your access token is treated as a secret by Apify and is never stored in run logs or visible to others. It only gives access to your own Splitwise account — it cannot access other users' accounts.
Input
| Field | Type | Required | Description |
|---|---|---|---|
accessToken | string | ✅ Yes | Your Splitwise OAuth 2.0 Bearer token |
dataToFetch | array | No | Which data to fetch: user, groups, friends, expenses. Defaults to all four. |
datedAfter | string | No | Only fetch expenses after this date (format: YYYY-MM-DD) |
datedBefore | string | No | Only fetch expenses before this date (format: YYYY-MM-DD) |
groupId | integer | No | Only fetch expenses from this group (find it in the group's URL on splitwise.com) |
maxExpenses | integer | No | Maximum number of expenses to fetch. 0 means unlimited. |
Example input
{"accessToken": "your-bearer-token-here","dataToFetch": ["user", "groups", "friends", "expenses"],"datedAfter": "2024-01-01","datedBefore": "2024-12-31","maxExpenses": 500}
Output
All results are pushed to the default Dataset. Each record has a _type field indicating what kind of record it is (user, group, friend, or expense).
Example expense record
{"_type": "expense","id": 123456789,"group_id": 1234567,"description": "Dinner at Nobu","payment": false,"cost": "120.00","currency_code": "USD","date": "2024-08-15T00:00:00Z","category": {"id": 12,"name": "Dining out"},"users": [{"user_id": 111,"paid_share": "120.00","owed_share": "60.00","net_balance": "60.00"},{"user_id": 222,"paid_share": "0.00","owed_share": "60.00","net_balance": "-60.00"}],"created_by": { "id": 111, "first_name": "Alice" },"created_at": "2024-08-15T14:32:00Z"}
Example group record
{"_type": "group","id": 1234567,"name": "NYC Apartment","group_type": "apartment","members": [{"id": 111,"first_name": "Alice","balance": [{ "currency": "USD", "amount": 250.00 }]}],"simplified_debts": [{ "from": 222, "to": 111, "amount": "250.00", "currency_code": "USD" }]}
Key-Value Store: OUTPUT
After the run completes, a summary is saved under the OUTPUT key:
{"fetchedAt": "2024-08-15T14:32:00.000Z","userId": 111,"userEmail": "alice@example.com","userFullName": "Alice Smith","defaultCurrency": "USD","filters": {"datedAfter": "2024-01-01","datedBefore": null,"groupId": null,"maxExpenses": null},"counts": {"user": 1,"groups": 5,"friends": 12,"expenses": 347}}
Use cases
- Personal finance analysis — Export all your expenses to Excel or Google Sheets for custom budgeting
- Debt tracking — Get a clear picture of who owes you what across all groups and friends
- Data backup — Archive your Splitwise history before closing your account
- Accounting exports — Feed Splitwise data into your own accounting tools
- Household expense reports — Summarize shared expenses for a specific group over a time period
Rate limits & performance
Splitwise enforces conservative rate limits on their self-serve API. This Actor handles rate limit errors gracefully and will surface a clear message if limits are hit. For accounts with hundreds of expenses, the run typically completes in under 60 seconds.
Memory requirement: 128 MB minimum (very lightweight — no browser, no headless Chrome).
Legal & compliance
This Actor uses the official Splitwise REST API (not web scraping) and requires the user to authenticate with their own account credentials via OAuth 2.0. It only accesses data that the authenticated user has permission to view.
Disclaimer: This Actor is an unofficial integration and is not affiliated with, endorsed by, or supported by Splitwise Inc. Use of the Splitwise API is subject to the Splitwise API Terms of Use.
Support
If you encounter any issues, please open a GitHub issue or contact via the Apify Actor Issues tab.