{"info":{"name":"Mini Project API - Expenses Tracker & Places","description":"Expenses Tracker and Places API for Veecotech Mini Project","schema":"https:\/\/schema.getpostman.com\/json\/collection\/v2.1.0\/collection.json"},"auth":{"type":"bearer","bearer":[{"key":"token","value":"{{access_token}}","type":"string"}]},"variable":[{"key":"base_url","value":"https:\/\/expenses-tracker-api-laravel.benova.com.my","type":"string"},{"key":"access_token","value":"","type":"string"}],"item":[{"name":"Authentication","item":[{"name":"Register","request":{"method":"POST","header":[{"key":"Content-Type","value":"application\/json","type":"text"},{"key":"Accept","value":"application\/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"John Doe\",\n    \"email\": \"john@example.com\",\n    \"password\": \"password123\",\n    \"password_confirmation\": \"password123\"\n}"},"url":{"raw":"{{base_url}}\/api\/register","host":["{{base_url}}"],"path":["api","register"]},"description":"Register a new user"}},{"name":"Login","request":{"method":"POST","header":[{"key":"Content-Type","value":"application\/json","type":"text"},{"key":"Accept","value":"application\/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"john@example.com\",\n    \"password\": \"password123\"\n}"},"url":{"raw":"{{base_url}}\/api\/login","host":["{{base_url}}"],"path":["api","login"]},"description":"Login with email and password. Copy the access_token from response and set it in the collection variables."}},{"name":"Google Login","request":{"method":"POST","header":[{"key":"Content-Type","value":"application\/json","type":"text"},{"key":"Accept","value":"application\/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"id_token\": \"google_id_token_here\"\n}"},"url":{"raw":"{{base_url}}\/api\/google-login","host":["{{base_url}}"],"path":["api","google-login"]},"description":"Login with Google ID token"}},{"name":"Logout","request":{"auth":{"type":"bearer","bearer":[{"key":"token","value":"{{access_token}}","type":"string"}]},"method":"POST","header":[{"key":"Accept","value":"application\/json","type":"text"}],"url":{"raw":"{{base_url}}\/api\/logout","host":["{{base_url}}"],"path":["api","logout"]},"description":"Logout and revoke current access token"}},{"name":"Get User","request":{"auth":{"type":"bearer","bearer":[{"key":"token","value":"{{access_token}}","type":"string"}]},"method":"GET","header":[{"key":"Accept","value":"application\/json","type":"text"}],"url":{"raw":"{{base_url}}\/api\/user","host":["{{base_url}}"],"path":["api","user"]},"description":"Get authenticated user details"}}]},{"name":"Expenses","item":[{"name":"List Expenses","request":{"auth":{"type":"bearer","bearer":[{"key":"token","value":"{{access_token}}","type":"string"}]},"method":"GET","header":[{"key":"Accept","value":"application\/json","type":"text"}],"url":{"raw":"{{base_url}}\/api\/expenses","host":["{{base_url}}"],"path":["api","expenses"]},"description":"Get all expenses for the authenticated user"}},{"name":"Create Expense","request":{"auth":{"type":"bearer","bearer":[{"key":"token","value":"{{access_token}}","type":"string"}]},"method":"POST","header":[{"key":"Content-Type","value":"application\/json","type":"text"},{"key":"Accept","value":"application\/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"title\": \"Lunch\",\n    \"amount\": 15.5,\n    \"category\": \"Food\",\n    \"date\": \"2026-05-06\",\n    \"description\": \"Lunch at restaurant\",\n    \"attachment\": \"receipts\\\/2026\\\/grocery_receipt.pdf\"\n}"},"url":{"raw":"{{base_url}}\/api\/expenses","host":["{{base_url}}"],"path":["api","expenses"]},"description":"Create a new expense"}},{"name":"Show Expense","request":{"auth":{"type":"bearer","bearer":[{"key":"token","value":"{{access_token}}","type":"string"}]},"method":"GET","header":[{"key":"Accept","value":"application\/json","type":"text"}],"url":{"raw":"{{base_url}}\/api\/expenses\/:id","host":["{{base_url}}"],"path":["api","expenses",":id"],"variable":[{"key":"id","value":"1"}]},"description":"Get a specific expense by ID"}},{"name":"Update Expense","request":{"auth":{"type":"bearer","bearer":[{"key":"token","value":"{{access_token}}","type":"string"}]},"method":"PUT","header":[{"key":"Content-Type","value":"application\/json","type":"text"},{"key":"Accept","value":"application\/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"title\": \"Updated Lunch\",\n    \"amount\": 18,\n    \"category\": \"Food\",\n    \"date\": \"2026-05-06\",\n    \"description\": \"Updated description\",\n    \"attachment\": \"receipts\\\/2026\\\/grocery_receipt.pdf\"\n}"},"url":{"raw":"{{base_url}}\/api\/expenses\/:id","host":["{{base_url}}"],"path":["api","expenses",":id"],"variable":[{"key":"id","value":"1"}]},"description":"Update an existing expense"}},{"name":"Delete Expense","request":{"auth":{"type":"bearer","bearer":[{"key":"token","value":"{{access_token}}","type":"string"}]},"method":"DELETE","header":[{"key":"Accept","value":"application\/json","type":"text"}],"url":{"raw":"{{base_url}}\/api\/expenses\/:id","host":["{{base_url}}"],"path":["api","expenses",":id"],"variable":[{"key":"id","value":"1"}]},"description":"Delete an expense"}}]},{"name":"Places","item":[{"name":"List All Places","request":{"method":"GET","header":[{"key":"Accept","value":"application\/json","type":"text"}],"url":{"raw":"{{base_url}}\/api\/places","host":["{{base_url}}"],"path":["api","places"]},"description":"Fetch all saved places"}},{"name":"Create Place","request":{"method":"POST","header":[{"key":"Accept","value":"application\/json","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"title","value":"Veecotech Solutions","type":"text"},{"key":"image","type":"file","src":[]},{"key":"address","value":"11-A Pantai, Bayan Lepas, Pulau Pinang","type":"text"},{"key":"lat","value":"40.7128","type":"text"},{"key":"lng","value":"-74.0060","type":"text"}]},"url":{"raw":"{{base_url}}\/api\/places","host":["{{base_url}}"],"path":["api","places"]},"description":"Create a new place with multipart\/form-data. Select an image file for the image field."}},{"name":"Show Place","request":{"method":"GET","header":[{"key":"Accept","value":"application\/json","type":"text"}],"url":{"raw":"{{base_url}}\/api\/places\/:id","host":["{{base_url}}"],"path":["api","places",":id"],"variable":[{"key":"id","value":"1"}]},"description":"Fetch details from a specific place by ID"}},{"name":"Delete Place","request":{"method":"DELETE","header":[{"key":"Accept","value":"application\/json","type":"text"}],"url":{"raw":"{{base_url}}\/api\/places\/:id","host":["{{base_url}}"],"path":["api","places",":id"],"variable":[{"key":"id","value":"1"}]},"description":"Remove a place from the collection"}}]}]}