{"info":{"_postman_id":"e6835404-4c63-423a-95ae-ccaefda2c91a","name":"SplitSmartpro","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"description":"<html><head></head><body></body></html>","owner":"50839289","collectionId":"e6835404-4c63-423a-95ae-ccaefda2c91a","publishedId":"2sBXqKoKuR","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2026-05-02T08:53:40.000Z"},"item":[{"name":"Expenses","item":[{"name":"Add expense","id":"e09b5f35-b571-46e4-a8c1-e5728d2acbf6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\"groupId\": \"69f5a8dc18f1be19d2d68a79\", \"title\": \"Pizza\", \"amount\": 50, \"paidBy\": \"69f5a8dc18f1be19d2d68a79\", \"splitType\": \"equal\"}","options":{"raw":{"language":"json"}}},"url":"http://localhost:5000/api/expenses","urlObject":{"protocol":"http","port":"5000","path":["api","expenses"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"e7ec564a-9e31-44d9-8d74-1e07e60fa2a0","name":"Add expense","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\"groupId\": \"69f5a8dc18f1be19d2d68a79\", \"title\": \"Pizza\", \"amount\": 50, \"paidBy\": \"69f5a8dc18f1be19d2d68a79\", \"splitType\": \"equal\"}","options":{"raw":{"language":"json"}}},"url":"http://localhost:5000/api/expenses"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"352"},{"key":"ETag","value":"W/\"160-oglZQXgFLy+GOioi26a4wv1EcAw\""},{"key":"Date","value":"Sat, 02 May 2026 07:42:39 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"groupId\": \"69f5a8dc18f1be19d2d68a79\",\n    \"title\": \"Pizza\",\n    \"amount\": 50,\n    \"paidBy\": null,\n    \"splitType\": \"equal\",\n    \"splits\": [\n        {\n            \"user\": {\n                \"_id\": \"69f593ba649b41cd797085dc\",\n                \"name\": \"Test User\",\n                \"email\": \"test@example.com\"\n            },\n            \"amount\": 50\n        }\n    ],\n    \"category\": \"Others\",\n    \"_id\": \"69f5aaef18f1be19d2d68a89\",\n    \"createdAt\": \"2026-05-02T07:42:39.895Z\",\n    \"updatedAt\": \"2026-05-02T07:42:39.895Z\",\n    \"__v\": 0\n}"}],"_postman_id":"e09b5f35-b571-46e4-a8c1-e5728d2acbf6"},{"name":"View Expenses","id":"c0a86ed9-37cc-4f19-926e-7d7521a5b0bb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:5000/api/expenses/:groupId","description":"<h3 id=\"get-expenses-by-group-id\">Get Expenses by Group ID</h3>\n<p>This endpoint retrieves a list of expenses associated with a specific group identified by <code>groupId</code>. It is useful for obtaining all expense records for a particular group, allowing users to manage and review shared financial transactions.</p>\n<h4 id=\"request-parameters\">Request Parameters</h4>\n<ul>\n<li><strong>groupId</strong> (path parameter): The unique identifier for the group whose expenses are to be fetched.</li>\n</ul>\n<h4 id=\"response-structure\">Response Structure</h4>\n<p>The response will be an array of expense objects, each containing the following fields:</p>\n<ul>\n<li><strong>_id</strong>: Unique identifier for the expense.</li>\n<li><strong>groupId</strong>: The ID of the group associated with the expense.</li>\n<li><strong>title</strong>: The title or description of the expense.</li>\n<li><strong>amount</strong>: The total amount of the expense.</li>\n<li><strong>paidBy</strong>: The identifier of the user who paid for the expense (can be null).</li>\n<li><strong>splitType</strong>: The method used for splitting the expense (e.g., equally, by percentage).</li>\n<li><strong>splits</strong>: An array of split details, where each split includes:<ul>\n<li><strong>user</strong>: An object containing:<ul>\n<li><strong>_id</strong>: Unique identifier for the user.</li>\n<li><strong>name</strong>: The name of the user.</li>\n<li><strong>email</strong>: The email of the user.</li>\n</ul>\n</li>\n<li><strong>amount</strong>: The amount that the user is responsible for.</li>\n</ul>\n</li>\n<li><strong>category</strong>: The category under which the expense falls (e.g., food, travel).</li>\n<li><strong>createdAt</strong>: The timestamp when the expense was created.</li>\n<li><strong>updatedAt</strong>: The timestamp when the expense was last updated.</li>\n<li><strong>__v</strong>: Version key for the expense document.</li>\n</ul>\n<p>This structured response allows clients to easily understand and manipulate the expense data for the specified group.</p>\n","urlObject":{"protocol":"http","port":"5000","path":["api","expenses",":groupId"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"69f5a8dc18f1be19d2d68a79","key":"groupId"}]}},"response":[{"id":"291492c1-da48-472a-8e1c-2f0b086cd44f","name":"View Expenses","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:5000/api/expenses/:groupId","protocol":"http","host":["localhost"],"port":"5000","path":["api","expenses",":groupId"],"variable":[{"key":"groupId","value":"69f5a8dc18f1be19d2d68a79"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"354"},{"key":"ETag","value":"W/\"162-XXXI9L368S+SV+zKxK2bWCVglUo\""},{"key":"Date","value":"Sat, 02 May 2026 07:44:52 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"_id\": \"69f5aaef18f1be19d2d68a89\",\n        \"groupId\": \"69f5a8dc18f1be19d2d68a79\",\n        \"title\": \"Pizza\",\n        \"amount\": 50,\n        \"paidBy\": null,\n        \"splitType\": \"equal\",\n        \"splits\": [\n            {\n                \"user\": {\n                    \"_id\": \"69f593ba649b41cd797085dc\",\n                    \"name\": \"Test User\",\n                    \"email\": \"test@example.com\"\n                },\n                \"amount\": 50\n            }\n        ],\n        \"category\": \"Others\",\n        \"createdAt\": \"2026-05-02T07:42:39.895Z\",\n        \"updatedAt\": \"2026-05-02T07:42:39.895Z\",\n        \"__v\": 0\n    }\n]"}],"_postman_id":"c0a86ed9-37cc-4f19-926e-7d7521a5b0bb"},{"name":"Recent Expense","id":"6bd89032-df27-4464-a86c-c8e021e58f58","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:5000/api/expenses/recent","description":"<h2 id=\"get-recent-expenses\">Get Recent Expenses</h2>\n<p>This endpoint retrieves a list of recent expenses recorded in the system.</p>\n<h3 id=\"request\">Request</h3>\n<ul>\n<li><strong>Method</strong>: <code>GET</code></li>\n<li><strong>Endpoint</strong>: <code>http://localhost:5000/api/expenses/recent</code></li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<p>The response will return a JSON array containing objects that represent recent expenses. Each expense object includes the following fields:</p>\n<ul>\n<li><strong>_id</strong>: Unique identifier for the expense.</li>\n<li><strong>groupId</strong>: An object containing:<ul>\n<li><strong>_id</strong>: Unique identifier for the group.</li>\n<li><strong>name</strong>: Name of the group.</li>\n</ul>\n</li>\n<li><strong>title</strong>: Title of the expense.</li>\n<li><strong>amount</strong>: The total amount of the expense (numeric).</li>\n<li><strong>paidBy</strong>: Identifier of the user who paid the expense (can be null).</li>\n<li><strong>splitType</strong>: Type of split for the expense.</li>\n<li><strong>splits</strong>: An array of objects representing how the expense is divided among users, each containing:<ul>\n<li><strong>user</strong>: Identifier of the user.</li>\n<li><strong>amount</strong>: Amount attributed to the user (numeric).</li>\n</ul>\n</li>\n<li><strong>category</strong>: Category of the expense.</li>\n<li><strong>createdAt</strong>: Timestamp of when the expense was created.</li>\n<li><strong>updatedAt</strong>: Timestamp of when the expense was last updated.</li>\n<li><strong>__v</strong>: Version key for the expense document.</li>\n</ul>\n<h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  {\n    \"_id\": \"\",\n    \"groupId\": {\n      \"_id\": \"\",\n      \"name\": \"\"\n    },\n    \"title\": \"\",\n    \"amount\": 0,\n    \"paidBy\": null,\n    \"splitType\": \"\",\n    \"splits\": [\n      {\n        \"user\": \"\",\n        \"amount\": 0\n      }\n    ],\n    \"category\": \"\",\n    \"createdAt\": \"\",\n    \"updatedAt\": \"\",\n    \"__v\": 0\n  }\n]\n</code></pre>\n<p>This structure allows clients to easily parse and utilize the recent expenses data for further processing or display.</p>\n","urlObject":{"protocol":"http","port":"5000","path":["api","expenses","recent"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"139e4de4-17bd-4bf6-a220-b79e07487313","name":"Recent Expense","originalRequest":{"method":"GET","header":[],"url":"http://localhost:5000/api/expenses/recent"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"330"},{"key":"ETag","value":"W/\"14a-aORZJGh9U63Nyv2ZK2INt2AuG1Q\""},{"key":"Date","value":"Sat, 02 May 2026 08:09:18 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"_id\": \"69f5aaef18f1be19d2d68a89\",\n        \"groupId\": {\n            \"_id\": \"69f5a8dc18f1be19d2d68a79\",\n            \"name\": \"Office Lunch\"\n        },\n        \"title\": \"Pizza\",\n        \"amount\": 50,\n        \"paidBy\": null,\n        \"splitType\": \"equal\",\n        \"splits\": [\n            {\n                \"user\": \"69f593ba649b41cd797085dc\",\n                \"amount\": 50\n            }\n        ],\n        \"category\": \"Others\",\n        \"createdAt\": \"2026-05-02T07:42:39.895Z\",\n        \"updatedAt\": \"2026-05-02T07:42:39.895Z\",\n        \"__v\": 0\n    }\n]"}],"_postman_id":"6bd89032-df27-4464-a86c-c8e021e58f58"}],"id":"b961c443-4ef2-4927-b4b3-4465be0b5389","description":"<p>StartFragment</p>\n<p>The <strong>Expenses</strong> module is the core functionality of SplitSmart Pro that allows users to record, manage, and track shared expenses within groups. It ensures fair splitting and clear visibility of financial activities among members.</p>\n<hr />\n<h3 id=\"🔹-features\">🔹 Features:</h3>\n<ul>\n<li><h2 id=\"add-expense\"><strong>Add Expense</strong>\n  </h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>  Users can add a new expense to a group.  \n  \n</code></pre><ul>\n<li><p>Includes details like:  </p>\n<ul>\n<li><p>Amount 💰  </p>\n</li>\n<li><p>Description 📝  </p>\n</li>\n<li><p>Paid by 👤  </p>\n</li>\n<li><p>Split among members 👥</p>\n</li>\n</ul>\n</li>\n<li><p>Supports equal or custom splits.</p>\n</li>\n</ul>\n</li>\n</ul>\n<hr />\n<ul>\n<li><h2 id=\"view-expenses\"><strong>View Expenses</strong>\n  </h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>  Retrieve all expenses for a specific group.  \n  \n</code></pre><ul>\n<li><p>Displays:  </p>\n<ul>\n<li><p>Expense history  </p>\n</li>\n<li><p>Who paid  </p>\n</li>\n<li><p>How the amount was split</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<hr />\n<ul>\n<li><h2 id=\"recent-expenses\"><strong>Recent Expenses</strong>\n  </h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>  Fetch the most recent transactions.  \n  \n</code></pre><ul>\n<li>Helps users quickly track latest activity.</li>\n</ul>\n</li>\n</ul>\n<hr />\n<h3 id=\"🎯-purpose\">🎯 Purpose:</h3>\n<p>This module ensures accurate tracking of shared spending and eliminates confusion by clearly recording every transaction within a group.</p>\n<p>EndFragment</p>\n","_postman_id":"b961c443-4ef2-4927-b4b3-4465be0b5389"},{"name":"Financial Status","item":[{"name":"User Summary","id":"0c7881d0-72f5-4d64-97bb-604d135f30c1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:5000/api/balance/summary","description":"<h1 id=\"api-endpoint-get-balance-summary\">API Endpoint: Get Balance Summary</h1>\n<h2 id=\"description\">Description</h2>\n<p>This endpoint retrieves a summary of the user's balance within the application. It provides a concise overview of the financial interactions involving the user, including amounts owed to the user, amounts the user owes, and the net balance.</p>\n<h2 id=\"request\">Request</h2>\n<ul>\n<li><strong>Method</strong>: GET</li>\n<li><strong>URL</strong>: <code>http://localhost:5000/api/balance/summary</code></li>\n</ul>\n<h3 id=\"input-parameters\">Input Parameters</h3>\n<p>This endpoint does not require any input parameters.</p>\n<h2 id=\"response\">Response</h2>\n<p>The response is a JSON object containing the following fields:</p>\n<ul>\n<li><strong>totalOwedToUser</strong>: (integer) The total amount owed to the user by others.</li>\n<li><strong>totalUserOwes</strong>: (integer) The total amount the user owes to others.</li>\n<li><strong>netBalance</strong>: (integer) The net balance calculated as totalOwedToUser minus totalUserOwes.</li>\n<li><strong>groupCount</strong>: (integer) The number of groups the user is involved with.</li>\n</ul>\n<h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"totalOwedToUser\": 0,\n  \"totalUserOwes\": 0,\n  \"netBalance\": 0,\n  \"groupCount\": 0\n}\n</code></pre>\n<h2 id=\"notes\">Notes</h2>\n<p>This endpoint is useful for users to quickly assess their financial standing in relation to other users and groups within the application.</p>\n","urlObject":{"protocol":"http","port":"5000","path":["api","balance","summary"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"d8b12ca1-7d3f-4d66-918d-dc9fec5026f4","name":"User Summary","originalRequest":{"method":"GET","header":[],"url":"http://localhost:5000/api/balance/summary"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"72"},{"key":"ETag","value":"W/\"48-yzgVqUKoTWMWodXuLf2wQ7kWMlg\""},{"key":"Date","value":"Sat, 02 May 2026 08:10:45 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"totalOwedToUser\": 0,\n    \"totalUserOwes\": 50,\n    \"netBalance\": -50,\n    \"groupCount\": 1\n}"}],"_postman_id":"0c7881d0-72f5-4d64-97bb-604d135f30c1"},{"name":"Activity Feed","id":"d1035b61-d571-4518-a88d-51ed34cb9a71","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:5000/api/balance/:groupId","description":"<h2 id=\"api-endpoint-get-group-balance\">API Endpoint: Get Group Balance</h2>\n<h3 id=\"method\">Method</h3>\n<p><code>GET</code></p>\n<h3 id=\"endpoint\">Endpoint</h3>\n<p><code>http://localhost:5000/api/balance/:groupId</code></p>\n<h3 id=\"description\">Description</h3>\n<p>This endpoint retrieves the balance information for a specific group identified by <code>groupId</code>. It provides details about the net balance of users within the group and any simplified debts between users.</p>\n<h3 id=\"parameters\">Parameters</h3>\n<ul>\n<li><strong>Path Parameter</strong><ul>\n<li><code>groupId</code> (string): The unique identifier for the group whose balance information is being requested.</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"expected-response-format\">Expected Response Format</h3>\n<p>The response will be in JSON format and contains two main components:</p>\n<ol>\n<li><p><strong>balances</strong>: An array of objects representing each user's balance within the group. Each object includes:</p>\n<ul>\n<li><code>user</code>: An object containing user details.<ul>\n<li><code>_id</code>: The unique identifier of the user.</li>\n<li><code>name</code>: The name of the user.</li>\n<li><code>email</code>: The email of the user.</li>\n</ul>\n</li>\n<li><code>netBalance</code>: A numeric value representing the user's net balance.</li>\n</ul>\n</li>\n<li><p><strong>simplifiedDebts</strong>: An array of objects representing simplified debt relationships between users. Each object includes:</p>\n<ul>\n<li><code>from</code>: An object containing details of the user who owes money.<ul>\n<li><code>_id</code>: The unique identifier of the user.</li>\n<li><code>name</code>: The name of the user.</li>\n</ul>\n</li>\n<li><code>to</code>: An object containing details of the user who is owed money.</li>\n<li><code>amount</code>: A numeric value representing the amount of debt.</li>\n</ul>\n</li>\n</ol>\n<h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"balances\": [\n    {\n      \"user\": {\n        \"_id\": \"\",\n        \"name\": \"\",\n        \"email\": \"\"\n      },\n      \"netBalance\": 0\n    }\n  ],\n  \"simplifiedDebts\": [\n    {\n      \"from\": {\n        \"_id\": \"\",\n        \"name\": \"\"\n      },\n      \"to\": {},\n      \"amount\": 0\n    }\n  ]\n}\n</code></pre>\n","urlObject":{"protocol":"http","port":"5000","path":["api","balance",":groupId"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"69f5a8dc18f1be19d2d68a79","key":"groupId"}]}},"response":[{"id":"70f5cca1-1c6f-446a-8558-32748430d4d9","name":"Activity Feed","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:5000/api/balance/:groupId","protocol":"http","host":["localhost"],"port":"5000","path":["api","balance",":groupId"],"variable":[{"key":"groupId","value":"69f5a8dc18f1be19d2d68a79"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"224"},{"key":"ETag","value":"W/\"e0-fLtmWcAI7syyNK8FEaeAcCIiL0g\""},{"key":"Date","value":"Sat, 02 May 2026 08:12:04 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"balances\": [\n        {\n            \"user\": {\n                \"_id\": \"69f593ba649b41cd797085dc\",\n                \"name\": \"Test User\",\n                \"email\": \"test@example.com\"\n            },\n            \"netBalance\": -50\n        }\n    ],\n    \"simplifiedDebts\": [\n        {\n            \"from\": {\n                \"_id\": \"69f593ba649b41cd797085dc\",\n                \"name\": \"Test User\"\n            },\n            \"to\": {},\n            \"amount\": 50\n        }\n    ]\n}"}],"_postman_id":"d1035b61-d571-4518-a88d-51ed34cb9a71"}],"id":"0ffbfe63-cc7f-43de-871c-85b1c502ac2d","description":"<p>StartFragment</p>\n<p>The <strong>Financial Status</strong> module provides users with a clear overview of their current financial standing across all groups. It helps track balances, dues, and recent activities in one place.</p>\n<h3 id=\"🔹-features\">🔹 Features:</h3>\n<ul>\n<li><h2 id=\"user-summary\"><strong>User Summary</strong>\n  </h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>  Displays total balance (you owe / you are owed)  \n  \n</code></pre><ul>\n<li>Aggregated data across all groups</li>\n</ul>\n</li>\n<li><h2 id=\"activity-feed\"><strong>Activity Feed</strong>\n  </h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>  Shows recent financial activities  \n  \n</code></pre><ul>\n<li>Includes expenses added, settlements made, and updates</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"🎯-purpose\">🎯 Purpose:</h3>\n<p>To give users a quick snapshot of their financial health and help them stay informed about ongoing transactions.</p>\n<p>EndFragment</p>\n","_postman_id":"0ffbfe63-cc7f-43de-871c-85b1c502ac2d"},{"name":"Authentication","item":[{"name":"Sign-Up","id":"6954995e-74e8-42ee-b420-a214b9eb437d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"name\": \"Test User2\",\r\n  \"email\": \"test2@example.com\",\r\n  \"password\": \"password123\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"http://localhost:5000/api/auth/signup","description":"<h2 id=\"signup-api\">Signup API</h2>\n<p>This endpoint allows users to create a new account by providing their details.</p>\n<h3 id=\"request\">Request</h3>\n<ul>\n<li><p><strong>Method</strong>: <code>POST</code></p>\n</li>\n<li><p><strong>Endpoint</strong>: <code>http://localhost:5000/api/auth/signup</code></p>\n</li>\n</ul>\n<h4 id=\"request-body\">Request Body</h4>\n<p>The request must include a JSON object with the following parameters:</p>\n<ul>\n<li><p><code>name</code> (string): The full name of the user.</p>\n</li>\n<li><p><code>email</code> (string): The email address of the user.</p>\n</li>\n<li><p><code>password</code> (string): The password for the user's account.</p>\n</li>\n</ul>\n<p><strong>Example Request Body</strong>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"name\": \"Test User2\",\n  \"email\": \"test2@example.com\",\n  \"password\": \"password123\"\n}\n\n</code></pre>\n<h3 id=\"response\">Response</h3>\n<p>On successful account creation, the API responds with a JSON object containing:</p>\n<ul>\n<li><p><code>user</code>: An object with user details including:</p>\n<ul>\n<li><p><code>_id</code>: The unique identifier for the user.</p>\n</li>\n<li><p><code>name</code>: The name of the user.</p>\n</li>\n<li><p><code>email</code>: The email of the user.</p>\n</li>\n</ul>\n</li>\n<li><p><code>token</code>: A JWT token for authenticating subsequent requests.</p>\n</li>\n</ul>\n<p><strong>Example Response</strong>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"user\": {\n    \"_id\": \"\",\n    \"name\": \"\",\n    \"email\": \"\"\n  },\n  \"token\": \"\"\n}\n\n</code></pre>\n<h3 id=\"notes\">Notes</h3>\n<ul>\n<li><p>Ensure that the email provided is unique and valid.</p>\n</li>\n<li><p>The password should meet security requirements as defined by the application.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"http","port":"5000","path":["api","auth","signup"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"d97add51-4798-4f16-9514-1284b7245b22","name":"Sign-Up","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"name\": \"Test User2\",\r\n  \"email\": \"test2@example.com\",\r\n  \"password\": \"password123\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"http://localhost:5000/api/auth/signup"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"310"},{"key":"ETag","value":"W/\"136-INtI8RBIOpQIJb8IXtZfqUd2HCQ\""},{"key":"Date","value":"Sat, 02 May 2026 08:18:55 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"user\": {\n        \"_id\": \"69f5b36f18f1be19d2d68ab5\",\n        \"name\": \"Test User2\",\n        \"email\": \"test2@example.com\"\n    },\n    \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY5ZjViMzZmMThmMWJlMTlkMmQ2OGFiNSIsImVtYWlsIjoidGVzdDJAZXhhbXBsZS5jb20iLCJpYXQiOjE3Nzc3MDk5MzUsImV4cCI6MTc3ODMxNDczNX0.hPXPv-6-pruDwxlmbsjM6r-3gj5mKFMYVmsxQ313ZPg\"\n}"}],"_postman_id":"6954995e-74e8-42ee-b420-a214b9eb437d"},{"name":"Log-In","id":"2c64748e-1e01-4525-8634-9580229df2ac","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"email\": \"test2@example.com\",\r\n  \"password\": \"password123\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"http://localhost:5000/api/auth/login","urlObject":{"protocol":"http","port":"5000","path":["api","auth","login"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"3cfee314-0844-4724-82e8-44359f51da44","name":"Log-In","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"email\": \"test2@example.com\",\r\n  \"password\": \"password123\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"http://localhost:5000/api/auth/login"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"310"},{"key":"ETag","value":"W/\"136-HdVoAAKqENpEy/4aqfq1Ow+Fl60\""},{"key":"Date","value":"Sat, 02 May 2026 08:20:13 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"user\": {\n        \"_id\": \"69f5b36f18f1be19d2d68ab5\",\n        \"name\": \"Test User2\",\n        \"email\": \"test2@example.com\"\n    },\n    \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY5ZjViMzZmMThmMWJlMTlkMmQ2OGFiNSIsImVtYWlsIjoidGVzdDJAZXhhbXBsZS5jb20iLCJpYXQiOjE3Nzc3MTAwMTMsImV4cCI6MTc3ODMxNDgxM30.bZ-pKvQ0m4nkJnBjVU7CHjmBxHj4gfLQ5Cno_ltwl6M\"\n}"}],"_postman_id":"2c64748e-1e01-4525-8634-9580229df2ac"}],"id":"58e6308b-7180-4782-b896-f63d876e6f71","description":"<p>StartFragment</p>\n<p>The <strong>Authentication</strong> module ensures secure access to the application by verifying user identity and managing sessions.</p>\n<h3 id=\"🔹-features\">🔹 Features:</h3>\n<ul>\n<li><h2 id=\"sign-up\"><strong>Sign-Up</strong>\n  </h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>  New users can create an account securely  \n  \n</code></pre></li>\n<li><h2 id=\"log-in\"><strong>Log-In</strong>\n  </h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>  Existing users can access their account using credentials  \n  \n</code></pre></li>\n<li><h2 id=\"google-authentication\"><strong>Google Authentication</strong>\n  </h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>  Quick and secure login using Google account\n</code></pre></li>\n</ul>\n<h3 id=\"🎯-purpose\">🎯 Purpose:</h3>\n<p>To protect user data and provide a seamless and secure login experience.</p>\n<p>EndFragment</p>\n","_postman_id":"58e6308b-7180-4782-b896-f63d876e6f71"},{"name":"Group Management","item":[{"name":"Create a group","id":"5dcbd355-2b19-439a-912b-0eb6317a28a8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\"name\": \"Office Lunch\", \"description\": \"Daily food splits\"}","options":{"raw":{"language":"json"}}},"url":"http://localhost:5000/api/groups","description":"<h3 id=\"create-a-new-group\">Create a New Group</h3>\n<p>This endpoint allows you to create a new group by providing the necessary details such as the group's name and description. Upon successful creation, the API will return the details of the newly created group, including its members and metadata.</p>\n<h4 id=\"request\">Request</h4>\n<ul>\n<li><p><strong>Method:</strong> POST</p>\n</li>\n<li><p><strong>URL:</strong> <code>http://localhost:5000/api/groups</code></p>\n</li>\n<li><p><strong>Content-Type:</strong> application/json</p>\n</li>\n</ul>\n<h4 id=\"request-body-parameters\">Request Body Parameters</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>The name of the group.</td>\n</tr>\n<tr>\n<td><code>description</code></td>\n<td>string</td>\n<td>A brief description of the group.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"name\": \"Office Lunch\",\n  \"description\": \"Daily food splits\"\n}\n\n</code></pre>\n<h4 id=\"response\">Response</h4>\n<ul>\n<li><p><strong>Status Code:</strong> 201 Created</p>\n</li>\n<li><p><strong>Content-Type:</strong> application/json</p>\n</li>\n</ul>\n<p>The response will contain the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"name\": \"\",\n  \"description\": \"\",\n  \"members\": [\n    {\n      \"_id\": \"\",\n      \"name\": \"\",\n      \"email\": \"\"\n    }\n  ],\n  \"createdBy\": \"\",\n  \"status\": \"\",\n  \"_id\": \"\",\n  \"inviteCode\": \"\",\n  \"createdAt\": \"\",\n  \"updatedAt\": \"\",\n  \"__v\": 0\n}\n\n</code></pre>\n<h4 id=\"response-fields\">Response Fields</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>name</code></td>\n<td>string</td>\n<td>The name of the created group.</td>\n</tr>\n<tr>\n<td><code>description</code></td>\n<td>string</td>\n<td>The description of the created group.</td>\n</tr>\n<tr>\n<td><code>members</code></td>\n<td>array</td>\n<td>List of members in the group, each with an ID, name, and email.</td>\n</tr>\n<tr>\n<td><code>createdBy</code></td>\n<td>string</td>\n<td>The ID of the user who created the group.</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td>string</td>\n<td>The current status of the group.</td>\n</tr>\n<tr>\n<td><code>_id</code></td>\n<td>string</td>\n<td>Unique identifier for the group.</td>\n</tr>\n<tr>\n<td><code>inviteCode</code></td>\n<td>string</td>\n<td>Code used for inviting others to the group.</td>\n</tr>\n<tr>\n<td><code>createdAt</code></td>\n<td>string</td>\n<td>Timestamp when the group was created.</td>\n</tr>\n<tr>\n<td><code>updatedAt</code></td>\n<td>string</td>\n<td>Timestamp when the group was last updated.</td>\n</tr>\n<tr>\n<td><code>__v</code></td>\n<td>integer</td>\n<td>Version key for the document.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"important-notes\">Important Notes</h3>\n<ul>\n<li><p>Ensure that the <code>name</code> and <code>description</code> fields are provided in the request body.</p>\n</li>\n<li><p>The response includes a list of members, which will initially be empty upon group creation.</p>\n</li>\n<li><p>The <code>_id</code> and <code>inviteCode</code> fields are generated by the server and will be unique for each group created.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"http","port":"5000","path":["api","groups"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"46c4bae3-35da-4281-a6ed-5b6ada75118e","name":"Create a group","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\"name\": \"Office Lunch\", \"description\": \"Daily food splits\"}","options":{"raw":{"language":"json"}}},"url":"http://localhost:5000/api/groups"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"352"},{"key":"ETag","value":"W/\"160-mug8k4hTBBPaLK+dY0mWnMstQA0\""},{"key":"Date","value":"Sat, 02 May 2026 08:22:45 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"name\": \"Office Lunch\",\n    \"description\": \"Daily food splits\",\n    \"members\": [\n        {\n            \"_id\": \"69f593ba649b41cd797085dc\",\n            \"name\": \"Test User\",\n            \"email\": \"test@example.com\"\n        }\n    ],\n    \"createdBy\": \"69f593ba649b41cd797085dc\",\n    \"status\": \"active\",\n    \"_id\": \"69f5b45518f1be19d2d68ab9\",\n    \"inviteCode\": \"AVCn_m99aN\",\n    \"createdAt\": \"2026-05-02T08:22:45.855Z\",\n    \"updatedAt\": \"2026-05-02T08:22:45.855Z\",\n    \"__v\": 0\n}"}],"_postman_id":"5dcbd355-2b19-439a-912b-0eb6317a28a8"},{"name":"Get my group","id":"65b75b0a-b2ed-4da8-8e0b-c768d68d632d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:5000/api/groups","description":"<h2 id=\"api-endpoint-retrieve-groups\">API Endpoint: Retrieve Groups</h2>\n<h3 id=\"description\">Description</h3>\n<p>This endpoint allows users to retrieve a list of groups from the server. Each group contains various attributes that provide information about the group, its members, and its creator.</p>\n<h3 id=\"request-method\">Request Method</h3>\n<ul>\n<li><strong>GET</strong></li>\n</ul>\n<h3 id=\"request-url\">Request URL</h3>\n<ul>\n<li><code>http://localhost:5000/api/groups</code></li>\n</ul>\n<h3 id=\"response-structure\">Response Structure</h3>\n<p>Upon a successful request, the server will return a JSON array of group objects. Each group object contains the following fields:</p>\n<ul>\n<li><strong>_id</strong>: (String) Unique identifier for the group.</li>\n<li><strong>name</strong>: (String) The name of the group.</li>\n<li><strong>description</strong>: (String) A brief description of the group.</li>\n<li><strong>members</strong>: (Array) An array of member objects, each containing:<ul>\n<li><strong>_id</strong>: (String) Unique identifier for the member.</li>\n<li><strong>name</strong>: (String) The name of the member.</li>\n<li><strong>email</strong>: (String) The email address of the member.</li>\n</ul>\n</li>\n<li><strong>createdBy</strong>: (Object) Information about the creator of the group, containing:<ul>\n<li><strong>_id</strong>: (String) Unique identifier for the creator.</li>\n<li><strong>name</strong>: (String) The name of the creator.</li>\n<li><strong>email</strong>: (String) The email address of the creator.</li>\n</ul>\n</li>\n<li><strong>status</strong>: (String) The current status of the group.</li>\n<li><strong>inviteCode</strong>: (String) An invitation code for joining the group.</li>\n<li><strong>createdAt</strong>: (String) Timestamp indicating when the group was created.</li>\n<li><strong>updatedAt</strong>: (String) Timestamp indicating when the group was last updated.</li>\n<li><strong>__v</strong>: (Number) Version key for the group document.</li>\n</ul>\n<h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"_id\": \"groupId1\",\n        \"name\": \"Group Name\",\n        \"description\": \"Description of the group\",\n        \"members\": [\n            {\n                \"_id\": \"memberId1\",\n                \"name\": \"Member Name\",\n                \"email\": \"member@example.com\"\n            }\n        ],\n        \"createdBy\": {\n            \"_id\": \"creatorId1\",\n            \"name\": \"Creator Name\",\n            \"email\": \"creator@example.com\"\n        },\n        \"status\": \"active\",\n        \"inviteCode\": \"ABC123\",\n        \"createdAt\": \"2023-01-01T00:00:00Z\",\n        \"updatedAt\": \"2023-01-02T00:00:00Z\",\n        \"__v\": 0\n    }\n]\n</code></pre>\n<h3 id=\"notes\">Notes</h3>\n<ul>\n<li>Ensure the server is running and accessible at the specified URL.</li>\n<li>The response may contain multiple group objects depending on the data available in the database.</li>\n</ul>\n","urlObject":{"protocol":"http","port":"5000","path":["api","groups"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"6177b96a-0993-4f36-9cc3-b2f8e45a0eb5","name":"Get my group","originalRequest":{"method":"GET","header":[],"url":"http://localhost:5000/api/groups"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"815"},{"key":"ETag","value":"W/\"32f-KzpheMS7IrZ7caf7NewoRSMDeQM\""},{"key":"Date","value":"Sat, 02 May 2026 08:23:27 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"_id\": \"69f5b45518f1be19d2d68ab9\",\n        \"name\": \"Office Lunch\",\n        \"description\": \"Daily food splits\",\n        \"members\": [\n            {\n                \"_id\": \"69f593ba649b41cd797085dc\",\n                \"name\": \"Test User\",\n                \"email\": \"test@example.com\"\n            }\n        ],\n        \"createdBy\": {\n            \"_id\": \"69f593ba649b41cd797085dc\",\n            \"name\": \"Test User\",\n            \"email\": \"test@example.com\"\n        },\n        \"status\": \"active\",\n        \"inviteCode\": \"AVCn_m99aN\",\n        \"createdAt\": \"2026-05-02T08:22:45.855Z\",\n        \"updatedAt\": \"2026-05-02T08:22:45.855Z\",\n        \"__v\": 0\n    },\n    {\n        \"_id\": \"69f5a8dc18f1be19d2d68a79\",\n        \"name\": \"Office Lunch\",\n        \"description\": \"Daily food splits\",\n        \"members\": [\n            {\n                \"_id\": \"69f593ba649b41cd797085dc\",\n                \"name\": \"Test User\",\n                \"email\": \"test@example.com\"\n            }\n        ],\n        \"createdBy\": {\n            \"_id\": \"69f593ba649b41cd797085dc\",\n            \"name\": \"Test User\",\n            \"email\": \"test@example.com\"\n        },\n        \"status\": \"active\",\n        \"inviteCode\": \"d6i0ot6D6V\",\n        \"createdAt\": \"2026-05-02T07:33:48.886Z\",\n        \"updatedAt\": \"2026-05-02T07:33:48.886Z\",\n        \"__v\": 0\n    }\n]"}],"_postman_id":"65b75b0a-b2ed-4da8-8e0b-c768d68d632d"},{"name":"Get group details","id":"209640f7-c243-463e-8fc4-d1159d54acf3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:5000/api/groups/:groupId","description":"<h2 id=\"retrieve-group-details\">Retrieve Group Details</h2>\n<p>This endpoint retrieves the details of a specific group identified by its unique <code>groupId</code>.</p>\n<h3 id=\"request\">Request</h3>\n<ul>\n<li><strong>Method</strong>: <code>GET</code></li>\n<li><strong>Endpoint</strong>: <code>http://localhost:5000/api/groups/:groupId</code></li>\n<li><strong>Path Parameter</strong>:<ul>\n<li><code>groupId</code> (string): The unique identifier of the group whose details are being requested.</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<p>On a successful request, the server responds with a status code of <code>200</code> and returns a JSON object containing the following fields:</p>\n<ul>\n<li><code>_id</code> (string): The unique identifier of the group.</li>\n<li><code>name</code> (string): The name of the group.</li>\n<li><code>description</code> (string): A brief description of the group.</li>\n<li><code>members</code> (array): A list of members in the group, where each member object contains:<ul>\n<li><code>_id</code> (string): The unique identifier of the member.</li>\n<li><code>name</code> (string): The name of the member.</li>\n<li><code>email</code> (string): The email address of the member.</li>\n</ul>\n</li>\n<li><code>createdBy</code> (object): Information about the creator of the group, containing:<ul>\n<li><code>_id</code> (string): The unique identifier of the creator.</li>\n<li><code>name</code> (string): The name of the creator.</li>\n<li><code>email</code> (string): The email address of the creator.</li>\n</ul>\n</li>\n<li><code>status</code> (string): The current status of the group.</li>\n<li><code>inviteCode</code> (string): The invite code for joining the group.</li>\n<li><code>createdAt</code> (string): The timestamp when the group was created.</li>\n<li><code>updatedAt</code> (string): The timestamp when the group was last updated.</li>\n<li><code>__v</code> (integer): The version key for the group document.</li>\n</ul>\n<h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"_id\": \"\",\n  \"name\": \"\",\n  \"description\": \"\",\n  \"members\": [\n    {\n      \"_id\": \"\",\n      \"name\": \"\",\n      \"email\": \"\"\n    }\n  ],\n  \"createdBy\": {\n    \"_id\": \"\",\n    \"name\": \"\",\n    \"email\": \"\"\n  },\n  \"status\": \"\",\n  \"inviteCode\": \"\",\n  \"createdAt\": \"\",\n  \"updatedAt\": \"\",\n  \"__v\": 0\n}\n</code></pre>\n","urlObject":{"protocol":"http","port":"5000","path":["api","groups",":groupId"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"69f5a8dc18f1be19d2d68a79","key":"groupId"}]}},"response":[{"id":"a8b223fa-adc7-47cb-94fb-dd1c5778a23d","name":"Get group details","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:5000/api/groups/:groupId","protocol":"http","host":["localhost"],"port":"5000","path":["api","groups",":groupId"],"variable":[{"key":"groupId","value":"69f5a8dc18f1be19d2d68a79"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"406"},{"key":"ETag","value":"W/\"196-sq+LvkW6Ka2q6hKGZdkULZY8f6w\""},{"key":"Date","value":"Sat, 02 May 2026 08:24:43 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"_id\": \"69f5a8dc18f1be19d2d68a79\",\n    \"name\": \"Office Lunch\",\n    \"description\": \"Daily food splits\",\n    \"members\": [\n        {\n            \"_id\": \"69f593ba649b41cd797085dc\",\n            \"name\": \"Test User\",\n            \"email\": \"test@example.com\"\n        }\n    ],\n    \"createdBy\": {\n        \"_id\": \"69f593ba649b41cd797085dc\",\n        \"name\": \"Test User\",\n        \"email\": \"test@example.com\"\n    },\n    \"status\": \"active\",\n    \"inviteCode\": \"d6i0ot6D6V\",\n    \"createdAt\": \"2026-05-02T07:33:48.886Z\",\n    \"updatedAt\": \"2026-05-02T07:33:48.886Z\",\n    \"__v\": 0\n}"}],"_postman_id":"209640f7-c243-463e-8fc4-d1159d54acf3"}],"id":"3b1c1b6d-3e3a-4a41-95c3-a7a2ed9343d1","description":"<p>StartFragment</p>\n<p>The <strong>Group Management</strong> module allows users to organize and manage shared expense groups efficiently.</p>\n<h3 id=\"🔹-features\">🔹 Features:</h3>\n<ul>\n<li><h2 id=\"create-a-group\"><strong>Create a Group</strong>\n  </h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>  Create groups for trips, roommates, or events  \n  \n</code></pre></li>\n<li><h2 id=\"get-my-groups\"><strong>Get My Groups</strong>\n  </h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>  View all groups the user is part of  \n  \n</code></pre></li>\n<li><h2 id=\"get-group-details\"><strong>Get Group Details</strong>\n  </h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>  Access members, expenses, and balances within a group\n</code></pre></li>\n</ul>\n<h3 id=\"🎯-purpose\">🎯 Purpose:</h3>\n<p>To simplify collaboration and organize shared expenses among multiple users.</p>\n<p>EndFragment</p>\n","_postman_id":"3b1c1b6d-3e3a-4a41-95c3-a7a2ed9343d1"},{"name":"Financial Insights","item":[{"name":"Get analytics","id":"70d03acc-28a4-457d-816e-eb2d44bca637","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"http://localhost:5000/api/insights/user","urlObject":{"protocol":"http","port":"5000","path":["api","insights","user"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"0fc97e41-ca71-46a4-a446-5ea1de1a5ccb","name":"Get analytics","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"http://localhost:5000/api/insights/user"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"289"},{"key":"ETag","value":"W/\"121-pGRaK5woydnD1OLXA65zNLKmtcc\""},{"key":"Date","value":"Sat, 02 May 2026 08:29:25 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"totalSpending\": 50,\n    \"categoryBreakdown\": [\n        {\n            \"name\": \"Others\",\n            \"value\": 50\n        }\n    ],\n    \"monthlyTrend\": [\n        {\n            \"month\": \"May 26\",\n            \"amount\": 50\n        }\n    ],\n    \"groupBreakdown\": [\n        {\n            \"name\": \"Office Lunch\",\n            \"value\": 50\n        }\n    ],\n    \"insights\": [\n        \"Your highest spending category is Others (₹50).\",\n        \"Your highest spending group is \\\"Office Lunch\\\".\"\n    ]\n}"}],"_postman_id":"70d03acc-28a4-457d-816e-eb2d44bca637"}],"id":"09fa909b-9ed9-4162-8e3e-c93b5581ec2b","description":"<p>StartFragment</p>\n<p>The <strong>Financial Insights</strong> module provides analytical data and smart summaries to help users understand their spending patterns.</p>\n<h3 id=\"🔹-features\">🔹 Features:</h3>\n<ul>\n<li><h2 id=\"get-analytics\"><strong>Get Analytics</strong>\n  </h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>  Visual breakdown of expenses  \n  \n</code></pre><ul>\n<li><p>Spending trends over time  </p>\n</li>\n<li><p>Category-wise insights</p>\n</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"🎯-purpose\">🎯 Purpose:</h3>\n<p>To help users make smarter financial decisions through data-driven insights.</p>\n<p>EndFragment</p>\n","_postman_id":"09fa909b-9ed9-4162-8e3e-c93b5581ec2b"},{"name":"Settlements","item":[{"name":"Group History","id":"0030e994-fa3e-4ec8-8bce-a85f95e19f80","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:5000/api/settlements/:groupId","urlObject":{"protocol":"http","port":"5000","path":["api","settlements",":groupId"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"69f5a8dc18f1be19d2d68a79","key":"groupId"}]}},"response":[{"id":"e92d8c67-6eb1-4a4d-89fa-93c046ee1c28","name":"Group History","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:5000/api/settlements/:groupId","protocol":"http","host":["localhost"],"port":"5000","path":["api","settlements",":groupId"],"variable":[{"key":"groupId","value":"69f5a8dc18f1be19d2d68a79"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"2"},{"key":"ETag","value":"W/\"2-l9Fw4VUO7kr8CvBlt4zaMCqXZ0w\""},{"key":"Date","value":"Sat, 02 May 2026 08:32:20 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"[]"}],"_postman_id":"0030e994-fa3e-4ec8-8bce-a85f95e19f80"},{"name":"Recent Payments","id":"769cbfc5-cb75-4073-a748-e04a0e5ff8e9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:5000/api/settlements/recent","urlObject":{"protocol":"http","port":"5000","path":["api","settlements","recent"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"e3bc0234-6630-4a22-9a25-310764d8e879","name":"Recent Payments","originalRequest":{"method":"GET","header":[],"url":"http://localhost:5000/api/settlements/recent"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"2"},{"key":"ETag","value":"W/\"2-l9Fw4VUO7kr8CvBlt4zaMCqXZ0w\""},{"key":"Date","value":"Sat, 02 May 2026 08:33:26 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"[]"}],"_postman_id":"769cbfc5-cb75-4073-a748-e04a0e5ff8e9"}],"id":"990229e7-9b1c-49fd-ba3c-84a30593c219","description":"<p>StartFragment</p>\n<p>The <strong>Settlements</strong> module helps users clear outstanding balances and maintain accurate records of payments.</p>\n<h3 id=\"🔹-features\">🔹 Features:</h3>\n<ul>\n<li><h2 id=\"group-history\"><strong>Group History</strong>\n  </h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>  View all past settlements within a group  \n  \n</code></pre></li>\n<li><h2 id=\"recent-payments\"><strong>Recent Payments</strong>\n  </h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>  Track latest settlement transactions\n</code></pre></li>\n</ul>\n<h3 id=\"🎯-purpose\">🎯 Purpose:</h3>\n<p>To ensure transparency and simplify the process of settling debts between group members.</p>\n<p>EndFragment</p>\n","_postman_id":"990229e7-9b1c-49fd-ba3c-84a30593c219"},{"name":"CHECK","id":"6dca7168-484e-4570-84b5-d4e4a4541d73","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:5000/","description":"<h2 id=\"api-request-description\">API Request Description</h2>\n<h3 id=\"endpoint\">Endpoint</h3>\n<p><code>GET http://localhost:5000/</code></p>\n<h3 id=\"method\">Method</h3>\n<p>This endpoint uses the HTTP GET method to retrieve data from the server.</p>\n<h3 id=\"request-parameters\">Request Parameters</h3>\n<p>This endpoint does not require any specific request parameters. It is a simple GET request designed to fetch data from the root of the server.</p>\n<h3 id=\"expected-response-format\">Expected Response Format</h3>\n<p>Upon a successful request, the server will respond with a JSON object containing the requested data. The structure of the response will depend on the server's implementation but is typically formatted in a standard JSON format.</p>\n<h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"key\": \"value\",\n    \"anotherKey\": \"anotherValue\"\n}\n\n</code></pre>\n<p>Make sure to handle the response appropriately in your application to extract the necessary information.</p>\n","urlObject":{"protocol":"http","port":"5000","path":[""],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"61a54e14-c9ec-4635-b8eb-711c9cdf6372","name":"CHECK","originalRequest":{"method":"GET","header":[],"url":"http://localhost:5000/"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"text/html; charset=utf-8"},{"key":"Content-Length","value":"32"},{"key":"ETag","value":"W/\"20-HmY//I7/pLhVdL/UwrSJoOfy66w\""},{"key":"Date","value":"Sat, 02 May 2026 06:01:23 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"SplitSmart Pro API is running..."}],"_postman_id":"6dca7168-484e-4570-84b5-d4e4a4541d73"}]}