{"id":41259157,"url":"https://github.com/keriwarr/splitwise","last_synced_at":"2026-01-23T01:56:15.033Z","repository":{"id":26894968,"uuid":"110379774","full_name":"keriwarr/splitwise","owner":"keriwarr","description":"A JavaScript SDK for the Splitwise API.","archived":false,"fork":false,"pushed_at":"2022-09-14T20:16:34.000Z","size":523,"stargazers_count":73,"open_issues_count":2,"forks_count":19,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-30T17:59:28.473Z","etag":null,"topics":["expenses","javascript-sdk","sdk","splitwise","splitwise-sdk"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/keriwarr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-11-11T20:59:10.000Z","updated_at":"2025-06-30T22:41:23.000Z","dependencies_parsed_at":"2022-07-27T08:52:32.798Z","dependency_job_id":null,"html_url":"https://github.com/keriwarr/splitwise","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/keriwarr/splitwise","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keriwarr%2Fsplitwise","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keriwarr%2Fsplitwise/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keriwarr%2Fsplitwise/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keriwarr%2Fsplitwise/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/keriwarr","download_url":"https://codeload.github.com/keriwarr/splitwise/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keriwarr%2Fsplitwise/sbom","scorecard":{"id":556082,"data":{"date":"2025-08-11","repo":{"name":"github.com/keriwarr/splitwise","commit":"d58f8167d4ca40bfaac2acf3cb78fcc1939ebe63"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.1,"checks":[{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Code-Review","score":1,"reason":"Found 5/29 approved changesets -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 12 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"106 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-67hx-6x53-jw92","Warn: Project is vulnerable to: GHSA-6chw-6frg-f759","Warn: Project is vulnerable to: GHSA-v88g-cgmw-v5xw","Warn: Project is vulnerable to: GHSA-93q8-gq69-wqmw","Warn: Project is vulnerable to: GHSA-fwr7-v2mv-hh25","Warn: Project is vulnerable to: GHSA-2mj8-pj3j-h362","Warn: Project is vulnerable to: GHSA-gqf6-75v8-vr26","Warn: Project is vulnerable to: GHSA-v45m-2wcp-gg98","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-cwfw-4gq5-mrqx","Warn: Project is vulnerable to: GHSA-g95f-p29q-9xw4","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-w8qv-6jwh-64r5","Warn: Project is vulnerable to: GHSA-c6rq-rjc2-86v2","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-gxpj-cx7g-858c","Warn: Project is vulnerable to: GHSA-w573-4hg7-7wgq","Warn: Project is vulnerable to: GHSA-ff7x-qrg7-qggm","Warn: Project is vulnerable to: GHSA-3gx7-xhv7-5mx3","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-8r6j-v8pm-fqw3","Warn: Project is vulnerable to: MAL-2023-462","Warn: Project is vulnerable to: GHSA-xf7w-r453-m56c","Warn: Project is vulnerable to: GHSA-pfrx-2q88-qq97","Warn: Project is vulnerable to: GHSA-q42p-pg8m-cqh6","Warn: Project is vulnerable to: GHSA-w457-6q6x-cgp9","Warn: Project is vulnerable to: GHSA-62gr-4qp9-h98f","Warn: Project is vulnerable to: GHSA-f52g-6jhx-586p","Warn: Project is vulnerable to: GHSA-2cf5-4w76-r9qv","Warn: Project is vulnerable to: GHSA-3cqr-58rm-57f8","Warn: Project is vulnerable to: GHSA-g9r4-xpmj-mj65","Warn: Project is vulnerable to: GHSA-q2c6-c6pm-g3gh","Warn: Project is vulnerable to: GHSA-765h-qjxv-5f44","Warn: Project is vulnerable to: GHSA-f2jv-r9rf-7988","Warn: Project is vulnerable to: GHSA-43f8-2h32-f4cj","Warn: Project is vulnerable to: GHSA-rc47-6667-2j5j","Warn: Project is vulnerable to: GHSA-pc5p-h8pf-mvwp","Warn: Project is vulnerable to: GHSA-qqgx-2p2h-9c37","Warn: Project is vulnerable to: GHSA-78xj-cgh5-2h22","Warn: Project is vulnerable to: GHSA-2p57-rm9w-gvfp","Warn: Project is vulnerable to: GHSA-2pr6-76vf-7546","Warn: Project is vulnerable to: GHSA-8j8c-7jfh-h6hx","Warn: Project is vulnerable to: GHSA-896r-f27r-55mw","Warn: Project is vulnerable to: GHSA-9c47-m6qq-7p4h","Warn: Project is vulnerable to: GHSA-6c8f-qphg-qjgp","Warn: Project is vulnerable to: GHSA-jf85-cpcp-j695","Warn: Project is vulnerable to: GHSA-p6mc-m468-83gw","Warn: Project is vulnerable to: GHSA-29mw-wpgm-hmr9","Warn: Project is vulnerable to: GHSA-35jh-r3h4-6jhm","Warn: Project is vulnerable to: GHSA-h726-x36v-rx45","Warn: Project is vulnerable to: GHSA-xf5p-87ch-gxw2","Warn: Project is vulnerable to: GHSA-ch52-vgq2-943f","Warn: Project is vulnerable to: GHSA-5v2h-r2cx-5xgj","Warn: Project is vulnerable to: GHSA-rrrm-qjm4-v8hf","Warn: Project is vulnerable to: GHSA-4xcv-9jjx-gfj3","Warn: Project is vulnerable to: GHSA-f9cm-qmx5-m98h","Warn: Project is vulnerable to: GHSA-7wpw-2hjm-89gp","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-f8q6-p94x-37v3","Warn: Project is vulnerable to: GHSA-vh95-rmgr-6w4m","Warn: Project is vulnerable to: GHSA-xvch-5gv4-984h","Warn: Project is vulnerable to: GHSA-fhjf-83wg-r2j9","Warn: Project is vulnerable to: GHSA-w7rc-rwvf-8q5r","Warn: Project is vulnerable to: GHSA-r683-j2x4-v87g","Warn: Project is vulnerable to: GHSA-5fw9-fq32-wv5p","Warn: Project is vulnerable to: GHSA-m6cx-g6qm-p2cx","Warn: Project is vulnerable to: GHSA-x8qc-rrcw-4r46","Warn: Project is vulnerable to: GHSA-4328-8hgf-7wjr","Warn: Project is vulnerable to: GHSA-93f3-23rq-pjfp","Warn: Project is vulnerable to: GHSA-jmqm-f2gx-4fjv","Warn: Project is vulnerable to: GHSA-pw54-mh39-w3hc","Warn: Project is vulnerable to: GHSA-xgh6-85xh-479p","Warn: Project is vulnerable to: GHSA-4p35-cfcx-8653","Warn: Project is vulnerable to: GHSA-7f3x-x4pr-wqhj","Warn: Project is vulnerable to: GHSA-jpp7-7chh-cf67","Warn: Project is vulnerable to: GHSA-q6wq-5p59-983w","Warn: Project is vulnerable to: GHSA-j9fq-vwqv-2fm2","Warn: Project is vulnerable to: GHSA-pqw5-jmp5-px4v","Warn: Project is vulnerable to: GHSA-hj48-42vr-x3v9","Warn: Project is vulnerable to: GHSA-hrpp-h998-j3pp","Warn: Project is vulnerable to: GHSA-p8p7-x288-28g6","Warn: Project is vulnerable to: GHSA-r2j6-p67h-q639","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw","Warn: Project is vulnerable to: GHSA-44c6-4v22-4mhx","Warn: Project is vulnerable to: GHSA-4x5v-gmq8-25ch","Warn: Project is vulnerable to: GHSA-4g88-fppr-53pp","Warn: Project is vulnerable to: GHSA-4jqc-8m5r-9rpr","Warn: Project is vulnerable to: GHSA-vx3p-948g-6vhq","Warn: Project is vulnerable to: GHSA-j44m-qm6p-hp7m","Warn: Project is vulnerable to: GHSA-3jfq-g458-7qm9","Warn: Project is vulnerable to: GHSA-5955-9wpr-37jh","Warn: Project is vulnerable to: GHSA-f5x3-32g6-xq36","Warn: Project is vulnerable to: GHSA-r628-mhmh-qjhw","Warn: Project is vulnerable to: GHSA-9r2w-394v-53qc","Warn: Project is vulnerable to: GHSA-qq89-hq3f-393p","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-jgrx-mgxx-jf9v","Warn: Project is vulnerable to: GHSA-72xf-g2v4-qvf3","Warn: Project is vulnerable to: GHSA-7p7h-4mm5-852v","Warn: Project is vulnerable to: GHSA-38fc-wpqx-33j7","Warn: Project is vulnerable to: GHSA-rv73-9c8w-jp4c","Warn: Project is vulnerable to: GHSA-6fc8-4gx4-v693","Warn: Project is vulnerable to: GHSA-3h5v-q93c-6h6q","Warn: Project is vulnerable to: GHSA-c4w7-xm78-47vh","Warn: Project is vulnerable to: GHSA-p9pc-299p-vxgp"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-20T12:22:28.915Z","repository_id":26894968,"created_at":"2025-08-20T12:22:28.915Z","updated_at":"2025-08-20T12:22:28.915Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28677714,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-23T01:00:35.747Z","status":"ssl_error","status_checked_at":"2026-01-23T01:00:19.529Z","response_time":144,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["expenses","javascript-sdk","sdk","splitwise","splitwise-sdk"],"created_at":"2026-01-23T01:56:14.969Z","updated_at":"2026-01-23T01:56:15.019Z","avatar_url":"https://github.com/keriwarr.png","language":"JavaScript","readme":"# splitwise\n\n[![Greenkeeper badge](https://badges.greenkeeper.io/keriwarr/splitwise.svg)](https://greenkeeper.io/) [![codecov](https://codecov.io/gh/keriwarr/splitwise/branch/master/graph/badge.svg)](https://codecov.io/gh/keriwarr/splitwise)\n\nA JavaScript SDK for the [Splitwise API](http://dev.splitwise.com/).\n\n## Quickstart\n\n### Step 1: Register your Application\n\nYou will need a consumer key and a consumer secret from Splitwise to use this SDK. Get them here: https://secure.splitwise.com/oauth_clients.\n\n### Step 2: Install\n\nThis module works with Node.js, version `6` or newer. To install, run:\n\n```shell\n $ yarn add splitwise\n```\n\n### Step 3: Get the current user\n\n```javascript\nconst Splitwise = require('splitwise')\nconst sw = Splitwise({\n  consumerKey: 'your key here',\n  consumerSecret: 'your secret here'\n})\n\nsw.getCurrentUser().then(console.log) // =\u003e { id: ... }\n```\n\n## Non-trivial Example\n\nIn this example, we create a new expense from the current user to the first listed user in the given group, with the same description as the first given expense.\n\n```javascript\nconst Splitwise = require('splitwise')\nconst sw = Splitwise({\n  consumerKey: 'your key here',\n  consumerSecret: 'your secret here'\n})\nconst group_id = '12345678'\n\nPromise.all([\n  sw.getGroup({ id: group_id }),\n  sw.getExpenses({ id: group_id }),\n  sw.getCurrentUser()\n]).then(([group, expenses, me]) =\u003e sw.createDebt({\n  from: group.members[0].id,\n  to: me.id,\n  group_id: group_id,\n  description: expenses[0].description,\n  amount: 100\n})).then(\n  console.log\n).catch(\n  console.error\n)\n```\n\n## API Reference\n\n### `const sw = Splitwise({...})`\n\nThis is the entry point to the package. All of the other methods are in the form of properties of `sw`.\n\n[Click here](#methods) to view the list of available methods.\n\n#### Parameters\n\n| name | required? | notes |\n|-|-|-|\n| `consumerKey` | **yes** | Obtained by registering your application |\n| `consumerSecret` | **yes** | Obtained by registering your application |\n| `accessToken` | no | Re-use an existing access token |\n| `logger` | no | Will be called with info and error messages |\n| `logLevel` | no | Set to `'error'` to only see error messages |\n| `group_id` | no | See below |\n| `user_id` | no | \" |\n| `expense_id` | no | \" |\n| `friend_id` | no | \" |\n\nThe following parameters: `group_id`, `user_id`, `expense_id`, and `friend_id` can be passed in, to be used by default with all `get`/`update`/`delete` type operations. For example:\n\n```javascript\nconst sw = Splitwise({\n  // ...\n  group_id: '12345678',\n});\n\nsw.getGroup({ id: '12345678' }).then(console.log);\n// is equivalent to\nsw.getGroup().then(console.log);\n```\n\n#### Logging\n\nYou can pass in a logging function to see useful debugging output. If the `logger` that is passed in has `info` or `error` properties, then `logger.info` and `logger.error` will be called with info and error messages respectively. Otherwise, `logger` will itself be called with a string as the first argument. Therefore, for debugging purposes, `console.log` is recommended.\n\nIf you only want to see logs in the case of an error, you can pass in `logLevel: 'error'`. e.g.:\n\n```javascript\nconst sw = Splitwise({\n  consumerKey: 'your key here',\n  consumerSecret: 'your secret here',\n  logger: console.log\n})\n// =\u003e Info: making request for access token\n// ...\n// =\u003e Info: successfully aquired access token\n```\n```javascript\nconst sw = Splitwise({\n  consumerKey: 'your key here',\n  consumerSecret: 'INCORRECT secret here',\n  logger: console.log,\n  logLevel: 'error'\n})\n// ...\n// =\u003e Error: your credentials are incorrect\n```\n#### `sw.getAccessToken()`\n\nWhen you call `Splitwise()`, an access token will automatically be fetched using your consumer credentials. If you wish to avoid this behaviour in order to save yourself a network round-trip, you may pass in your own `accessToken`. You can obtain a re-usable access token as follows:\n\n```javascript\nSplitwise({\n  consumerKey: 'your key here',\n  consumerSecret: 'your secret here'\n}).getAccessToken().then(console.log) // =\u003e abcd1234...\n\n// Now save the token somewhere (but don't check it into your VCS!)\n\nconst sw = Splitwise({\n  consumerKey: 'your key here',\n  consumerSecret: 'your secret here',\n  accessToken: 'abcd1234...'\n})\n// do stuff with `sw`\n```\n### `sw.createDebt({...})`\n\nThe endpoint for creating debts is a little awkward to use. If you are in the common scenario of needing to create a simple debt between two individuals, this method will do just that.\n\n```javascript\nsw.createDebt({\n  from: '23456789',\n  to: '34567890',\n  amount: 100,\n  description: 'I am broke, please give me $100',\n  group_id: '12345678' // optional\n})\n```\n\n### Methods\n\nAll of the below methods should be called with an object of parameters as the first argument, and (if you must), a callback as the second argument. They all will return [Promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) which will be resolved if and only if the request was successful, and rejected otherwise. e.g.:\n\n```javascript\nsw.verbResource({\n  id: '12345678',\n  otherParam: 'foo'\n} /*, callback */).then(\n  data =\u003e doSomethingWithTheData(data)\n).catch(\n  error =\u003e handleTheError(error)\n)\n```\n\nWithout further ado, here is the list of all available methods. In order to see the specifics of which parameters should be passed in, and which data can be expected in response, please refer to the [official API documentation](http://dev.splitwise.com/), or click on the method in question.\n\n - [`sw.test()`](http://dev.splitwise.com/dokuwiki/doku.php?id=test)\n - [`sw.getCurrencies()`](http://dev.splitwise.com/dokuwiki/doku.php?id=get_currencies)\n - [`sw.getCategories()`](http://dev.splitwise.com/dokuwiki/doku.php?id=get_categories)\n - [`sw.parseSentence()`](http://dev.splitwise.com/dokuwiki/doku.php?id=parse_sentence)\n - [`sw.getCurrentUser()`](http://dev.splitwise.com/dokuwiki/doku.php?id=get_current_user)\n - [`sw.getUser()`](http://dev.splitwise.com/dokuwiki/doku.php?id=get_user)\n - [`sw.updateUser()`](http://dev.splitwise.com/dokuwiki/doku.php?id=update_user)\n - [`sw.getGroups()`](http://dev.splitwise.com/dokuwiki/doku.php?id=get_groups)\n - [`sw.getGroup()`](http://dev.splitwise.com/dokuwiki/doku.php?id=get_group)\n - [`sw.createGroup()`](http://dev.splitwise.com/dokuwiki/doku.php?id=create_group)\n - [`sw.deleteGroup()`](http://dev.splitwise.com/dokuwiki/doku.php?id=delete_group)\n - [`sw.addUserToGroup()`](http://dev.splitwise.com/dokuwiki/doku.php?id=add_user_to_group)\n - [`sw.removeUserFromGroup()`](http://dev.splitwise.com/dokuwiki/doku.php?id=remove_user_from_group)\n - [`sw.getExpenses()`](http://dev.splitwise.com/dokuwiki/doku.php?id=get_expenses)\n - [`sw.getExpense()`](http://dev.splitwise.com/dokuwiki/doku.php?id=get_expense)\n - [`sw.createExpense()`](http://dev.splitwise.com/dokuwiki/doku.php?id=create_expense)\n - [`sw.updateExpense()`](http://dev.splitwise.com/dokuwiki/doku.php?id=update_expense)\n - [`sw.deleteExpense()`](http://dev.splitwise.com/dokuwiki/doku.php?id=delete_expense)\n - [`sw.getFriends()`](http://dev.splitwise.com/dokuwiki/doku.php?id=get_friends)\n - [`sw.getFriend()`](http://dev.splitwise.com/dokuwiki/doku.php?id=get_friend)\n - [`sw.createFriend()`](http://dev.splitwise.com/dokuwiki/doku.php?id=create_friend)\n - [`sw.createFriends()`](http://dev.splitwise.com/dokuwiki/doku.php?id=create_friends)\n - [`sw.deleteFriend()`](http://dev.splitwise.com/dokuwiki/doku.php?id=delete_friend)\n - [`sw.getNotifications()`](http://dev.splitwise.com/dokuwiki/doku.php?id=get_notifications)\n - `sw.getMainData()`\n\n**NOTE**: Splitwise makes some important notes about their API that booleans and nested parameters don't work. You won't need to worry about this. That is, instead of calling:\n\n```javascript\nsw.createExpense({ // :'(\n  users__0__user_id: '23456789',\n  users__1__users_id: '34567890',\n  payment: 0\n})\n```\nYou can instead do:\n```javascript\nsw.createExpense({\n  users: [\n    { user_id: '23456789' },\n    { user_id: '34567890' }\n  ],\n  payment: false\n})\n```\n\n## Notes\n\nThis SDK only enables accessing the user data of the developer (owner) of the application for the linked key/secret.  If you need a solution to enable users to access their own data for use in your app or service you will need to look elsewhere.\n\nHere is a potential alternative to this package: https://github.com/Dean177/splitwise-node\n\n## License\n\n[MIT](https://github.com/keriwarr/splitwise/blob/master/LICENSE)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeriwarr%2Fsplitwise","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkeriwarr%2Fsplitwise","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeriwarr%2Fsplitwise/lists"}