# myhouse > Free app for the people you live with: split expenses and settle up, scan receipts, shopping lists that sync live, shared projects and AI, including your own assistant. No ads, no premium plan. myhouse is one free app for the people you live with: the money you split, the lists you shop from and the plans you make together. ## Pages - [myhouse (English)](https://joinmyhouse.app/index.md): every feature and the FAQ - [myhouse (Português)](https://joinmyhouse.app/pt/index.md): every feature and the FAQ - [myhouse (Español)](https://joinmyhouse.app/es/index.md): every feature and the FAQ - [myhouse (Français)](https://joinmyhouse.app/fr/index.md): every feature and the FAQ - [myhouse (Italiano)](https://joinmyhouse.app/it/index.md): every feature and the FAQ - [myhouse (Deutsch)](https://joinmyhouse.app/de/index.md): every feature and the FAQ - [Privacy policy](https://joinmyhouse.app/privacy) - [Terms](https://joinmyhouse.app/terms) - [API for developers](https://joinmyhouse.app/developers) - MCP connector for Claude and other MCP clients (OAuth sign-in): https://joinmyhouse.app/mcp ## Facts - Is myhouse really free? Yes. Every feature is free for everyone: no premium plan, no ads and no cap on expenses or lists. The only limits are a daily allowance for the built-in AI (25 requests per house) and 10 houses per person. - Can myhouse read my receipts? Yes. Take a photo of a receipt in a new expense and the built-in AI fills in the total, the shop and the date and lists every line. You untick what wasn't shared and check it before saving. - Can I use myhouse from Claude or ChatGPT? Yes. In Claude, add myhouse as a custom connector with the link from Settings → API access, sign in and choose read-only or read-and-write. In ChatGPT, a custom GPT imports myhouse's API in one step; Gemini, DeepSeek and AI agents connect through their own APIs. Then ask it to add expenses, record payments, check balances or update lists. - Do I need to download an app? No. myhouse runs in the browser on iPhone, Android and computers. You can add it to your home screen so it opens like an app. - Does everyone in the house need an account? To see the house and add things, yes: they sign in with Google. Someone who doesn't want to can be added as a guest, and you log their share for them. - Can I move my expenses over from Splitwise? Yes. Import Splitwise's CSV export, or any CSV with a date, a description, who paid, the total and a share per person. You check the balances before saving. - Is my data private? Only the people in a house can see that house. myhouse shows no ads and doesn't sell data. The privacy policy explains the rest in plain words. - Which currencies and languages does it support? 21 currencies, chosen per house, plus expenses in another currency converted at that day's rate. The app is in English, Portuguese, Spanish, French, Italian and German. - Can I use myhouse for a trip with friends? Yes. Make a house for the trip, invite everyone with a link, and use a project for the plan. When it's over, settle up and archive the lists. - Who makes myhouse? An independent project, made in Portugal. No investors, no shareholders and no plans to charge. ## myhouse API > Shared expenses, balances, shopping lists and projects for the people you live with. This API lets your own AI assistant or script act for you. Base URL: https://joinmyhouse.app/v1 Auth: send `Authorization: Bearer `. The user makes the key in the app: Settings → API access (read-only or read and write). Rules: people and houses go by name (as in GET /me). Amounts are numbers in the house currency, like 12.50. If the user is in several houses, send "house". Errors are JSON {"error": "...", "code": "..."} and say what to fix. 1000 calls per key per day. Before changing money, confirm the details with the user (who paid, how much, split between whom). OpenAPI: https://joinmyhouse.app/v1/openapi.json · Human docs: https://joinmyhouse.app/developers ### Endpoints #### GET /me Who you are, your houses, and the people in each (use these names elsewhere). #### GET /balances Who owes whom in a house, and the fewest payments to settle up. Positive = gets money back. - house (string): House name or id. Optional if you are in only one house. #### POST /payments Record that someone paid someone back (settles debt). - house (string): House name or id. Optional if you are in only one house. - to (string, required): Who was paid (a name) - amount (number, required): In the house currency, e.g. 25.50 - from (string): Who paid. Default: you - date (string): YYYY-MM-DD. Default: today Example body: {"house":"Flat","to":"Rodrigo","amount":25.5} #### GET /expenses Recent expenses and payments, newest first. - house (string): House name or id. Optional if you are in only one house. - month (string): YYYY-MM - limit (integer): 1–100, default 20 #### POST /expenses Add a shared expense. Split equally between everyone unless you say otherwise. - house (string): House name or id. Optional if you are in only one house. - title (string, required): What it was, e.g. "Groceries" - amount (number, required): Total in the house currency, e.g. 42.80 - paid_by (string): Who paid. Default: you - split_between (array): Names to split equally between. Default: everyone - shares (object): Exact amounts per person, e.g. {"Ana": 30, "Rui": 12.80}; must add up to amount - date (string): YYYY-MM-DD. Default: today - category (string): groceries, restaurant, home, bills, transport, travel, fun, project or other Example body: {"house":"Flat","title":"Dinner at Taberna","amount":64,"paid_by":"Ana","split_between":["Ana","Rui"],"category":"restaurant"} #### PATCH /expenses/{id} Change an expense (only the fields you send). A new amount re-splits equally unless you send shares. - house (string): House name or id. Optional if you are in only one house. - title (string) - amount (number) - paid_by (string) - split_between (array) - shares (object) - date (string): YYYY-MM-DD - category (string) #### DELETE /expenses/{id} Delete an expense or payment. - house (string): House name or id. Optional if you are in only one house. #### GET /lists Shopping lists in a house. - house (string): House name or id. Optional if you are in only one house. #### GET /lists/{list} One list (by name or id) with its items. - house (string): House name or id. Optional if you are in only one house. #### POST /lists Create a list, optionally with items. - house (string): House name or id. Optional if you are in only one house. - title (string, required): e.g. "Supermarket" - items (array): e.g. ["milk", "eggs"] or [{"text": "milk", "qty": "2"}] #### POST /lists/{list}/items Add items to a list (by list name or id). Items already on it are skipped. - house (string): House name or id. Optional if you are in only one house. - items (array, required): e.g. ["2 milk", "eggs"] Example body: {"house":"Flat","items":["milk","eggs","bananas"]} #### PATCH /lists/{list}/items Tick items as bought, or untick them, by name. - house (string): House name or id. Optional if you are in only one house. - got_it (array): Item names to tick - not_yet (array): Item names to untick #### GET /projects Projects (trips, birthdays, DIY) in a house. - house (string): House name or id. Optional if you are in only one house. #### GET /projects/{project} One project (by name or id): notes, to-dos, things to buy, dates and what was spent. - house (string): House name or id. Optional if you are in only one house. #### POST /projects Create a project with its to-dos, things to buy and dates in one go. - house (string): House name or id. Optional if you are in only one house. - title (string, required): e.g. "Camping in Gerês" - start_date (string): YYYY-MM-DD - end_date (string): YYYY-MM-DD - location (string) - notes (string) - todos (array): e.g. ["Book campsite"] - to_buy (array): e.g. [{"text": "Tent", "price": 89.99}] - dates (array): e.g. [{"text": "Leave", "date": "2026-11-20", "time": "09:00"}] Example body: {"house":"Flat","title":"Camping in Gerês","start_date":"2026-11-20","end_date":"2026-11-22","todos":["Book campsite"],"to_buy":[{"text":"Gas canister","price":6.5}]} #### GET /recurring Recurring bills (rent, internet, subscriptions). - house (string): House name or id. Optional if you are in only one house. #### POST /recurring Start a recurring bill; each due date adds a normal expense. - house (string): House name or id. Optional if you are in only one house. - title (string, required) - amount (number, required) - repeat (string, required): weekly, monthly or yearly - start_date (string): YYYY-MM-DD. Default: today - paid_by (string): Default: you - split_between (array): Default: everyone - category (string): Default: bills #### GET /spending A month of spending: total, by category, by person and top places. - house (string): House name or id. Optional if you are in only one house. - month (string): YYYY-MM. Default: this month